带有 SUMPRODUCT 公式的 MODE

MODE with SUMPRODUCT formula

我正在尝试使用以下公式在日期范围内查找工作日(星期一、星期二等)的模式:

=ARRAYFORMULA(MODE(SUMPRODUCT(--(AgendaData!$A:$A>=A),--(AgendaData!$B:$B<=B),AgendaData!$F:$F)))

错误显示:"MODE cannot produce a result. No values occur more than once."

我认为这与F列是文本格式有关。我希望结果以文本形式显示工作日的模式。我想知道我在这里做错了什么。

要检查它,您可以使用公式:

=filter(AgendaData!$F:$F,AgendaData!$A:$A>=A,AgendaData!$B:$B<=B)

您会看到 F 列中的所有匹配值,并且会确切知道某些值是否出现不止一次。

您可以通过将文本值转换为数字、找到模式并转换回来来找到文本值的模式。为此使用三列查找 table 很方便,例如

Monday      1   Monday
Tuesday     2   Tuesday
Wednesday   3   Wednesday
Thursday    4   Thursday
Friday      5   Friday
Saturday    6   Saturday
Sunday      7   Sunday

假设这个 table 在列 I:K 中,而您的数据在 F 列中。然后下面找到它的模式:

=vlookup(mode(arrayformula(iferror(vlookup(F:F, I:J, 2, false)))), J:K, 2)

此处,arrayformula(iferror(vlookup... 是转换为数字,使用 table 的 I:J 部分,并忽略空白单元格和任何非星期几的内容。应用 mode 后,vlookup 使用 table.

的 J:K 部分将数字转换回文本