您的位置  > 互联网

函数用于统计满足某个条件的单元格的数量

(统计区域、指定条件)

如下图所示,要统计A列中有多少个5,可以使用以下公式:

=(A2:A10,5)

如果我们稍微改变函数的第二个参数,我们可以衍生出许多有效的用途,例如:

计算大于 5 的单元格数量:

=(A2:A10,">5")

计算大于单元格 B2 的值的单元格数量:

=(A2:A10,">"&B2)

计算不等于 5 的单元格数量:

=(A2:A10,"5")

计算空白单元格的数量:

=(A2:A10,“=”)

计算非空单元格的数量:

=(A2:A10,"")

计算以“e”或“E”开头的单元格数量:

=(A2:A10,"e*")

对于身份证号、银行卡号等很长的文本数字,在使用该功能时需要加一点“香料”。

下面的公式统计A列中是否有重复的ID号:

=IF((A:A,A2&"*")>1,"重复","")

函数计算文本类型的数字时,默认将其作为数字类型处理。 但是Excel中的数字精度只有15位,而身份证号码是18位,所以所有前15位数字相同的身份证都会被识别为相同的内容。 。

在第二个参数后添加星号和“*”将告诉 Excel 查找包含单元格 A2 内容的文本。 通过这种灵活的方法,函数就变得听话了。

前面我们讲的是第二个参数。 现在我们来谈谈第一个参数:

如下图,A栏需要按部门输入序列号,不同部门的序列号从1开始。

在A2单元格中输入公式并向下复制:

=(B$2:B2,B2)

函数的统计区域为B$2:B2。 第一个 B2 是绝对行引用,第二个 B2 是相对引用。 当公式向下复制时,就会变成B$2:B3、B$2:B4……一个不断扩大的区域,B列的部门数就是从这个动态区域中统计出来的。

现在分享两个函数的组合应用:

如下图所示,我们需要计算C列的唯一人数。

公式为:

=(1/(A2:A14,A2:A14))

这是一个非常常用的计算唯一数据数量的公式,其中包含一个数学逻辑:

如果任意数据重复出现N次,则N 1/N之和为1。

公式中的“(A2:A14,A2:A14)”部分是数组计算,其功能是统计单元格区域A2:A14中每个元素出现的次数。

操作过程相当于:

=(A2:A14,A2)

=(A2:A14,A3)

……

=(A2:A14,A14)

返回内存数组的结果是:

{2;2;2;2;2;2;2;2;2;2;1;1;1}

然后将返回的内存数组除以1,得到以下结果:

{0.5;0.5;0.5……;1;1;1}

除以 1 相当于计算函数返回的内存数组的倒数。

为了便于理解,将本步骤结果中的小数部分替换为分数。 结果是:

{1/2;1/2;1/2;1/2;……;1;1;1}

如果单元格的值是范围内的唯一值,则此步骤的结果为 1。

如果重复两次,这一步的结果将是两个1/2。

如果单元格值在范围内重复 3 次,结果将为 3 1/3...

即每个元素对应的倒数之和仍为1。

最后使用函数求和即可得到唯一人数总数。

还没头晕吗? 好吧,我们继续。

如下图所示,我们要提取 C 列中唯一项的列表。

公式为:

=INDEX(C:C,1+MATCH(0,(E$1:E1,C$2:C$15),0))&""

注意,这是一个数组公式。 编辑完成后,按 Ctrl+Shift+Enter。

首先,使用该函数查找公式位置上方的单元格区域中的单元格区域 C$2:C$15 中每个数据的数量。 返回由 0 和 1 组成的数组。如果 C$2:C$15 单元格区域中的元素出现在公式上方,则结果为 1;否则,结果为 1。 如果没有出现,则结果为0。

与前面的示例一样,函数的第一个参数是扩展范围,公式提取的结果将被重用。

然后使用MATCH函数查找函数返回的数组中第一个0的位置,即找到数据第一次出现的位置。

由于数据表的标题行占1行,因此这个数字加1就是数据表中需要提取的唯一数据的列位置。

最后使用INDEX函数,以MATCH函数的计算结果为索引值,提取C列对应位置的数据。

从最后往上看这个函数就更容易理解了。

好了,今天的内容就到这里了,祝大家有美好的一天!

图文制作:朱洪忠