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

如何用QUERY函数实现Excel(Google Drive)多列范围匹配统计行数?

简化Google Sheets多列匹配的行数统计

问题背景

你需要统计A列中,对应行的K:Z任意一列包含A2指定字符串的总行数,原QUERY函数需逐个列写OR条件,写法繁琐,以下是两种简化方案:


方案1:使用BYROW+SUMPRODUCT(精准匹配)

公式:

=SUMPRODUCT(--(BYROW(K:Z,LAMBDA(row, MAX(BYCOL(row, LAMBDA(cell, IF(ISNUMBER(SEARCH(A2, cell)), 1, 0))))>0)))

更简洁的版本:

=SUMPRODUCT(--(BYROW(K:Z,LAMBDA(row, BYCOL(row, LAMBDA(cell, COUNTIF(cell, "*"&A2&"*")))>0))))
  • 逻辑说明:
    1. BYROW(K:Z, ...) 遍历K到Z的每一行
    2. 内层BYCOL(row, ...) 检查当前行的每个单元格是否包含A2的字符串(COUNTIF用通配符*匹配任意前后内容)
    3. >0 判断当前行是否存在匹配的单元格,返回TRUE/FALSE
    4. -- 将布尔值转为1/0,SUMPRODUCT求和得到总行数

方案2:使用QUERY+TEXTJOIN(适配原用法)

如果习惯用QUERY函数,可通过合并列内容简化条件:

=QUERY(A:Z,"SELECT COUNT(A) WHERE TEXTJOIN(' ',TRUE,K:Z) CONTAINS '"&SUBSTITUTE(A2,"'","''")&"'",0)
  • 逻辑说明:
    1. TEXTJOIN(' ',TRUE,K:Z) 将当前行K到Z的非空单元格用空格拼接成单个字符串
    2. 直接判断拼接后的字符串是否包含A2内容,无需逐个列写OR条件
    3. SUBSTITUTE(A2,"'","''") 处理A2中包含单引号的情况,避免QUERY语法报错

内容的提问来源于stack exchange,提问作者alvarohdf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:01:19