今天我们就来介绍一下,Dax 度量值(Power Pivot)和 Power Query 的 M 函数做法,主要带大家拓展思路。
如下图,我们现在需要将左表转换右边的模式。

01 利用 Dax 度量值
我们先来看看操作:
制作一个辅助列,公式为:
=COUNTIF($B$2:B2,B2)
插入数据透视表,并勾选「将此数据添加到数据模型」。
PS.我们想要使用 Dax,只需要在创建数据透视表时,勾选【将此数据添加到数据模型】即可。
单击数据透视表区域,在【Power Pivot】选项卡下,单击【度量值】-【新建度量值】。
在公式栏中输入公式,度量值名称为度量值 1。
=CONCATENATEX('区域','区域'[小类])
公式中,区域是我们的数据源表格,区域[小类]是区域表中小类列。
CONCATENATEX 函数的作用,就是将多个文本合并到一起,类似于 Excel 中的 TEXTJOIN 函数。
CONCATENATEX 函数的结构如下:
=CONCATENATEX(表,表达式,分隔符)
=CONCATENATEX('区域','区域'[小类])
所以上面 Dax 函数公式的含义,就是对区域表中的小类列进行文本合并。
将辅助列放在行区域,将大类放在列区域,将度量值 1 放在值区域。
将总计行和列禁用。
到这里,就制作完成了。
关于 Dax,大家可能有些疑惑,下面我来简单的介绍一下。
传统的数据透视表无法对文本进行透视,但是由于超级透视表(Power Pivot)的出现,利用 Dax 度量值我们就可以实现这一功能。
Power 是超级的意思,所以 Power Pivot 就是超级数据透视表。
DAX 是 Data Analysis Expression 的缩写,即数据分析表达式,Dax 是在 Power Pivot 的基础上使用的数据统计函数。