在Excel中,返回三次以上列的项目列表

我有一个列中的类别列表。 我需要在此列表上方的单元格中logging重复三次以上的任何类别(文本)。 起初我以为我用这个计数公式或类似的东西来处理这个问题,但是我很难。 在以前提出的问题中我找不到这样的东西。

有没有人有任何提示呢? 我很感激。

例:

D列(假设它是垂直的):红色黄色蓝色黄色绿色红色粉红色橙色红色黄色蓝色绿色黄色绿色红色

数据上方的单元格(或多个单元格)将列出“黄色”和“红色”,因为这些文本string被发现三次以上。

你已经用Excel-VBA标记了这个标签,但是还没有提到有关VBA的其他内容,所以我假设你需要一个基于公式的解决scheme。

为了争辩,假设你的列表在单元格D2:D17

首先,我们将得到一个唯一值列表,并把它放在E列中,从E2单元开始。 我们需要在列表的上方留下一个空白的单元格,否则我们会得到循环引用。

E2单元格中input:

 =INDEX(D2:D17,MATCH(0,COUNTIF($E$1:E1,D2:D17),0)) 

您必须按ctrl + shift + Enter使Excel将其解释为数组公式 。 (有关数组公式的更多信息,请参阅本文 )。

这应该输出列表中的第一个唯一值。 然后,您可以将其拖放到列表的长度以允许显示所有可能的值。 请注意,您也可以通过将原始列表复制到新列并使用Excel内置的重复删除工具(数据>删除重复项)来创build重复值列表。 下一步将是相同的任何方式。

F列中,我们将计算每个唯一值的出现次数。 在单元格F2中input:

 =COUNTIF(D2:D17,E2) 

拖动 – 复制下来,你现在应该有一个很好的两列表的每个独特的价值在您的原始列表中出现。 您可以按照您认为合适的方式进行过滤。

您可以使用这些公式来显示相应的红/黄/绿颜色。

=IF(COUNTIF([Range],"=Yellow")>=3,"Yellow","")

=IF(COUNTIF([Range],"=Red")>=3,"Red","")

=IF(COUNTIF([Range],"=Green")>=3,"Green","")

所以如果在D列中有3个以上的黄色时显示“黄色”,你可以使用:

=IF(COUNTIF(D:D,"=Yellow")>=3,"Yellow","")

当然,只需显示计数: COUNTIF(D:D,"=Yellow")

将你的专栏复制到一个新的专栏[让我们说E栏,从第2行开始]。 转到数据function区并删除重复项。 在这个新的不重复列的右边,input下面的公式[从F2开始并拖拽]:

 =IF(COUNTIF(D:D,E2)>3,MAX($F$1:F1)+1,"") 

然后,根据您的数据显示方式,您可以select一些选项 – 如果您可以阅读,则不需要进一步的工作。 如果你想要显示连续的重复项目顺序列表,那么只需使用INDEX / MATCH组合。 例如,如果你想让你的重复列表在A1开始,然后下去,就这样做:

 =INDEX(E:E,MATCH(ROW(),F:F) 

如果列表在第一行以外的地方开始,这将不起作用[因为ROW()函数]。 如果你希望你的列表在其他地方开始,你将需要build立一个上升了1的索引,然后引用该索引而不是ROW()。