我试图用公式找到一个日期范围内工作日(周一,周二,等等)的模式:模式与SUMPRODUCT式
=ARRAYFORMULA(MODE(SUMPRODUCT(--(AgendaData!$A:$A>=A$6),--(AgendaData!$B:$B<=B$6),AgendaData!$F:$F)))
错误写着:“MODE不能产生一个结果,没有值多次出现。“
我认为这与F列是文本格式有关。我希望结果能够在文本中显示星期几的模式。我想知道我在这里做错了什么。
我试图用公式找到一个日期范围内工作日(周一,周二,等等)的模式:模式与SUMPRODUCT式
=ARRAYFORMULA(MODE(SUMPRODUCT(--(AgendaData!$A:$A>=A$6),--(AgendaData!$B:$B<=B$6),AgendaData!$F:$F)))
错误写着:“MODE不能产生一个结果,没有值多次出现。“
我认为这与F列是文本格式有关。我希望结果能够在文本中显示星期几的模式。我想知道我在这里做错了什么。
通过将文本值转换为数字,找到模式并转换回来,您可以找到文本值的模式。它的方便使用一个三列的查找表对于这一点,例如,
Monday 1 Monday
Tuesday 2 Tuesday
Wednesday 3 Wednesday
Thursday 4 Thursday
Friday 5 Friday
Saturday 6 Saturday
Sunday 7 Sunday
比方说,此表是我列:K,和你的数据在列F那么下面找到它的模式:
=vlookup(mode(arrayformula(iferror(vlookup(F:F, I:J, 2, false)))), J:K, 2)
这里,arrayformula(iferror(vlookup...
是使用表格的I:J部分转换为数字,忽略空白单元格以及任何非星期几的内容。在应用mode
后,vlookup
使用表格的J:K部分将数字转换回文本。
完美!这是我正在寻找的,zaq!我可以有你的大脑吗? –
检查出来,你可以使用公式:
=filter(AgendaData!$F:$F,AgendaData!$A:$A>=A$6,AgendaData!$B:$B<=B$6)
你会看到从F列所有匹配的值,并会确切地知道,如果一些值出现不止一次。
不是“没有值超过一次”解释是什么问题? – FTP
我在F栏中看到:星期一,星期二,星期一,星期四,星期三。 实际上有两个星期一的时候,它不会显示结果为“星期一”,那就是模式。 我认为这是误解列,因为它正在搜索数字而不是文本。 –
确实,'mode'忽略所有字符串;这是一个数字函数。顺便说一句,“sumproduct”也是。考虑到sumproduct返回一个值,我不清楚'mode(sumproduct(...))'应该如何工作。 – FTP