本文来自星友袁佳林的实践分享,他参加了PowerBI星球中的DAX圣经第二版100天学习打卡活动,已持续分享近100天,对DAX的理解自然更深了一些,本文就是他利用DAX解决问题的一种思路。
Think in DAX 之报表自动化实践
作者:袁佳林
2019年6月7日,在我加入PowerBI星球不久,问过星主采悟一个实际工作上遇到过的数据汇总统计的问题:
数据结构如下图所示,
(数据纯属模拟,如有雷同,都是抄我的)这个问题主要涉及到单笔业绩多人分成时的业绩计算。
对于普通Excel用户来说,并不难但是比较繁琐。插入三列,分别计算三个分成业绩,然后透视三次,最后用VLOOKUP汇总三次透视结果。
如果每月做一次也许还可以接受,但是实际情况是每日都需要去完成这项统计。所以必须寻找更快捷方便的方法。
当时我在星球上提问时,星主提出了一个使用PowerQuery的解决办法,如下图,
因为我当时已经有了一定的Power Query基础了,所以我按照星主的解答在查询编辑器里完成相应的步骤最终完美的解决了该问题。
但当时我就问我自己,这个问题有没有DAX的解法?
在我参加了星球里由AgnesJ组织的"100天打卡DAX圣经②"活动后,学到Chapter12 Manipulating tables里的SUMMRIZECOLUMNS及UNION函数时,终于找到了DAX解法。
主要思路是使用SUMMRIZECOLUMNS分别求出各网点在不同分成比例上的分成金额。然后用UNION将三个分成比例上求得的分成金额合并,最后放在矩阵里透视,便得到了想要的最终结果。
以下是新建表计算各单位不同用途贷款在分成比例1上的分成业绩。
通过同样的方式可以计算到在其他分成比例上的分成业绩。
使用UNION函数将三张新建的表纵向追加合并。
以上,我们新建了四个表格,其实我们也可以直接用VAR将中间表格定义为变量,然后一次性求解。
利用DAX得到的结果表的结构,其实和PowerQuery逆透视的结果是一样的。
最后新建一个度量值,
业绩= SUM('汇总业绩VAR'[分成业绩])/10000
并将度量值、单位、用途分别放在矩阵的值、行及列上就能得到最终的结果。
同样一个问题,无论用PowerQuery,还是DAX,只要用心,总能找到解决的办法。
如果你刚开始接触Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。
更多推荐:
采悟 @ PowerBI星球
网友评论