使用ARRAYFORMULA结合COUNTA与FILTER统计名称次数遇阻求助
解决ARRAYFORMULA统计多列中名称出现次数的问题
你的原公式存在两个核心问题:
- FILTER函数无法在ARRAYFORMULA中逐行对应A列的每个值,会返回全局匹配结果的计数,而非单个名称的独立计数
- 引用范围错位:
A3:A和判断空值的$A$2:$A范围不对应,会导致统计结果行错位
推荐解决方案1(简洁高效)
使用COUNTIF结合FLATTEN,适配ARRAYFORMULA的数组运算逻辑:
=ARRAYFORMULA(IF($A$2:$A="", , COUNTIF(FLATTEN($W$2:$Z), $A$2:$A)))
公式逻辑:
FLATTEN($W$2:$Z)将W到Z列的二维数据转换为一维数组,实现跨列统一统计COUNTIF对一维数组逐个匹配A列的名称,返回对应出现次数ARRAYFORMULA自动将公式应用到A列所有非空行,无需手动下拉IF判断A列为空时返回空值,避免填充无效内容
推荐解决方案2(适合复杂统计场景)
如果需要更灵活的统计逻辑,可使用QUERY+VLOOKUP组合:
=ARRAYFORMULA(IFNA(VLOOKUP($A$2:$A, QUERY(FLATTEN($W$2:$Z), "select Col1, count(Col1) where Col1 is not null group by Col1"), 2, 0), 0))
公式逻辑:
QUERY先对FLATTEN后的数组进行分组统计,生成「名称-次数」的对照表VLOOKUP匹配A列名称,返回对应的统计次数IFNA处理未找到匹配名称的情况,返回0(可根据需求调整为空值)
内容的提问来源于stack exchange,提问作者Oloap
相关产品推荐
相关产品推荐

