最近在研究自己通讯录上的连络人时,好奇想要知道每个姓氏的人数份布比率,所以利用枢纽分析表工具和公式分别处理一次,却得到不同结果,进一步了解找出了自已在公式设计的错误之处。(参考下图)
在下图中,A栏是所有连络人的姓名,先利用公式取出其姓。
单元格B2:=IF(LEN(A2)=4,LEFT(A2,2),LEFT(A2,1))
复制单元格B2,往下各列贴上。
取用B栏内容执行枢纽分析表操作,得到以下的结果:
选取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相同的数量。
以上结果初看之下好像是对的公式,经过思考之后发现我犯了错:复姓者(例如:范姜、欧阳)的第 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)
如此,就不会重覆计算了。