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

Google表格中如何剔除{}合并QUERY结果产生的空行

解决方案

你可以在现有拼接公式的外层再套一层QUERY函数,直接过滤掉所有占位空行即可,无需修改原工作表结构,也不用脚本:

完整公式示例

=QUERY(
    {
        IFNA( QUERY('Week 1'!A2:Z33,"select Z, B, D, E where A = 'Bench Press' and D IS NOT NULL", 0), { "","","","" } );
        IFNA( QUERY('Week 1'!A2:Z33,"select Z, F, H, I where A = 'Bench Press' and H IS NOT NULL", 0), { "","","","" } );
        IFNA( QUERY('Week 1'!A2:Z33,"select Z, J, L, M where A = 'Bench Press' and L IS NOT NULL", 0), { "","","","" } );
        IFNA( QUERY('Week 1'!A2:Z33,"select Z, N, P, Q where A = 'Bench Press' and P IS NOT NULL", 0), { "","","","" } );
        IFNA( QUERY('Week 1'!A2:Z33,"select Z, R, T, U where A = 'Bench Press' and T IS NOT NULL", 0), { "","","","" } )
    },
    "SELECT * WHERE Col1 <> ''",
    0
)

逻辑说明

  • 外层QUERY的第一个参数直接复用你原来的数组拼接结果,对于数组类型的数据源,QUERY会用Col1/Col2/Col3/Col4依次指代你返回的4列数据
  • 过滤条件WHERE Col1 <> ''会直接剔除所有第一列为空字符串的行,也就是你用IFNA返回的占位空行,仅保留有有效训练数据的条目
  • 最后一个参数设为0,表示不把结果第一行识别为表头,和你原有子QUERY的设置保持一致

优化补充

如果存在有效数据第一列(Z列)本身为空的场景,可以把过滤条件改成更通用的写法,只要任意一列有内容就会保留:

"SELECT * WHERE Col1 <> '' OR Col2 <> '' OR Col3 <> '' OR Col4 <> ''"

后续新增周次的子QUERY时,只需要往中间大括号里添加对应语句即可,外层过滤逻辑不需要调整。

内容的提问来源于stack exchange,提问作者Tom J Nowell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:05