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。
如果我们想进一步的创建一个过滤器查看哪些国家的实际支出(Actual)超过了计划支出(Forecast)该如何做呢?估计绝大多数人首相想到的就是再创建一个度量值,计算一下如果Actual减去Forecast大于0则表示超过计划支出,反之则小于计划支出。为了方便查看,此处设置设置两个度量值,第一个先用SUM计算Actual-Forecast的值,下一个用If去判断哪些国家的实际支出超过计划支出。
看起来很完美,但是Power BI中的切片选择器是无法使用度量值类型的数据作为筛选过滤依据的,这就很大程度上限制了表单的创建。
那该怎么办?由于切片选择器只能使用列类型数据作为过滤依据,那么是否可以直接在当前表单上创建一个新的列来计算哪些国家实际支出超出预算呢?答案是否定的,因为根据之前的介绍可知列类型和度量值类型的处理逻辑有一定区别,如果用一个新列,当直接用Actual-Forecast计算得到的是每一行数据的差额值,是下面这种结果,显然不符合我们的要求。
那如果用SUM先分别计算Actual和Forecast的和之后再减呢?也不行,因为SUM是取的指定列整个数据的总和,列类型数据的计算特点是会把每一行数据都附上这个SUM求总值,一次会变成下面这种情况,也不符合我们的要求。
因此,要实现该需求,我们需要换一个角度思考。创建一个新的table,用来计算以国家为单位的汇总信息,此时就需要用DAX的GROUPBY函数以及SUMX。具体如何使用,请见下一个blog。
相关文章推荐
- DAX实战小例:对数据进行分组分析 2
- 利用python进行数据分析-pandas.concat/subplots/gropuby/pivot_table,多文件整合、聚合、分组,子图
- 利用Python进行数据分析--数据聚合与分组运算
- 利用Python进行数据分析--数据聚合与分组运算
- 利用Python进行数据分析--数据聚合与分组运算1
- 利用python进行数据分析-数据聚合与分组运算1
- 数据分析实战-利用K-Means进行航空公司客户价值识别
- [置顶] Hadoop实战演练:搜索数据分析----多个不同的Job进行串连(4)
- [置顶] 用pandas进行数据分析实战
- Hive实战:将xml文件处理为txt文件,并用Hive进行微博数据分析
- 利用python进行数据分析之数据聚合和分组运算
- 利用python进行数据分析-数据聚合与分组运算2
- Python数据分析中Groupby用法之通过字典或Series进行分组的实例
- PythonStock(9):使用优矿uqer.io 进行简单的数据分析
- 使用 Pig 进行数据分析
- 2-Spark高级数据分析-第二章 用Scala和Spark进行数据分析
- 用R和BioConductor进行基因芯片数据分析(六):差异表达基因
- 利用python进行数据分析之dataframe的常见操作
- Fiddler怎么对IPhone手机的数据进行抓包分析
- Spark是什么?用Spark进行数据分析