如何在Excel/Google Sheets中转置特定格式的CSV数据?
在Excel或Google Sheets中转置展开CSV数据的方法
原始CSV数据
Column 1, Column 2, Column 3, NAME 1, APP1, APP2 NAME 2, APP2 NAME 3, APP1, APP3
目标结果
Column 1, Column 2, Column 3, NAME 1, APP1 NAME 1, APP2 NAME 2, APP2 NAME 3, APP1 NAME 3, APP3
Excel 实现方案
方法1:Power Query(高效处理大规模数据)
- 将CSV导入Excel:点击「数据」选项卡 → 「自文本/CSV」,选择目标文件完成导入。
- 进入Power Query编辑器后,选中
Column 1列,点击「转换」选项卡 → 「逆透视列」→ 「逆透视其他列」。 - 此时所有APP列会被展开为单独行,删除自动生成的「属性」列,将「值」列重命名为
Column 2。 - 点击「关闭并上载」,数据将按目标格式输出到新工作表。
方法2:公式法(适合小规模数据)
假设原始数据位于A1:C4区域:
- 在
E1、F1分别输入表头Column 1、Column 2。 - 在
E2输入公式:=INDEX($A$2:$A$4,INT((ROW()-2)/COUNTA($B$2:$C$4)+1)) - 在
F2输入公式:
(注:公式中的=INDEX($B$2:$C$4,INT((ROW()-2)/2)+1,MOD(ROW()-2,2)+1)2是每行最多的APP项数,需根据实际数据调整) - 下拉填充公式至出现错误值,删除错误行即可得到结果。
Google Sheets 实现方案
方法1:函数组合(无需插件)
假设原始数据位于A1:C4区域:
- 在
E1、F1分别输入表头Column 1、Column 2。 - 在
E2输入公式:=ARRAYFORMULA(TRIM(FLATTEN(SPLIT(REPT(A2:A4&"|",COUNTA(B2:C4)),"|")))) - 在
F2输入公式:=ARRAYFORMULA(TRIM(FLATTEN(B2:C4))) - 过滤掉结果中的空行,即可得到目标格式。
方法2:Power Tools插件(可视化操作)
- 安装Power Tools插件后,打开插件选择「Split to Rows」功能。
- 选中需要展开的APP列(B、C列),设置按逗号分割,关联
Column 1列作为分组项,执行操作即可完成数据展开。
内容的提问来源于stack exchange,提问作者rafasalo
相关产品推荐
相关产品推荐

