如何将键值对行数据转列为含6个指定字段的结构化表格?
两列表格转结构化六列表格的方法
以下是两种常用的处理方案,适用于Excel、Google Sheets等电子表格工具:
一、公式法(适合数据量不大的情况)
因为每6行对应一条完整记录,核心是通过行号定位每条记录的对应字段:
- 添加分组辅助列:在空白列(比如C列)的第一行输入公式
=INT((ROW()-1)/6)+1,下拉填充到底。这个公式会给每6行分配同一个组号,用来标记同一条记录的字段。 - 提取各字段值到对应列:
- 新建「License Number」列,第一行输入
=INDEX($B:$B,ROW()*6-5),下拉后会自动取第1、7、13...行的B列值; - 新建「Name」列,第一行输入
=INDEX($B:$B,ROW()*6-4),下拉取第2、8、14...行的B列值; - 新建「Address」列,第一行输入
=INDEX($B:$B,ROW()*6-3),下拉取第3、9、15...行的B列值; - 新建「City/ST/Zip」列,第一行输入
=INDEX($B:$B,ROW()*6-2),下拉取第4、10、16...行的B列值; - 新建「Phone」列,第一行输入
=INDEX($B:$B,ROW()*6-1),下拉取第5、11、17...行的B列值; - 新建「License Expiration Date」列,第一行输入
=INDEX($B:$B,ROW()*6),下拉取第6、12、18...行的B列值;
- 新建「License Number」列,第一行输入
- 最后删除辅助列,整理好的列就是每条记录一行的结构化表格。
二、Power Query法(适合大量数据,自动化处理)
这个方法无需手动下拉公式,适合批量转换:
- 选中原始数据的A、B两列,点击Excel的「数据」选项卡 → 「从表格/区域」,将数据导入Power Query编辑器;
- 添加索引列:点击「添加列」→「索引列」→「从0开始」;
- 添加分组ID列:点击「添加列」→「自定义列」,输入公式
=Number.IntegerDivide([索引],6),命名为「记录组ID」; - 透视列生成结构:点击「转换」→「透视列」,设置参数:
- 透视列选择原始的字段标识列(A列);
- 值列选择字段值列(B列);
- 高级选项选择「不要聚合」;
- 点击「关闭并上载」,编辑器会自动生成6列的结构化表格,每条记录对应一行。
内容的提问来源于stack exchange,提问作者Dharmesh Singh
相关产品推荐
相关产品推荐

