如何在Google Sheets的Tab3中用Query实现多条件跨标签页数据合并
在Google Sheets中用Query合并Tab1和Tab2至Tab3的实现方案
核心逻辑拆解
要满足你的需求,核心是优先保留Tab2的ID对应值,补充Tab1中Tab2没有的ID行,同时排除空ID的无效行,对应你的条件:
- 相同ID用Tab2的值:直接用Tab2的行覆盖Tab1对应行
- 添加Tab2独有的值:包含所有Tab2非空ID的行
- 保留Tab1中Tab2没有的值:筛选出Tab1里不在Tab2 ID集合中的行
- 忽略空单元格:过滤掉ID为空的行,避免无效数据
具体Query公式
假设Tab1和Tab2的ID列在A列,Value列在B列,表头为第1行,在Tab3的A1单元格输入以下公式:
=QUERY( { // 提取Tab1中未出现在Tab2的行(含表头) QUERY(Tab1!A:B, "select A,B where A not in (select A from Tab2!A:A where A is not null)", 1); // 提取Tab2中所有非空ID的行(去掉重复表头) QUERY(Tab2!A:B, "select A,B where A is not null offset 1", 0) }, "select * where Col1 is not null", 1 )
公式说明
- 内层第一个
QUERY:从Tab1中筛选出ID不在Tab2非空ID列表里的行,保留表头,确保Tab1独有的数据被保留 - 内层第二个
QUERY:从Tab2中筛选出ID非空的行,用offset 1跳过表头(避免合并后重复表头),这部分包含了与Tab1重复的ID(实现覆盖)和Tab2独有的ID(实现新增) - 外层
QUERY:合并两个数据集后,再次过滤掉ID为空的行,确保最终结果没有无效空单元格
适配调整
如果你的列位置或表头行不同,可做以下修改:
- 若ID在C列、Value在D列:将公式中的
A:B替换为C:D,select A,B替换为select C,D - 若表头行是第2行:将内层第一个
QUERY的最后一个参数1改为2,内层第二个QUERY的offset 1改为offset 2
内容的提问来源于stack exchange,提问作者Sam Toufaili
相关产品推荐
相关产品推荐

