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

如何在Google Sheets中动态将分组值转置到对应日期旁

解决Google Sheets日期对应项目横向转置问题

核心动态数组公式

在空白单元格(比如A12)输入以下公式,可直接生成预期的转置结果:

=LET(
  dates, A2:A,
  items, B2:B,
  filled_dates, SCAN("", dates, LAMBDA(acc, curr, IF(curr<>"", curr, acc))),
  unique_dates, UNIQUE(FILTER(filled_dates, filled_dates<>"")),
  max_items, MAX(COUNTIF(filled_dates, unique_dates)),
  MAKEARRAY(
    ROWS(unique_dates),
    max_items + 1,
    LAMBDA(r, c,
      IF(c=1, INDEX(unique_dates, r),
        IFERROR(INDEX(FILTER(items, filled_dates=INDEX(unique_dates, r)), c-1), "")
      )
    )
  )
)

公式逻辑拆解

  1. SCAN填充日期分组:自动为每个无日期的项目匹配上一个有效日期,确保所有项目都关联到对应的日期组。
  2. UNIQUE提取唯一日期:获取所有不重复的日期,作为结果的行标题。
  3. MAKEARRAY构建结果矩阵:
    • 行数等于唯一日期的数量,列数等于单个日期下最多的项目数+1(第一列放日期)。
    • 第一列填充对应日期,后续列按顺序填充该日期下的所有项目,无项目的位置自动留空。

逐列填充替代方案

若不想使用LET函数,可先在辅助列(比如C列)用=SCAN("", A2:A, LAMBDA(a, v, IF(v<>"", v, a)))填充完整日期分组,再在D2单元格输入以下公式,向右、向下拖动填充:

=IFERROR(INDEX(B$2:B, SMALL(IF(C$2:C=A2, ROW(B$2:B)-ROW(B$2)+1), COLUMN(A1)+1)), "")

原公式问题说明

你之前的公式通过MMULT构建的分组逻辑未精准划分每个日期对应的项目范围,无法匹配到所有后续关联项目,而SCAN+MAKEARRAY的组合能更清晰地完成分组与转置的逻辑闭环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:30:12