欢迎光临散文网 会员登陆 & 注册

Power BI之DAX神功:第2卷第18回 自定义年初至今、季初至今和月初至今

2021-11-13 10:59 作者:孙兴华zz  | 我要投稿

友情提示:本节是上节课的补充内容,如果上节课的参数21对你没有用,本节课仍可选择跳过

《DAX神功》第2卷第11回 我们学习了累计至今区间

《DAX神功》第2卷第17回 我们学习了基于周的时间智能

如何在上节课参数21的基础上,计算累计到今区间呢?当你理解了思路,就可以以不变应万变

表名:Sheet1

一、正常情况下的年累计至今

【度量值】

总销售 = sum('Sheet1'[销售]) 

YTD1 = CALCULATE([总销售],DATESYTD('Sheet1'[日期]))

YTD2

    VAR m=max('Sheet1'[日期])

return

    CALCULATE([总销售],'Sheet1'[日期]<=m && YEAR('Sheet1'[日期])=YEAR(m))

二、参数21情况下的年累计至今

根据我们上节课学习的,计算当前日期是当年第几周

【新建列】参数21 = WEEKNUM('Sheet1'[日期],21)

【新建列】修证年 = year('Sheet1'[日期]+(4-WEEKDAY('Sheet1'[日期],2)) )

【度量值】

YTD3 = 

        var m1=max('Sheet1'[日期])

        var m2=max('Sheet1'[修证年])

return

        CALCULATE([总销售],'Sheet1'[日期]<=m1 && 'Sheet1'[修证年]=m2

// 年累计至今:只考虑小于等于最大日期和等于当前年


三、参数21情况下的月累计至今

【新建列】修证月 = if('Sheet1'[修证年]=YEAR('Sheet1'[日期]),MONTH('Sheet1'[日期]),12)

【度量值】

MTD = 

        var m1=max('Sheet1'[日期])

        var m2=max('Sheet1'[修证年])

        var m3=max('Sheet1'[修证月])

return

        CALCULATE([总销售],'Sheet1'[日期]<=m1 && 'Sheet1'[修证年]=m2 && 'Sheet1'[修证月]=m3

// 月累计至今:除了考虑小于等于最大日期和等于当前年,还要考虑等于当前月


四、参数21情况下的年季计至今

【新建列】

修证季度 = SWITCH('Sheet1'[修证月], 1, 1, 2,1,3, 1, 4,2,5, 2, 6,2,7, 3, 8,3,9, 3, 10,4,11,4, 12,4)

// 修证月是1,2,3时返回1,修证月是4,5,6时返回2,修证月是7,8,9时返回3,修证月是10,11,12时返回4

【度量值】

QTD = 

        var m1=max('Sheet1'[日期])

        var m2=max('Sheet1'[修证年])

        var m3=max('Sheet1'[修证季度])

return

        CALCULATE([总销售],'Sheet1'[日期]<=m1 && 'Sheet1'[修证年]=m2 && 'Sheet1'[修证季度]=m3)

// 季累计至今:只考虑小于等于最大日期和等于当前年,还要考虑等于当前季度

《孙兴华讲PowerBI火力全开》PowerBI必学课程

https://www.bilibili.com/video/BV1qa4y1H7wp

《DAX神功》文字版合集:

https://www.bilibili.com/read/readlist/rl442274

《DAX神功》视频版合集:

https://www.bilibili.com/video/BV1YE411E7p3

PowerBI(DAX函数)、PowerQuery(M函数)、Python办公自动化、Python爬虫、Python数据分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

https://www.bilibili.com/read/cv10222110

Power BI之DAX神功:第2卷第18回 自定义年初至今、季初至今和月初至今的评论 (共 条)

分享到微博请遵守国家法律