如何用数组公式统计每行含指定部分字符串的单元格数量?
解决方案:数组公式统计每行含指定文本的单元格数量
核心公式(适配你的表格结构)
假设你的Access相关列范围是D2:Y(根据实际列区间调整即可):
Total RC列(统计每行含"RC"的单元格数)
=ARRAYFORMULA(IF(A2:A="",,MMULT(--(ISNUMBER(SEARCH("RC", D2:Y))), SEQUENCE(COLUMNS(D2:Y), 1, 1, 0))))Total SC列(统计每行含"SC"的单元格数)
=ARRAYFORMULA(IF(A2:A="",,MMULT(--(ISNUMBER(SEARCH("SC", D2:Y))), SEQUENCE(COLUMNS(D2:Y), 1, 1, 0))))
公式逻辑说明
SEARCH("RC", D2:Y):在每个单元格中查找"RC",找到返回位置,找不到返回错误值ISNUMBER(...):将查找结果转为布尔值(找到为TRUE,没找到为FALSE)--(...):把布尔值转为1(TRUE)或0(FALSE),方便后续求和MMULT(..., SEQUENCE(...)):通过矩阵乘法对每行的1/0数组求和,得到每行符合条件的单元格数量IF(A2:A="",,...):当Name列(A列)为空时,对应行结果留空,避免填充空行
你之前尝试的公式问题分析
COUNTIF(D2:F1000,"*RC*"):只能统计整个区域的总符合数,无法按行单独计算,数组模式下也不会自动逐行计算ArrayFormula(IF(A2:A="","",COUNTA(F2:Y,"*RBC*"))):COUNTA不支持条件筛选,第二个参数无效,只会统计列内非空单元格总数ARRAYFORMULA(if(A2:A="","",countifs(D2:D,"*RC*",E2:E,"*RC*",F2:F,"*RC*"))):COUNTIFS要求所有指定列同时满足条件,而非统计每行中满足条件的列数,逻辑完全错误
注意事项
- 如果你的Access列范围不是D:Y,直接修改公式中的
D2:Y为实际列区间即可 - 若需区分大小写(比如只匹配"RC"不匹配"rc"),把
SEARCH换成FIND - 4500行+20多列的规模下,这个公式运行效率足够,不会出现卡顿
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

