计算Excel单元格区域中不同值的数量
计算单元格区域中有多少不同的值。工作表如下图所示:
将单元格区域A1:A6命名为数据,并使用公式找出数据区域中有多少非重复值。
因为数据很少,我们数到三,也就是数字1、2、3,但是怎么通过公式得到3呢?
先不要看下面的答案,自己试试。
公式思维
首先,计算每个值在单元格区域中出现的次数,然后计算其频率,最后将频率值相加,即非重复值的数量。
公式分析
在单元格中输入以下数组公式:
=SUM(1/COUNTIF(数据,数据))
键入后记得按Ctrl+Shift+Enter。结果如下图所示:
在公式中,COUNTIF(数据,数据)计算单元格区域中每个值的出现次数。数据出现在区域中。相当于COUNTIF({ 1;2;3;3;2;2},{1;2;3;3;2;2}),首先使用COUNTIF({ 1;2;3;3;2;2},1)计算区域Data中1的出现次数,得到结果1;然后使用COUNTIF({ 1;2;3;3;2;2}、2)计算区域Data中2的出现次数,得到结果3、…,以此类推,最终得到结果{ 1;3;2;2;3;3},即由区域中每个值在区域中出现的次数组成的数组。
1/COUNTIF(数据,数据)数组{ 1;3;2;2;3;3}.例如,数组中的第二个值3占三次出现的1/3,即0.333。因此,1/COUNTIF(Data,Data)的计算结果为数组{ 1;0.333;0.5;0.5;0.333;0.333}。数组用作SUM函数的参数,相加的结果是不重复值的个数(因为一组数中每个值的频率之和是1)。
接下来,我们将通过求解过程分解来进一步理解这个公式的原理。
在C1单元格中输入公式:
=COUNTIF(数据,A1)
并将其下拉到单元格C6,计算每个值在数据区中出现的次数。结果如下图所示。
在单元格区域D1:D6中输入数组公式:
=1/C1:C6
获取数据区域中每个值的频率。
对单元格区域D1:D6求和,得到区域数据中非重复值的数量:
请注意,如果值不重复的区域有空单元格,上面的公式将是错误的。
可以通过以下公式求解:
=SUM(IF(COUNTIF(数据,数据)=0,“”,1/COUNTIF(数据,数据)))
公式巧妙地用空格代替了错误值#DIV/0!作为SUM函数的参数,空格将被忽略,只计算数值的和,最终得到期望的结果。
总结
再次惊叹公式的威力!背后的原理总是离不开基础数学。欣赏这个奇妙的公式!
版权声明:计算Excel单元格区域中不同值的数量是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。