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

Google Sheets如何从不相邻两列提取日期对应唯一值生成动态表

Google Sheets 按日期对齐双列唯一值动态表实现方案

原有公式问题说明

你之前使用的=unique(filter(A2:E,{1,1,0,1,1}))存在逻辑缺陷:该公式仅剔除了C列保留其余四列,本质是对「A列日期+B列值」「D列日期+E列值」两组独立的日期-值对分别去重,没有做日期维度的对齐合并,必然返回两套互不关联的日期列,无法实现H、I列值相邻排布的效果。

可用实现公式

直接将以下公式粘贴到G2单元格,公式会自动溢出填充G、H、I三列的全部动态结果,源数据更新时结果会自动同步:

=LET(
  all_dates, UNIQUE(FLATTEN(FILTER(A2:A,A2:A<>""),FILTER(D2:D,D2:D<>""))),
  res, REDUCE({"日期","B列唯一值","E列唯一值"}, all_dates, LAMBDA(acc,cur_date,
    b_vals, UNIQUE(FILTER(B2:B,A2:A=cur_date,B2:B<>"")),
    e_vals, UNIQUE(FILTER(E2:E,D2:D=cur_date,E2:E<>"")),
    max_len, MAX(ROWS(b_vals),ROWS(e_vals)),
    b_pad, IF(SEQUENCE(max_len)<=ROWS(b_vals),b_vals,""),
    e_pad, IF(SEQUENCE(max_len)<=ROWS(e_vals),e_vals,""),
    VSTACK(acc, HSTACK(SEQUENCE(max_len,1,cur_date,0),b_pad,e_pad))
  )),
  res
)

注意:使用前请确保G2单元格下方的G、H、I列区域没有手动输入的内容,否则会触发#REF!溢出错误

公式逻辑说明

  • 先通过FLATTEN将A、D两列的所有日期合并为一维数组,用UNIQUE提取全量不重复日期作为统一分组维度,从根源避免双日期列问题
  • 遍历每一个目标日期,分别筛选出该日期下B列、E列的非空唯一值
  • 取两组唯一值的最大行数做对齐处理,行数不足的一侧补空值,保证同一日期下B、E列的提取结果逐行相邻排布
  • 最后按行拼接所有日期的处理结果,输出符合要求的三列动态表

内容的提问来源于stack exchange,提问作者Kishan Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:06:16