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

Google Sheets:如何用Query或ArrayFormula转置重构表格?

Google Sheets Query 表格重构解决方案

针对你需要重构表格的需求,结合示例表格的结构,这里提供通用的Query+辅助函数解决方案,帮你快速重塑数据结构:

宽表转窄表(原始格式转纵向条目)

如果原始数据是宽表(每行是一条完整记录,多列对应属性),要转成窄表(每行是单个属性条目),使用以下公式:

=QUERY(
  {FLATTEN(Sheet1!A2:A&"|"&Sheet1!B1:D1), FLATTEN(Sheet1!B2:D)},
  "SELECT SPLIT(Col1, '|')[0], SPLIT(Col1, '|')[1], Col2 
   WHERE Col2 <> '' 
   ORDER BY 1",
  0
)

公式拆解:

  • FLATTEN(Sheet1!A2:A&"|"&Sheet1!B1:D1):将每行主键(比如A列的日期/ID)与表头拼接后平铺成单列,用来关联属性名和对应记录
  • FLATTEN(Sheet1!B2:D):把所有属性值平铺成单列,和上方关联列一一对应
  • QUERY语句:
    • SPLIT(Col1, '|'):拆分拼接字符串,提取原始主键和属性名
    • WHERE Col2 <> '':过滤空值行
    • ORDER BY 1:按主键排序

窄表转宽表(聚合为结构化记录)

如果要反向将窄表转为宽表,用PIVOT实现:

=QUERY(
  Sheet2!A:C,
  "SELECT A, MAX(C) 
   WHERE A <> '' 
   GROUP BY A 
   PIVOT B",
  1
)

公式说明:

  • GROUP BY A:按主键分组聚合
  • PIVOT B:将属性名转换为表头
  • MAX(C):提取每个属性对应的唯一值(若存在重复值,可替换为COUNT/SUM等聚合函数)

适配你的示例表格

根据你提供的示例表格结构,修改公式中的单元格范围(比如把Sheet1!A2:A替换为实际原始数据范围)即可。如果目标格式有特殊要求,调整Query逻辑:

  • 筛选特定数据:在WHERE后追加条件,比如WHERE SPLIT(Col1, '|')[1] = '任务状态'
  • 调整排序规则:修改ORDER BY后的列序号或字段
  • 保留表头:将公式最后一个参数0改为1(若原始数据包含表头)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:37:17