我在列中有一个类别列表。我需要在此列表上方的单元格中记录重复三次以上的任何类别(文本)。起初我以为我已经掌握了计数公式或其他类似的东西,但我很难过。在之前提出的问题中我找不到这样的东西。
有没有人对此有任何提示?我很感激。
示例:
D栏(假装它是垂直的): 红色 黄色 蓝色 黄色 绿色 红色 粉 橙子 红色 黄色 蓝色 绿色 黄色 绿色 红色
数据上方的单元格(或多个单元格)将列出"黄色"和" Red"因为这些文本字符串被发现超过三次。
答案 0 :(得分:1)
您已使用Excel-VBA
对此进行了标记,但尚未对VBA进行任何其他说明,因此我假设您需要基于公式的解决方案。
为了论证,我们假设您的列表位于单元格D2:D17
中。
首先,我们将获取一个唯一值列表,并将其放在E
列中,从单元格E2
开始。我们需要在列表上方留一个空白单元格才能生效(否则我们将获得循环引用)。
在单元格E2
中输入以下内容:
=INDEX(D2:D17,MATCH(0,COUNTIF($E$1:E1,D2:D17),0))
您必须按ctrl + shift + Enter才能使Excel将其解释为数组公式。 (有关数组公式的更多信息,请参阅this article)。
这应输出列表中的第一个唯一值。然后,您可以将其向下拖动到列表的长度,以允许显示所有可能的值。请注意,您还可以通过将原始列表复制到新列并使用Excel的内置重复删除工具(数据>删除重复项)来创建重复值列表。下一步将采用相同的方式。
在F
列中,我们将计算每个唯一值的出现次数。在单元格F2
中,输入以下内容:
=COUNTIF(D2:D17,E2)
向下拖动复制,你现在应该有一个漂亮的双列表,列出原始列表中每个唯一值的出现次数。您可以根据需要过滤它。
答案 1 :(得分:0)
您可以使用这些公式显示相应的红色/黄色/绿色。
=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")
答案 2 :(得分:0)
将包含重复项的列复制到新列[让我们说列E,从第2行开始]。转到数据功能区并删除重复项。在这个新的无重复列的右侧,放入以下公式[从F2开始并向下拖动]:
=IF(COUNTIF(D:D,E2)>3,MAX($F$1:F1)+1,"")
然后,根据您希望数据显示的方式,您可以选择一些选项 - 如果您可以阅读它,则无需进一步的工作。如果您希望它显示重复项的连续有序列表,那么只需使用INDEX / MATCH组合。例如,如果您希望重复列表从A1开始并向下,请执行以下操作:
=INDEX(E:E,MATCH(ROW(),F:F)
如果列表从第1行以外的任何地方开始[由于ROW()函数],这将不起作用。如果您希望列表从其他地方开始,则需要将索引增加1,然后引用该索引而不是ROW()。