如何使用Excel公式或数组将左侧示例数据转换为预期结果?
Excel数据转换问题
左侧为多行非结构化示例数据(每行对应一个属性名和属性值),需将其转换为右侧的结构化表格(同一主体的所有属性值合并至一行,各属性对应独立列)。
示例说明:左侧数据格式为
属性名 | 属性值的多行形式,例如“姓名 | 张三”“电话 | 13xxxxxxxxx”;右侧结果为每个主体一行,包含姓名、电话、邮箱等列,对应属性值填充至对应单元格。
方法一:Power Query批量转换(推荐)
- 选中原始数据区域,点击数据选项卡 → 从表格/区域(若提示表格标题,因原始数据无标题,取消勾选“我的表格有标题”)
- 在Power Query编辑器中,选中属性名列(第一列),点击转换选项卡 → 透视列
- 透视设置:值列选择属性值列(第二列),高级选项选择「不要聚合」,点击确定
- 点击主页选项卡 → 关闭并上载,即可生成转换后的结构化表格
方法二:公式法(适合小量数据)
假设原始数据在A:B列:
- 提取主体标识:在D2输入
=IF(A2="姓名",B2,D1),下拉填充,让同一主体的行对应同一个姓名 - 提取各属性值:
- 电话列(E2):
=IF(A2="电话",B2,""),下拉填充 - 邮箱列(F2):
=IF(A2="邮箱",B2,""),下拉填充
- 电话列(E2):
- 去重整合:选中D:F列,点击数据选项卡 → 删除重复值(以D列为依据),再用
MAXIFS(E:E,D:D,D2)提取对应主体的电话、邮箱值(或直接筛选非空值填充)
内容的提问来源于stack exchange,提问作者Chris Johnston
相关产品推荐
相关产品推荐

