动态范围下用COUNTIF计算待审批数的公式调试需求
解决动态范围下责任中心待审批数的统计问题
问题核心
需要在汇总表Range1的「待审批数」列,统计动态列表Range2中对应责任中心的条目数,要求Range2的范围自动适配变化,不能硬编码固定行数。之前尝试的两个公式无效,问题出在动态数组的引用逻辑和参数顺序上。
错误公式问题分析
=countif(d18#, $A2):d18#指向的是整行动态数组,并非Range2的「责任中心」列(第四列),统计范围完全错误。=MAP(A5#, CHOOSECOLS(A18#, 4), LAMBDA(a,b, COUNTIF(a, b))):COUNTIF的参数顺序搞反了,应该是「统计范围在前,匹配条件在后」,同时A5#未对应Range1完整的责任中心列范围。
正确解决方案
假设Range2是通过动态公式生成的溢出范围(显示为A18#),以下两种方法均可实现需求:
方法1:单个单元格公式(支持下拉)
在Range1「待审批数」列的第一个单元格(比如D2)输入:
=COUNTIF(CHOOSECOLS(A18#, 4), $A2)
输入后下拉至对应行即可。CHOOSECOLS(A18#, 4)会自动抓取Range2的第四列(责任中心),无论Range2的行数如何变化,都会实时包含所有有效条目。
方法2:动态数组一次性生成结果(Excel 365及以上)
如果希望无需下拉,一次性生成所有统计结果,在D2单元格输入:
=COUNTIF(CHOOSECOLS(A18#, 4), A2:A5)
或者修正参数顺序后的MAP函数写法:
=MAP(A2:A5, LAMBDA(center, COUNTIF(CHOOSECOLS(A18#, 4), center)))
如果Range1的责任中心列是动态溢出的(比如用A2#表示),将A2:A5替换为A2#即可自动适配行数。
内容的提问来源于stack exchange,提问作者bdpolinsky
相关产品推荐
相关产品推荐

