DAX分享2:浅谈PowerBI里面的YTD计算

浏览: 9067

周末酝酿了两天,实在是不知道要把基础版的写到多么detail才好。还是先继续DAX分享吧。

第一次分享留下的问题答案如下:

在Product表里面创建一个Calculate Column。DAX定义如下:

Colors in Brand = CONCATENATE("With ",

        CALCULATE(

            DISTINCTCOUNT('Product'[Color])

            ,ALLEXCEPT('Product','Product'[Brand])

        ) )&" Color"

在visualization里面创建一个Table。得到结果如下

图2.1.png

因为写到问题的时候是临时起意,所以也没有想到数据表里面居然就没有一个brand有3个color的结果,都是大于3的。所以就先做出个这样的结果吧。

如果你问为什么要用CONCATENATE function,不直接用&符号,因为我想放点好玩的,虽然不把number数字型format转换成text字符类型,也可以用&。或者可以理解为就是表现的好像知道很多公式而已。

soeasy.png

------正式开始分享2------

PowerBI里面有个很炫酷的计算就是Time Intelligence。说起来就让人热血沸腾,因为忒简单啊。对于一个懒人来说,越简单越好吖!

今天就简单的分享下YTD的计算吧。

如下链接下载财务数据样例。

https://docs.microsoft.com/zh-cn/power-bi/sample-financial-download

加载入powerbi中,得到数据表financials。

图2.2p.png

创建date table。建好financials table和date table的关系。

计算YTD在其他报表工具里面都是比较有难度的,但是在PowerBI里面就是很简单.如果用New Quick Measure,PowerBI会自动推荐用TOTALYTD.

Sales YTD = TOTALYTD(SUM('financials'[ Sales]),'Date'[Date])

我个人习惯用DATESYTD。结果是一样的。

Sales DATESYTD = CALCULATE(SUM(financials[ Sales]),DATESYTD('Date'[Date]))

图2.3.png

直接计算一年内的YTD还挺简单的,那如果财年是从今年的4月到下一年的3月呢?重点看最后一行。

图2.4.png

Sales FinYearYTD =

VAR MAXFY= MAX('Date'[Fin Year])

VAR MAXDT = MAX('Date'[FinBI Month])

RETURN

    CALCULATE(

        SUM(financials[ Sales]),

        FILTER(

            ALL('Date'),

            'Date'[FinBI Month] <= MAXDT && 'Date'[Fin Year] = MAXFY

        )

)

是不是感叹,在PowerBI里面用DAX算这些YTD可真是简单啊!还速度很快。

那扩展两个问题吧,如果需要计算Running total呢?(所有值按照时间月份的running total)。如果需要计算当前月往前推12个月的总和的average呢?(有的月份可能就没有数据哦)


写到了variable,突然就想到了下一个分享内容。Rank排序吧,都有点忘记了。

关注DAX Share,了解更多DAX在PowerBI中的应用。

banmi.jpg

推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册