查看原文
其他

这几种数据分组的方式,你应该掌握!

采悟 PowerBI星球 2022-12-17

根据某一个维度的数据,进行分组统计,是很常见的做法,比如按年龄对客户进行分组,按考试成绩进行分组统计等,这篇文章介绍一下,在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变量实现了动态分组。

这里只是动态分组的一个小例子,关于动态分组,以后的文章依然会涉及到。


学会分组只是第一步,在分组的基础上进行数据分析才是我们更要掌握的。



加入知识星球,和我一起,精进PowerBI



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存