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

求助:在Google Sheet中使用QUERY函数实现数据提取与结构转换

Google Sheet 结构转换 QUERY 函数实现方案

以下针对两种常见的结构转换场景给出具体语法,你可以根据自己的A/B/C实际结构调整单元格范围:

场景1:宽表(A结构)转长表(B结构)

假设A结构是每行对应一个主体,多列对应不同属性(如姓名+多科目分数),要转换为每行对应单个属性的长表结构:

示例数据(A结构)

姓名语文数学英语
张三809085
李四758892

目标结构(B结构)

姓名科目分数
张三语文80
张三数学90
张三英语85
李四语文75
李四数学88
李四英语92

函数语法

=QUERY(
  FLATTEN(
    ARRAYFORMULA(
      A2:A&"|"&B1:D1&"|"&B2:D
    )
  ),
  "SELECT SPLIT(Col1, '|') WHERE Col1 IS NOT NULL LABEL SPLIT(Col1, '|') ''",
  0
)
  • 调整A2:A为主体列范围,B1:D1为属性表头范围,B2:D为属性值范围
  • FLATTEN将多列数据拆分为单行,SPLIT把拼接的字符串拆分为多列

场景2:长表(A结构)转宽表(C结构)

假设A结构是每行对应单个属性记录,要转换为每行对应一个主体、多列聚合属性的宽表结构:

示例数据(A结构)

姓名科目分数
张三语文80
张三数学90
李四语文75
李四数学88

目标结构(C结构)

姓名语文数学
张三8090
李四7588

函数语法

=QUERY(A2:C, "SELECT A, MAX(C) WHERE A IS NOT NULL GROUP BY A PIVOT B", 1)
  • 调整A2:C为原始数据范围,A为分组列,C为聚合值列,B为透视列
  • PIVOT是QUERY的核心透视语法,将行值转为列名,MAX用于聚合(如果有重复记录可根据需求换SUM/AVG等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:25:23