您的位置:首页 > 其它

DAX实战小例:对数据进行分组分析 1

2018-03-27 10:45 411 查看
在数据分析中经常会遇到某个表单中的某一列包含多种数据,然后需要对数据分组进行统计的情况。例如在下面例子中的财务报表,如果想计算每个国家目前实际的支出(Actual)情况,可以创建一个度量值,利用Sum函数对Actual数据进行计算,之后在Report页面创建的可视化图表时,Power BI就会自动按照国家情况进行统计汇总。



如果我们想进一步的创建一个过滤器查看哪些国家的实际支出(Actual)超过了计划支出(Forecast)该如何做呢?估计绝大多数人首相想到的就是再创建一个度量值,计算一下如果Actual减去Forecast大于0则表示超过计划支出,反之则小于计划支出。为了方便查看,此处设置设置两个度量值,第一个先用SUM计算Actual-Forecast的值,下一个用If去判断哪些国家的实际支出超过计划支出。



看起来很完美,但是Power BI中的切片选择器是无法使用度量值类型的数据作为筛选过滤依据的,这就很大程度上限制了表单的创建。



那该怎么办?由于切片选择器只能使用列类型数据作为过滤依据,那么是否可以直接在当前表单上创建一个新的列来计算哪些国家实际支出超出预算呢?答案是否定的,因为根据之前的介绍可知列类型和度量值类型的处理逻辑有一定区别,如果用一个新列,当直接用Actual-Forecast计算得到的是每一行数据的差额值,是下面这种结果,显然不符合我们的要求。



那如果用SUM先分别计算Actual和Forecast的和之后再减呢?也不行,因为SUM是取的指定列整个数据的总和,列类型数据的计算特点是会把每一行数据都附上这个SUM求总值,一次会变成下面这种情况,也不符合我们的要求。



因此,要实现该需求,我们需要换一个角度思考。创建一个新的table,用来计算以国家为单位的汇总信息,此时就需要用DAX的GROUPBY函数以及SUMX。具体如何使用,请见下一个blog。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息