|
在网上看到一条公式:=SUMPRODUCT(1/COUNTIF(A2:A11,A2:A11))
求A2:A11中不重复项的个数
公式解析如下:
COUNTIF(A2:A11,A2:A11) 是统计 A2:A11 区域中的每个数据出现的次数,过程为:
=COUNTIF(A2:A11,A2)
=COUNTIF(A2:A11,A3)
......
=COUNTIF(A2:A11,A4)
得到内存数组:
{2;2;1;1;1;1;1;2;2;1}。
用 1 除以统计的内存数组,得到 :
{0.5;0.5;1;1;1;1;1;0.5;0.5;1}。
如果 A2:A11 区域中数据出现 1 次,则 1 除以 1,结果不变;
如果 A2:A11 区域中数据出现 2 次,则 1 除以 2,结果是 0.5,2 个 0.5 相加还是 1;
如果 A2:A11 区域中数据出现 3 次,则 1 除以 3,结果是 1/3,3 个 1/3 相加还是 1;
由此类推到其他数字,每个数据出现的次数的倒数之和为 1 。
最后用 SUMPRODUCT 求和得到不重复数据的个数。
我不明白的地方在于,SUMPRODUCT给{0.5;0.5;1;1;1;1;1;0.5;0.5;1}求和的解析原则是怎样的?
根据excel的及时,SUMPRODUCT(array1,array2,array3, ...),Array1, array2, array3, ... 为 2 到 255 个数组,其相应元素需要进行相乘并求和。
但是{0.5;0.5;1;1;1;1;1;0.5;0.5;1}很明显只是一个数组,而非两个。
|
|