昨天详细整理了在完美Excel社群上回答Alpha朋友提出的问题解答思路和过程,详见:
社群答疑精选01:不重复数据统计——如何统计员工负责的客户数?
然而,并没有考虑添加数据后实现动态更新。也就是说,当在数据区添加新的数据后,统计区能够自动更新统计结果,如下图1所示。
图1
这可以使用动态名称来实现。
首先,定义动态名称。单击功能区“公式”选项卡“定义的名称”组中的“定义名称”,在“新建名称”对话框中,在“名称”框中输入要定义的名称,在“引用位置”中输入公式,如下图2所示。
图2
在本示例中,要定义的名称为:
名称:客户
引用位置:=OFFSET('Sheet1'!A1,1,0,COUNTA('Sheet1'!A:A)-1,1)
名称:员工
引用位置:=OFFSET('Sheet1'!B1,1,0,COUNTA('Sheet1'!B:B)-1,1)
名称:数量
引用位置:=OFFSET('Sheet1'!A1,1,0,COUNTA('Sheet1'!A:A),1)
还记得我们给出的数组公式吗?在单元格E4中输入数组公式:
=SUMPRODUCT(--(FREQUENCY(IFERROR(MATCH(D4&A25,B2:B25&A2:A25,0),0),ROW(A2:A26)-ROW(A2))>0))-1
现在,我们使用动态的名称替换上面公式中的相应硬编码的区域,得到公式:
=SUMPRODUCT(--(FREQUENCY(IFERROR(MATCH(D4&客户,员工&客户,0),0),ROW(数量)-ROW(
记住,因为是数组公式,所以不要忘记最后要按Ctrl Shift Enter键结束。
拖动单元格E4向下复制到单元格E8,结果如下图3所示。
图3
小结:任何一个问题深入探讨下去,一定会引出很多技术,也一定会让你学到更多的技术。这个问题的解答还有很多细节,有兴趣的朋友可以继续改进。