excel - 在 Excel 中计算列中的唯一值

标签 excel unique

我有一个 .xls 文件,其中有一列包含一些数据。如何计算有多少个唯一值包含此列?

我在谷歌上搜索了很多选项,但他们给出的公式总是给我错误。例如,

=INDEX(List, MATCH(MIN(IF(COUNTIF($B$1:B1, List)=0, 1, MAX((COUNTIF(List, "<"&List)+1)*2))*(COUNTIF(List, "<"&List)+1)), COUNTIF(List, "<"&List)+1, 0))

返回 enter image description here

最佳答案

计算 A2:A100 中不同值的数量(不计算空白):

=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))

<小时/>

复制自 @ Ulli Schmid 的回答至 What is this COUNTIF() formula doing? :

=SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))

对 A1:A100 内的唯一单元格进行计数,排除空白单元格和带有空字符串 ("") 的单元格。

它是如何做到这一点的?示例:

A1:A100 = [1, 1, 2, "apple", "peach", "apple", "", "", -, -, -, ...]
then:
A1:A100&"" = ["1", "1", "2", "apple", "peach", "apple", "", "", "", "", "", ...]

因此需要这个&""将空白单元格(-)转换为空字符串("")。如果您直接使用空白单元格进行计数,则 COUNTIF() 返回 0。使用该技巧,“”和 - 都会被计数为相同的:

COUNTIF(A1:A100,A1:A100) = [2, 2, 1, 2, 1, 2, 94, 94, 0, 0, 0, ...]
but:
COUNTIF(A1:A100,A1:A100&"") = [2, 2, 1, 2, 1, 2, 94, 94, 94, 94, 94, ...]

如果我们现在想要获取所有唯一单元格的计数(不包括空白和“”),我们可以除以

(A1:A100<>""), which is [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, ...]

通过我们的中间结果 COUNTIF(A1:A100,A1:A100&""),并对这些值进行求和。

SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))  
= (1/2 + 1/2 + 1/1 + 1/2 + 1/1 + 1/2 + 0/94 + 0/94 + 0/94 + 0/94 + 0/94 + ...)
= 4

我们是否使用了 COUNTIF(A1:A100,A1:A100)而不是COUNTIF(A1:A100,A1:A100&"") ,那么其中一些 0/94 将是 0/0。由于不允许除以零,因此我们会抛出错误。

关于excel - 在 Excel 中计算列中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586815/

相关文章:

python - 从 Excel 中读取和比较坐标

awk - 基于唯一列 awk 对行求和

使用 auto_increment 生成 PHP 短唯一 ID?

vba - 复制粘贴过滤的数据未按预期工作

vb.net - FormulaR1C1 不适用于 SUMME

Python:列表中的唯一项按其出现的顺序排列

c - 如何将文件中的文本放入数组中

PHP 从数据库中获取唯一的随机值

c# - EPPlus 设置默认工作表

sql-server - 在SSIS中,如何将unicode数据类型转换为excel列?