求Google Sheet解决方案:合并日期不同的多时间序列数据
Google Sheets 合并多组日期不统一的时间序列数据方案
需求说明
有多组时间序列数据集,每组第1列为日期、第2列为数值,各组日期范围不统一,需将所有日期合并为单列,不同序列的数值分别放在独立列中。
方案一:QUERY透视法(一键生成结果)
如果你的各组数据是类似「序列1(A:B列)、序列2(D:E列)、序列3(G:H列)」这样的结构,可直接用以下公式生成最终结果(替换公式中的表名和区域为实际数据位置):
=QUERY( { ARRAYFORMULA(IF(Sheet1!A2:A<>"", {Sheet1!A2:A, "序列1", Sheet1!B2:B}, "")); ARRAYFORMULA(IF(Sheet1!D2:D<>"", {Sheet1!D2:D, "序列2", Sheet1!E2:E}, "")); ARRAYFORMULA(IF(Sheet1!G2:G<>"", {Sheet1!G2:G, "序列3", Sheet1!H2:H}, "")) }, "select Col1, max(Col3) where Col1 is not null group by Col1 pivot Col2", 1 )
公式解释
{...;...;...}:将多组数据合并为统一的三列结构(日期、序列名称、数值),自动过滤空行QUERY函数:select Col1, max(Col3):提取日期列,同时提取对应序列的数值(max用于确保同一日期同一序列仅保留唯一值,不影响结果)group by Col1:按日期分组pivot Col2:将序列名称转为表头列,实现数值分列展示
- 最后一个参数
1表示数据包含表头
方案二:分步构建(灵活调整)
如果需要更灵活的调整,可分两步操作:
步骤1:提取所有唯一日期
在结果区域的A2单元格输入公式,生成所有不重复且排序后的日期:
=SORT(UNIQUE(FLATTEN(Sheet1!A2:A, Sheet1!D2:D, Sheet1!G2:G)))
FLATTEN:将多组日期列合并为单列UNIQUE:去除重复日期SORT:按日期顺序排序
步骤2:匹配各组数值
- 序列1数值列(B2单元格):
=XLOOKUP($A2, Sheet1!$A:$A, Sheet1!$B:$B, "") - 序列2数值列(C2单元格):
=XLOOKUP($A2, Sheet1!$D:$D, Sheet1!$E:$E, "") - 后续序列以此类推,输入公式后下拉填充即可
XLOOKUP:根据当前日期匹配对应序列的数值,无匹配时返回空字符串
注意事项
- 确保所有日期格式统一,避免因格式差异导致匹配失败
- 公式中的
Sheet1和单元格范围需替换为你的实际数据所在位置 - 若新增序列,只需在对应公式中添加新的数据集区域即可
内容的提问来源于stack exchange,提问作者P2k
相关产品推荐
相关产品推荐

