如何计算列表中出现特定次数的项目

如何计算列表中出现特定次数的项目

我正在尝试简化一项任务,该任务需要计算列表中出现 3 次或更多次的值,然后简单地将这些值列在一列中,如图所示。如果有人能告诉我怎么做,我会很高兴。谢谢!!

在此处输入图片描述

答案1

最难的部分是找到一个包含列表但不包含重复值的数组。为了找到它,我们使用以下公式(数组公式,Ctrl+Shift+Enter)

=INDEX($A$2:$A$20,MATCH(0,COUNTIF($B$1:B1,$A$2:$A$20),0))

COUNTIF() 函数返回一个包含 0 或 1 的数组,前提是它们在 $A$2:$A$20 中找到了 $B$1:B1 的内容($ 对于绝对引用和相对引用很重要,因为您将此公式复制到其他单元格)。

MATCH() 函数返回与 0 匹配的项目的相对位置。使用 COUNTIF() 函数,我们将 0 放在列表中未找到的每个成员中。它返回列表中每个数字的第一次出现。

INDEX() 函数返回不包含重复项的列表 $A$2:$A$20(我们在 MATCH() 函数中获得了每个项目的第一次出现)。

找到此列表后,我们再次使用 COUNTIF() 函数来计算列表中每个项目的出现次数(因为您要查找 >=3 次出现)。为了简化公式,假设您将上一个公式给出的数组命名为list。因此,执行计数:

=COUNTIF($A$2:$A$20,list)

然后我们检查哪个计数大于 3,如果是,则返回相应的值,如果不是,则返回空白:

=IF(COUNTIF($A$2:$A$20,list)>=3,list,"")

别忘了它是一个数组公式,所以输入它并按 Ctrl+Shift+Enter。注意,最后一个公式与第一个公式一样,但 INDEX() 函数给出的列表名为list。您可以通过转到公式 -> 定义名称 -> 定义名称来定义名称。Excel 会显示新名称对话框。调用 irlist或其他任何名称并输入 INDEX() 公式。使用名称阅读起来更清楚,也更容易理解公式,但这不是必需的。

没有重复的列表必须在 B 列上,而 IF() 函数必须在 C 列上。结果应如下所示(您可以隐藏 B 列):

在此处输入图片描述

相关内容