答案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 列):