根据某一个维度的数据,进行分组统计,是很常见的做法,比如按年龄对客户进行分组,按考试成绩进行分组统计等,这篇文章介绍一下,在PowerBI中如何对数据进行分组。
在PowerQuery编辑器中分组
在PQ中,直接用添加条件列的方式进行分组,假设依据数学成绩来进行分组,直接添加条件列,分别填入相应的分数和等级名称,
点击确定,表格中就会出现一个新列,
如果对M语言比较熟悉,也可以不用功能界面添加列的方式,直接编写M语言即可,
Table.AddColumn(
更改的类型, "等级",
each if [数学成绩] < 60 then "不及格"
else if [数学成绩] < 75 then "及格"
else if [数学成绩] < 90 then "良好"
else "优秀"
)
使用DAX函数分组
可以使用IF函数或者SWITCH函数,对于IF,大家都比较熟悉,和在Excel中完全一样,这里使用更加简洁的SWITCH函数来进行分组,
SWITCH ( TRUE(),
[数学成绩]<60, "不及格",
[数学成绩]<75, "及格" ,
[数学成绩]<90, "良好" ,
"优秀"
)
分组效果和PQ中完全一致。
动态分组
如果想看看哪些同学的成绩在平均分以上,哪些低于平均分,在静态数据的情况下比较简单,直接把平均分计算出来,然后每个同学的成绩和这个平均分比较一下就可以了。
如果数据是动态的,不断有新的成绩添加进来,那么如果进行快速分组呢?
用DAX依然很简单,新建列表达式如下,
按平均分 分组=
VAR avg_score = AVERAGEX('成绩','成绩'[数学成绩])
RETURN IF('成绩'[数学成绩]>=avg_score,"高于平均分","低于平均分")
利用AVERAGEX函数计算出整个成绩表的平均成绩,并记录为变量avg_score,然后每个同学的成绩分别与它比较就可以了,并且源数据发生变动时,avg_score也会自动更新,这样就利用VAR变量实现了动态分组。
这里只是动态分组的一个小例子,关于动态分组,以后的文章依然会涉及到。
学会分组只是第一步,在分组的基础上进行数据分析才是我们更要掌握的。