ARTICLE · 1194787
Excel Power Query 逆透视:二维表转一维表
今天咱们聊一个数据分析中绕不开的话题——如何把二维表转成一维表。别看只是表格结构的变化,这背后可是关系到你后续能不能顺利做数据透视、画图表、写公式。
为什么你必须掌握逆透视?
先来看两个场景,看看你有没有中招。
场景一:你手上有一张各部门的月度销售表,横向是1月到12月,纵向是部门和姓名,数据填在交叉格子里。老板让你“按月份统计总销售额”,你打开数据透视表,拖来拖去发现——月份全变成了列标题,根本没法按月份汇总。手动复制粘贴?12个月乘以几十个部门,手都要废了。
场景二:你从系统导出的报表,每个月的销售额横向排开,你想算季度环比增长,却发现数据散落在横向的列里,公式写起来复杂得要命。
问题出在哪?出在表格结构上。
二维表(交叉表)虽然看起来直观,适合展示和阅读,但它的致命缺陷是:不利于计算、汇总和建立数据模型。真正适合做分析的是一维表——每一行是一条完整的记录,每个字段只描述一个属性。
一维表长什么样?以场景一为例:
每一行都是一条完整的记录,透视表、图表、函数统计全都畅通无阻。
那怎么从二维表变成一维表?手动复制粘贴?当然可以,但数据一更新你就得重来一遍。正确姿势是——Power Query 逆透视。
逆透视的核心逻辑,一句话讲清楚
逆透视(Unpivot)是Power Query中的一种维度转换技术,它能将多列数据合并为两列:属性列(原来的列标题)和值列(原来的单元格数值)。
打个比方:你有一张“横着放”的表格,月份标签横躺在列标题里。逆透视做的事情就是把这些横躺的标签“推倒”,让它们竖着排成一列。
操作上有一个超级好记的口诀:选中那些“不动的列”,然后点击“逆透视其他列”。
什么意思?以刚才的销售表为例,“部门”和“姓名”这两列是不需要变的固定维度,选中它们,然后让Power Query把“1月”“2月”……这些列全部折叠成行。就这么简单。
手把手实战:3分钟完成转换
下面用一个完整的电商销售数据案例来演示。原始表格是这样的:
目标:把1月、2月、3月三列折叠成“月份”和“销售额”两列。
第一步:加载数据到Power Query
点击表格内任意单元格 → 顶部菜单栏点击「数据」选项卡 → 点击「来自表格/区域」→ 在弹出的对话框中确认“表包含标题”已勾选 → 点击「确定」。

此时Power Query编辑器会自动打开,你会看到原始表格出现在编辑器中。
第二步:关键操作——逆透视
按住Ctrl键,依次选中「SKU」和「产品名称」这两列(它们是不动的固定列)。然后点击「转换」选项卡 → 找到「逆透视列」按钮 → 点击下拉箭头 → 选择「逆透视其他列」。

嗖的一下,所有月份列全部折叠成了两列——一列叫“属性”(原来的列名),一列叫“值”(原来的数字)。

第三步:重命名列
双击“属性”列的标题,改成“月份”。双击“值”列的标题,改成“销售额”。这一步纯粹是为了让列名更直观,不改也不影响功能,但改了看着舒服。

第四步:输出结果
点击左上角「主页」选项卡 → 点击「关闭并上载」→ 数据会自动加载到一个新的工作表中。

搞定!整个过程不到3分钟。而且最大的好处是——原始数据更新后,只需要右键点击结果表,选择“刷新”,所有转换自动完成,一劳永逸。
进阶场景:合并单元格和多层表头怎么办?
实际工作中,原始表格往往没那么规整。以下是两种最常见的“脏数据”情况。
情况一:有合并单元格
很多报表喜欢把“部门”这一列做合并单元格,只有第一行有值,下面都是空白。这时候直接逆透视,空白行会丢失信息。
解决思路:在逆透视之前,先选中该列 → 点击「转换」→「填充」→「向下填充」。这样空白单元格会自动补全为上方的内容,再逆透视就万无一失了。
情况二:多层表头
有些报表的行标题和列标题都有层次结构,比如列标题是“2024年”下面再分“Q1、Q2、Q3、Q4”,行标题是“华东区”下面再分“上海、江苏”……
解决思路:这种多维表转换起来步骤多一些,核心思路是——先用「转置」把行列互换,再用「向下填充」补全标题,然后用「将第一行用作标题」提升表头,最后再执行逆透视。
听起来步骤多?别怕,这些操作都是一次性的,设置好之后同样只需要刷新就能自动完成。如果遇到特别复杂的结构,也可以考虑把多个维度列先合并成一列(用分隔符隔开),逆透视之后再拆分回来。
避坑指南:两个高频错误
坑一:数据更新后报错“找不到列”
这是逆透视最常遇到的坑。原因在于Power Query在加载数据时会自动生成一个“更改的类型”步骤,把每列的数据类型都固定下来。当你的源数据列发生变化(比如新增了月份),这个步骤就会因为找不到原来的列名而报错。
解决办法:在Power Query编辑器里,直接删除“更改的类型”这个步骤即可。如果想一劳永逸,可以进入「文件」→「选项和设置」→「查询选项」→ 在「全局」→「数据加载」中,将“类型检测”设置为“从不检测未结构化源的列类型和标题”。
坑二:逆透视后丢失了关键列
有些朋友一上来就全选所有列然后逆透视,结果发现产品名称、ID这些关键标识列全被“折叠”没了。
记住那个口诀:先选中你不想折叠的列(固定维度列),再点“逆透视其他列”。被选中的列会原封不动保留,没选中的列才会被折叠。
写在最后
二维表转一维表,说到底就是一句话:用Power Query的“逆透视其他列”,选中不动的列,折叠要变的列。
传统的复制粘贴,数据一变就白干;Power Query逆透视,一次设置,刷新即用。对于经常处理报表的朋友来说,这可能是投入产出比最高的一个Excel技能。















































































