Google Sheets多表数据整合Query公式定制技术求助
Google Sheets Query公式扩展实现方法
核心思路
要整合Sheet1中符合DATE>指定日期的数据,以及Sheet2中关联该DATE的LOCATION信息,需先构建包含关联数据的联合区域,再通过Query完成筛选与排序。
具体实现公式
假设指定日期存放在单元格K1,Sheet1的DATE列是A列(数据从A2开始),其他业务字段为B、C列;Sheet2的DATE列是A列,LOCATION列是B列,可使用以下公式:
=QUERY( { B3:D6;E3:G6;H3:J6; FILTER( {Sheet1!A2:C, VLOOKUP(Sheet1!A2:A, Sheet2!A:B, 2, FALSE)}, Sheet1!A2:A > K1 ) }, "select * where Col1 is not null order by Col1 asc", 0 )
公式细节说明
- 原有合并区域:
B3:D6;E3:G6;H3:J6保留原数据结构,与新数据垂直合并 - Sheet1筛选与关联:
FILTER(Sheet1!A2:A > K1)筛选出DATE大于指定日期的行VLOOKUP(Sheet1!A2:A, Sheet2!A:B, 2, FALSE)匹配Sheet2中对应DATE的LOCATION,将其追加到Sheet1的每行数据后
- Query条件:保留原有的
Col1 is not null过滤空行,同时按Col1升序排序,最后参数0表示联合区域无表头(若有表头可改为1)
注意事项
- 若Sheet2存在重复DATE值,
VLOOKUP会返回第一个匹配的LOCATION;如需处理重复数据,可改用INDEX+MATCH组合或嵌套Query实现关联 - 指定日期也可直接写死在公式中,例如替换
K1为DATE(2024,1,1),但使用单元格引用更便于动态调整 - 确保Sheet1和Sheet2的DATE格式完全一致(如均为日期格式而非文本),否则会导致匹配失败
内容的提问来源于stack exchange,提问作者Martin Brandt
相关产品推荐
相关产品推荐

