本文总共2761个字,阅读需10分钟,全文加载时间:2.297s,本站综合其他专栏收录该内容! 字体大小:

文章导读:《PowerBI火力全开+可视化+DAX神功》完整视频教程 https://www.ixigua.com/6976409163886756383 一、名词解释 YTD:当年累计,Year To Date的简写 QTD:当季度累计,Quarter To Date的简写 MTD:当月累计,Month T……各位看官请向下阅读:

《PowerBI火力全开+可视化+DAX神功》完整视频教程

https://www.ixigua.com/6976409163886756383

一、名词解释

YTD:当年累计,Year To Date的简写

QTD:当季度累计,Quarter To Date的简写

MTD:当月累计,Month To Date的简写

二、表函数 DATESYTD、DATESMTD、DATESQTD函数

表名:Sheet1

【1】语法:年初至今

DATESYTD(日期,<上一年的截止日期>)

【新建表】年初至今 = DATESYTD('Sheet1'[日期],"6-30")【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021/6/30")【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021-6-30")【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021年6月30日")

关于第2参数以上几种写法都对!返回一张表

当你省略第2参数时,第二参数默认是上一年的12月31日

【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2020/12/31")【新建表】年初至今 = DATESYTD('Sheet1'[日期])

以上两个公式是等价的,返回一张表

【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021/12/31")【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021-12-31")【新建表】年初至今 = DATESYTD('Sheet1'[日期],"2021年12月31日")

也等价于

【新建表】年初至今 = DATESYTD('Sheet1'[日期],"12-31")【新建表】年初至今 = DATESYTD('Sheet1'[日期])

仍然返回这张表:

上一年是什么时候,不看你第二参数显示的年份,而是由你表中最大日期所在的年份决定的

第二参数中,DATESYTD函数只提取月份和日期。

【2】语法:月初至今与季初至今 (没有第2个参数)

【新建表】月累计语法=DATESMTD(<日期>)

返回一张表

解释:年和月由原表中最大日期决定,这个函数只是返回指定年和月的第1天到最后1天。

【新建表】季度累计语法=DATESQTD(<日期>)

返回一张表

【3】优化上节课案例

第一步:新建动态日期表,并建议关系(略)

日期表 = ADDCOLUMNS(CALENDAR(FIRSTDATE('Sheet1'[日期]),LASTDATE('Sheet1'[日期])),"年", YEAR ( [Date] ),"季度", ROUNDUP(MONTH([Date])/3,0),"月", MONTH([Date]),"周", weeknum([Date]),"年季度", year([date]) & "Q" & ROUNDUP(MONTH([Date])/3,0),"年月", year([Date]) * 100 + MONTH([Date]),"年周", year([Date]) * 100 + weeknum([Date]),"星期几", WEEKDAY([Date]))

第二步:新建以下三个度量值

总销售 = sum(Sheet1[销售])度量值3 = calculate([总销售],FILTER(all('日期表'),'日期表'[Date]<=max('日期表'[Date]) && '日期表'[年]=2021))年初至今 = calculate([总销售],DATESYTD('日期表'[Date]))

因为你并没有指定是哪一年,它会对所有年每个月进行累积

年初至今 = calculate([总销售],DATESYTD('日期表'[Date]),'日期表'[年]=2021)

Ps: 上节课没有白听吧?

关于季度初至今和月初至今,我在这里就不在重复讲了。

《火力全开》笔记27课,向大家说过,这个函数是可以被替代的。

但是有一个更简单的TOTAL系列函数,可以代替 Calculate+DATESYTD这样的组合

三、值函数 TOTALYTD、TOTALMTD、TOTALQTD函数

【1】语法:年初至今=TOTALYTD(表达式或度量值,日期, 筛选器,上一年结束日期)

TOTAL年初至今 = TOTALYTD([总销售],'日期表'[Date],'日期表'[年]=2021)

【2】语法:月初至今=TOTALMTD(表达式或度量值,日期, 筛选器)

【3】语法:季初至今=TOTALQTD(表达式或度量值,日期, 筛选器)

四、回答网友的问题

问:使用MTD和QTD时,在矩阵上行标题一定要用比更细的粒度显示吗?年>季度>月

答:老版本的PowerBI是这样,现在的版本已经解决这个问题了

【度量值】TOTAL月初至今1 = TOTALMTD([总销售],'日期表'[Date],'日期表'[年]=2021)【度量值】TOTAL月初至今2 = CALCULATE([总销售],DATESMTD('日期表'[Date]),'日期表'[年]=2021)

如上图所示,查看2021年每个商品月初至今的数据,现在显示的是A和B商品都是2021/12/1至2021/12/31日的累积

由于你并没有指定是哪个月,所以行标题增加月份条件时,会显示所有月份月初至今

还是那句老话,不能死记硬背!你需要什么?就写成什么!

例如:你只需要看AB商品2021年12月的月初至今,那就再加个条件呗

TOTAL月初至今1 = TOTALMTD([总销售],'日期表'[Date],'日期表'[年]=2021 && '日期表'[月]=12)TOTAL月初至今2 = CALCULATE([总销售],DATESMTD('日期表'[Date]),'日期表'[年]=2021,'日期表'[月]=12)

PS: 使用切片器也可以

五、DATES系列和TOTAL系列建议使用哪个?

我没有建议,《The Definitive Guide to DAX》推荐DATESYTD系列,而我本人使用DATES系列多一些,依个人喜好而定。

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注