0

我在 Excel 中使用 MODE IF,这似乎工作正常,但我需要它从 MODE 中排除所有数字 2。

我使用的公式如下:

=IFERROR(MODE(IF($I:$I=I4,$K:$K)),K4)

使用 Ctrl+Shift 输入数组公式。

当一个数字只出现一次时,IFERROR 位就在那里。

谁能告诉我如何开发这个公式,以便在结果通常为“2”的情况下找到下一个最高出现的数字?

非常感谢 Rich

4

1 回答 1

0

试试下面的数组公式**

=MODE(IF($I1:$I20=I4,IF($K1:$K20<>{2,2},$K1:$K20)))

顺便说一句,没有必要为此包括一个IFERROR条款。

我强烈建议您不要在数组公式中使用整个列引用。与COUNTIF、或不同SUMIF,例如,数组公式计算传递给它们的所有单元格,无论技术上是否超出这些范围内最后使用的单元格。COUNTIFSSUMIFS

因此,例如,如果您的数据仅扩展到第 1000 行,那么通过引用一整列的行,您实际上是在迫使 Excel 计算超过实际需要的一百万行,从而产生惊人的资源-重配方。这只是该公式的一个实例。

使用某些函数,您可以在不损害性能的情况下引用整个列,但不能使用对数组进行操作的函数,例如AGGREGATE, SUMPRODUCT,以及任何需要 CSE 的构造。

因此,您应该为被引用的最后一行选择一个适当低但足够的上限,或者甚至更好地使您的范围动态化,以便它们随着您的数据扩展/收缩而自动调整。

我在这里选择了 20 的结束行引用,显然您可以对其进行修改以满足您的要求,尽管您应该注意不要让它太大(当然也不要引用整个列!),因为如上所述,对于每引用一个额外的单元格,都需要进行额外的计算。

问候

**数组公式的输入方式与“标准”公式不同。不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(尽管不要尝试自己手动插入这些括号)。

于 2016-06-16T09:24:15.420 回答