如何对Excel多值记录按供应商分组转置为指定宽表格式?
Excel分组转置实现方法
以下三种是Excel里实现该需求最常用的操作路径,按需选择即可:
- 数据透视表法(新手首选,操作最快)
- 全选原始数据区域,点击顶部「插入」-「数据透视表」,选择结果存放位置(推荐新工作表,避免覆盖原数据)
- 在右侧字段配置面板,把
SUPPLIER拖入行区域,DOC拖入列区域,STATUS拖入值区域 - 点击值区域的字段项,把汇总方式改为「最大值」(因为同一供应商+同一DOC仅对应唯一状态,最值汇总不会篡改结果)
- 打开透视表选项设置,把空单元格显示值设置为
-,最后手动把列标题修改为DOC.A、DOC.B、DOC.C即可。
- 函数公式法(适合数据需要动态联动的场景)
- 先在新工作表A列提取不重复供应商名单:365/2021及以上版本直接在A2单元格输入
=UNIQUE(原数据!A2:A8)回车即可自动生成;低版本可以用「数据」选项卡下的高级筛选,勾选「选择不重复的记录」,把供应商列复制到新表A列。 - 在新表第一行B1、C1、D1分别输入表头DOC.A、DOC.B、DOC.C。
- 填写匹配公式:高版本在B2单元格输入
=XLOOKUP($A2&RIGHT(B$1,1),原数据!$A$2:$A$8&原数据!$B$2:$B$8,原数据!$C$2:$C$8,"-"),回车后会自动填充所有行列;低版本输入=IFERROR(INDEX(原数据!$C:$C,MATCH($A2&RIGHT(B$1,1),原数据!$A:$A&原数据!$B:$B,0)),"-"),按Ctrl+Shift+Enter触发数组计算后,向右向下拖拽公式覆盖整个数据区域即可。
- 先在新工作表A列提取不重复供应商名单:365/2021及以上版本直接在A2单元格输入
- Power Query法(适合万行以上大批量数据、需要定期更新结果的场景)
- 选中原始数据区域,点击「数据」-「从表格/区域」,将数据加载到Power Query编辑器。
- 选中
DOC列,点击「转换」选项卡下的「透视列」,值列选择STATUS,聚合方式选择「不要聚合」。 - 选中所有生成的DOC列,点击「替换值」,把空值(null)统一替换为
-,手动修改列名为要求的DOC.A、DOC.B、DOC.C格式。 - 点击「关闭并上载」即可输出结果,后续原数据更新后,只要右键结果表选择「刷新」就能自动同步最新的宽表内容。
内容的提问来源于stack exchange,提问作者Marco Anastasio
相关产品推荐
相关产品推荐

