You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用数组公式统计每行含指定部分字符串的单元格数量?

解决方案:数组公式统计每行含指定文本的单元格数量

核心公式(适配你的表格结构)

假设你的Access相关列范围是D2:Y(根据实际列区间调整即可):

  1. Total RC列(统计每行含"RC"的单元格数)

    =ARRAYFORMULA(IF(A2:A="",,MMULT(--(ISNUMBER(SEARCH("RC", D2:Y))), SEQUENCE(COLUMNS(D2:Y), 1, 1, 0))))
    
  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:50:23