我有一个已经使用过滤器等进行了整理的大表。我想在某些列下添加一个摘要,其中包含该列中不同值的数量。
没有功能=COUNTDISTINCT(A2:A100)
,该怎么办?(Excel 2003)
我不能完全使用类似问题的答案,因为我不想修改表或过滤。我需要在工作表中添加一个内容,而不是进行修改。
我有一个已经使用过滤器等进行了整理的大表。我想在某些列下添加一个摘要,其中包含该列中不同值的数量。
没有功能=COUNTDISTINCT(A2:A100)
,该怎么办?(Excel 2003)
我不能完全使用类似问题的答案,因为我不想修改表或过滤。我需要在工作表中添加一个内容,而不是进行修改。
Answers:
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))
无需使用数组公式即可完成此操作。
for each [i] in A2:A100 DO:{ sum += (([i]<>"")/COUNTIF(A2:A100,[i])) }
,对?我在理解枚举条件枚举和第二个COUNTIF参数而不是第一个COUNTIF参数时会遇到一点麻烦吗?MS是否在任何地方记录/解释了DWIM-magic?知道如何有意地编写这些内容将非常高兴。
我在这里找到了一个解决方案,这似乎是解决该问题的一种不可思议的回旋方式。但是,它有效...
= SUM(IF(COUNTIF(A2:A100,A2:A100)= 0,“”,1 / COUNTIF(A2:A100,A2:A100)))
然后按Ctrl+ Shift+ Enter。仅按Enter会产生错误的结果。
为您找到了两个资源:
http://www.excelforum.com/excel-worksheet-functions/365877-count-distinct-values.html
和
http://www.cpearson.com/excel/Duplicates.aspx
您应该能够从那里找到可行的解决方案。
本文显示了此文本值:
=SUM(IF(FREQUENCY(IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""), IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""))>0,1))
这是数值:
=SUM(IF(FREQUENCY(C3:C25, C3:C25)>0,1))
本文显示了类似的公式,但也显示了使用过滤器的方法。
使用过滤器计算唯一值的数量
您可以使用“高级筛选器”从一列数据中提取唯一值并将其粘贴到新位置。然后,您可以使用ROWS函数来计算新范围内的项目数。
- 确保列的第一行具有列标题。
- 在“数据”菜单上,指向“筛选器”,然后单击“高级筛选器”。
- 在“高级筛选器”对话框中,单击“复制到另一个位置”。
- 如果尚未选择要计算的范围,请在“列表范围”框中删除所有信息,然后单击包含数据的列(或选择范围)。
- 在“复制到”框中,删除该框中的所有信息,或者在该框中单击,然后单击要在其中复制唯一值的空白列。
选择仅唯一记录复选框,然后单击确定。
所选范围中的唯一值将复制到新列。
在范围中最后一个单元格下方的空白单元格中,输入ROWS函数。使用刚刚复制的唯一值范围作为参数。例如,如果唯一值的范围是B1:B45,则输入:
= ROWS(B1:B45)
试试这个链接。这显示了如何在列表中计算出省略空白单元格的唯一值。
http://www.functioninexcel.com/lists-arrays/count-unique-values-in-a-list/
= sum(if(频率(match(List,List,0),match(List,List,0))> 0,1))
其中“列表”是您的单元格范围,例如:
列表= $ A $ 2:$ A $ 12或-列表=偏移量($ A $ 1 ,,, match(rept(“ z”,255),$ A:$ A))-或-列表=偏移量($ A $ 1, ,, match(value(rept(“ 9”,255)),$ A:$ A))