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

文章导读:《孙兴华讲PowerBI火力全开+可视化+DAX原理》 https://www.ixigua.com/6976409163886756383 《火力全开》笔记19.2 WEEKNUM和WEEKDAY函数 我们只讲了从周日或周一开始的周,讲得比较浅,但是够用了,国内99%以上的……各位看官请向下阅读:

《孙兴华讲PowerBI火力全开+可视化+DAX原理》

https://www.ixigua.com/6976409163886756383

《火力全开》笔记19.2 WEEKNUM和WEEKDAY函数 我们只讲了从周日或周一开始的周,讲得比较浅,但是够用了,国内99%以上的企业都适用,但是一定有特殊企业,今天我们来讲讲各种特殊情况下周的时间智能。

一、WeekNum函数

作用:当前日期在本年中的第几周

语法: WeekNum( 日期, 返回类型) // [<返回类型>]是可选参数

表名:Sheet1

参数2和参数11,我没有发现区别,如果有小伙伴知道请在评论区留言!除参数21之外,根据自己企业规则选择使用即可。

【重点】当参数为21时,2022年第1个星期四出现在2022/1/6,那么2022/1/6那一周从周一到周日被认为是2022年第1周(如下图所示)。这时就出现一个问题。2022/1/1~2022/1/2应该被认定为2021年,从2022/1/3日起被认定为2022年。解决这个问题我们要慢慢讲。

【新建列】年 = year('Sheet1'[日期])

二、利用WEEKDAY函数计算修证年

作用:当前日期在本周中的第几天

语法:WEEKDAY ( 日期, 返回类型 ) // [<返回类型>]是可选参数

同WeekNum函数,当返回类型为2和11时,我没有发现区别,如有知道的小伙伴请评论区留言。大家互通有无。

【新建列】本周第几天 = WEEKDAY('Sheet1'[日期],2)

// 因WeekNum参数21是从周一开始,所以WeekDay我们也从周一开始返回1

我们现在进行小学生的数学分析:WeekNum参数21是从周一开始,当前第一个周四所在的那一周是第1周。

所以:第一个周四最晚会出现在7号。(这是数学常识)

最多就是1月1日至3日需要调整到上一年,分别向前平移1~3天即可实现。

我们画个小学生的数学思维图,公式就出来了。

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

三、计算日期是当年的第几天

【新建列】正常情况下天数 = int('Sheet1'[日期]-date(year('Sheet1'[日期]),1,1))+1

// 当前日期,减去当前年1月1日+1就是天数,例如2021/1/1-2021/1/1+1=1

表名:Sheet1

当WeekNum参数21时,天数就不是这样算了,如下图所示,我手工写出正确天数

Ps:2004年1月1日是个星期四,比较特殊的一年。

我们现在进行分析,利用逻辑思维找循环!

(1)我们以2021年1月4日为例,按照参数21的原则,它应该是2021年第1天,那它前面有3天,让2021/1/4-2021/1/3=1,用这个逻辑将以上日期都写出【应减日期】

应减日期 = 日期 - 天数

(2)我们深入观察,发现了第1个规律,每个应减日期都接近1月1日,那我就取每个日期当年的1月1日(做起始日)

平移天数 = 应减日期 - 起始日

(3)我又发现第2个规律,平移天数与我们的起始日在本周第几天很接近

起始日在本周第几天 = WEEKDAY([起始日],2)

(3)我又发现了第3个规律(如上图所示):当【起始日在本周第几天】大于4时

平移天数 = 一周总天数 - 起始日在本周第几天

当【起始日在本周第几天】小于等于4时,取它自身的负数

【新建列】平移天数 = if('Sheet1'[起始日在本周第几天]>3,7-[起始日在本周第几天],-[起始日在本周第几天])

这句话还有另一种写法:

【新建列】平移天数 = - 'Sheet1'[起始日在本周第几天] + ( ( 'Sheet1'[起始日在本周第几天] >4 ) *7)

问题解决了:应减天数= 起始日+平移天数

将上述过程使用VAR变量,写成一个【新建列】函数:

天数 =VAR x = 'Sheet1'[修证年]VAR y = DATE ( x, 1, 1 )VAR z = WEEKDAY ( y, 2 )VAR a = - z + ( ( z >4 ) *7)VAR b = y + areturnint('Sheet1'[日期]-b)

友情提示:《The Definitive Guide to DAX》书中还提供了几个案例可供参考,前提是你们企业能用到这种周智能方案。

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

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

发表评论

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