Excel-计算姓名清单中每个姓氏的人数(SUMPRODUCT)

爱必应

最近在研究自己通讯录上的连络人时,好奇想要知道每个姓氏的人数份布比率,所以利用枢纽分析表工具和公式分别处理一次,却得到不同结果,进一步了解找出了自已在公式设计的错误之处。(参考下图)

Excel-计算姓名清单中每个姓氏的人数(SUMPRODUCT)

在下图中,A栏是所有连络人的姓名,先利用公式取出其姓。

单元格B2:=IF(LEN(A2)=4,LEFT(A2,2),LEFT(A2,1))

复制单元格B2,往下各列贴上。

取用B栏内容执行枢纽分析表操作,得到以下的结果:

Excel-计算姓名清单中每个姓氏的人数(SUMPRODUCT)

选取A栏的全部资料,按 Ctrl+Shift+F3 键,勾选「顶端列」,定义名称:姓名。

可以取用枢纽分析表会产生的不重覆的姓,

设计公式,单元格D2:

=IF(LEN(C2)=2,SUMPRODUCT((LEFT(姓名,2)=C2)*1),SUMPRODUCT((
LEFT(姓名,1)=C2)*1))

复制单元格D2,往下各列贴上。

(1) SUMPRODUCT((LEFT(姓名,2)=C2)*1)

如果C栏中的「姓」的字数为2,则找出姓名阵列中前 2 个字和单元格C2相同的数量。

(2) SUMPRODUCT((LEFT(姓名,1)=C2)*1)

如果C栏中的「姓」的字数为1,则找出姓名阵列中前 1 个字和单元格C2相同的数量。

Excel-计算姓名清单中每个姓氏的人数(SUMPRODUCT)

以上结果初看之下好像是对的公式,经过思考之后发现我犯了错:复姓者(例如:范姜、欧阳)的第 1 个恰好也有单姓者(例如:范、欧)相同的字,没考虑到这个因素。

修改公式,单元格E2:

=IF(LEN(C2)=2,SUMPRODUCT((LEFT(姓名,2)=C2)*1),SUMPRODUCT((
LEFT(姓名,1)=C2)*1)-SUMPRODUCT((LEFT(姓名,1)=C2)*(LEN(姓名)=4)))

将公式:

SUMPRODUCT((LEFT(姓名,1)=C2)*1)

改为:

SUMPRODUCT((LEFT(姓名,1)=C2)*(LEN(姓名)=4))

即在公式中多加了一个条件,姓名为 4 个字者:(LEN(姓名)=4)

如此,就不会重覆计算了。

本文链接:,转发请注明来源!

发表评论