如何在Google Sheets中将列转成行并重复行标签?
在Google Sheets中将宽表转换为长表(表1转表2)
根据你的需求,表1是宽表结构(日期为行,项目为列),表2是长表结构(日期、项目、数值为三列,每个日期+项目组合为一行),以下是两种实用的实现方法:
方法1:内置逆透视功能(无需公式,操作简单)
- 选中表1的全部数据(包含表头),例如范围
A1:D4 - 点击顶部菜单栏「数据」→「数据透视表和图表」→「数据透视表」
- 在弹窗中选择透视表放置位置(推荐选新工作表),点击「创建」
- 在右侧「数据透视表编辑器」中:
- 将「日期」字段拖入「行」区域
- 将所有项目字段(如项目1、项目2、项目3)拖入「值」区域,确保汇总方式为「求和」(单个值求和不影响结果)
- 右键点击透视表内任意值单元格,选择「显示为」→「逆透视列」
- 最后将自动生成的「列」表头重命名为「项目」,「值」表头重命名为「数值」,即可得到表2的格式
方法2:公式实现(支持动态更新)
假设表1数据位于A1:D4(A1为「日期」,B1:D1为项目名,A2:A4为日期,B2:D4为对应数值):
- 在空白区域输入表头:「日期」「项目」「数值」
- 在表头下方的第一个单元格(如F2)输入以下公式:
=ARRAYFORMULA( { FLATTEN(A2:A4&""), FLATTEN(TRANSPOSE(B1:D1)), FLATTEN(B2:D4) } )
- 按下回车后,公式会自动生成表2的完整结构
- 公式说明:
FLATTEN(A2:A4&""):将日期列重复对应项目次数,展开为单列FLATTEN(TRANSPOSE(B1:D1)):将项目表头转置后展开,让每个项目对应所有日期FLATTEN(B2:D4):将所有数值展开为单列,与日期、项目一一对应
- 若后续添加新的项目或日期,只需调整公式中的单元格范围即可自动更新
内容的提问来源于stack exchange,提问作者Pratikp
相关产品推荐
相关产品推荐

