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

Google Sheets中QUERY函数如何简化多列IS NOT NULL判断

Google Sheets QUERY多列非空判断精简方案

不需要逐列重复编写IS NOT NULL判断语句,有更精简的实现方式,你原公式里还重复写了两次Col1 is not null,属于无效冗余。


核心优化点

  • QUERY支持连续列选择语法,你要选Col1到Col17的连续列,不需要逐列罗列,直接写Col1-Col17即可。
  • QUERY的字符串拼接规则为:只要参与拼接的任意字段为null,整个拼接结果就返回null,利用这个特性,你只需要写一次非空判断,就能实现「所有列均不为空」的筛选逻辑,不需要写N个and ColX is not null。

精简后公式(静态版)

适合列数固定、不需要后续频繁调整列范围的场景:

=QUERY(
    {AG4:AW101},
    "Select Col1-Col17 
    where Col1&Col2&Col3&Col4&Col5&Col6&Col7&Col8&Col9&Col10&Col11&Col12&Col13&Col14&Col15&Col16&Col17 is not null
    order by Col"&$N$1&" "&$N$2&"")

精简后公式(动态版)

适合后续可能调整判断列数的场景,不需要手动拼接列名,公式自动生成判断逻辑:

=QUERY(
    {AG4:AW101},
    "Select Col1-Col17 
    where "&TEXTJOIN("&",1,"Col"&SEQUENCE(17))&" is not null
    order by Col"&$N$1&" "&$N$2&"")

如果后续要把判断列数改成20列,只需要把SEQUENCE(17)里的17改成20即可,不需要逐列加判断条件。


注意事项

如果你的数据里存在公式返回的空文本""(比如IF公式返回的空结果),上面的写法会把空文本判定为非空(空文本不属于null)。如果需要同时过滤null和空文本,可以把where条件替换为:

"where "&TEXTJOIN("<>'' and ",1,"Col"&SEQUENCE(17))&"<>''"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:18:21