如何计算Excel中列中的不同条目

我知道公式: {= SUM(1 / COUNTIF(A1:A8,A1:A8))}将用于计算列A1到A8中的不同条目。

但是我的问题是,这个公式究竟做了什么? 我似乎无法遵循这个数组公式的逻辑。

假定A1的值为x ,A2:A8中的空白。 如果使用Evaluate Formula工具,则会看到数组公式的第一步提供了一个COUNTIF数组:

=SUM(1/{1,7,7,7,7,7,7,7})

请注意,有1 1和7 7 s,因为有一个值x和七个空白值。

请记住(1/n)*n = 1 。 所以在这个例子中,

(1/7)* 7 = 1

(1/1)* 1 = 1

总结这些结果,就像1 + 1 = 2一样简单。 🙂

使用F9真的在这里派上用场。 假设下面的值在A1:A8:

 dog cat dog cat cat dog cat cat 

在公式栏中突出显示COUNTIF(A1:A8,A1:A8)并按F9,您将看到:

 {3;5;3;5;5;3;5;5} 

因为名单中有3只狗和5只猫,所以这些是由适当types的识别公式返回的数字。

现在用CTRL + Z取消或按ESC重新开始。 这次突出显示1 / COUNTIF(A1:A8,A1:A8) ,您将看到:

 {0.333333333333333;0.2;0.333333333333333;0.2;0.2;0.333333333333333;0.2;0.2} 

因为名单上有3只狗,所以1/3生产.3333333。 现在.3333333出现在列表中与狗出现在列表中相同的位置。 把所有的.3333333加起来,就得到了1。

对猫做同样的事情。 5只猫。 1/5产生.2,依此类推。

如果不确定公式是如何工作的,请突出显示公式的各个部分,然后按下F9键,就可以看到它的计算结果。