如何使用Query函数获取两日期区间内的日期及对应ID与Number数据
解决Google Sheets日期区间展开并关联ID/Number的方案
你可以用下面的公式直接生成包含ID、日期、Number的完整结果:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A2:A10&"|"&B2:B10+SEQUENCE(1,MAX(DAYS(C2:C10,B2:B10)+1),0)&"|"&D2:D10),"|"),"where Col2 is not null order by Col1,Col2"))
公式说明:
- 关联对应数据:用
FLATTEN把每行的ID、日期序列(从Start Date到End Date的所有日期)、Number拼接成带分隔符|的字符串,确保每个日期都绑定到原始行的ID和Number。 - 拆分列:
SPLIT将拼接后的字符串拆分为三列,分别对应ID、日期、Number。 - 规整结果:
QUERY过滤掉无效的空日期行,同时按ID和日期排序,让输出结果更清晰。
注意事项:
- 如果你的数据行数超过10行,把公式里的
A2:A10、B2:B10、C2:C10、D2:D10改成对应的数据范围(比如A2:A表示从第2行到最后一行)。 MAX(DAYS(C2:C10,B2:B10)+1)会自动计算数据中最长的日期区间长度,替代你原来公式里固定的1000,避免因区间过长遗漏日期。
内容的提问来源于stack exchange,提问作者tss0701
相关产品推荐
相关产品推荐

