上節已經講過PowerBI里日期時間函數的所有基礎函數了,本節主要講幾個進階函數。
1、CALENDAR 返回一個從起始日期開始,到截止日期為止的所有日期的單列表
語法:CALENDAR (起始日期,結束日期)
案例:通過Calendar返回一個從2021-6-20到2021-6-25的一個日期表
日期表=CALENDAR(date(2021,6.20),date(2021,6.24))
注意:Calendar 返回的是一個日期表,第一參數必須小於第二參數,否則會報錯。返回的表也可以用做日期篩選器用。
2、CALENDARAUTO 返回一個單列的日期表,日期范圍基於模型中的最小日期和最大日期
語法:CALENDARAUTO(N)N=1 to 12
注意:返回的是一個周期年日期表。該日期表的起始日期是根據輸入的參數來定。例如:現在是2021年,當N=3時,則返回2021/4/1 到2022/3/31。
當沒有參數時則返回2021/1/1到2021/12/31。
3、DATEDIFF 返回兩個日期之間指定的間隔數
語法:DATEDIFF(日期1,日期2,day/month/quarter/year/hour/minute/second)
案例:計算2021/6/20 到2021/6/25之間有多少天,結果返回5
相隔天數 = DATEDIFF(date(2021,6,20),date(2021,6,25),DAY)
說明:當第一參數大於第二參數時,返回結果會呈負數。第三參數可以設為年、季、月、日、時、分、秒
4、YEARFRAC 以年為單位統計起始日期和截止日期之間間隔的天數的占比,精確到小數點后兩位
語法:YEARFRAC(起始日期,結束日期,0/1/2/3/4)
案例:計算2021年6月份的天數占比,結果會返回8.2%
21年6月天數占比 = YEARFRAC(date(2021,6,1),date(2021,6,31),3)
第3參數使用說明
注意:第一參數必須小於第二參數,否則返回結果無效或者錯誤。
5、DATEBETWEEN 返回一個表,其中包含兩個給定日期之間的所有日期
語法:DATEBETWEEN(‘表’[日期列],起始日期,結束日期)
案例:現在有個2021/6/5日到2021/6/30日的銷售表,通過datesbetween返回一個日期表
日期表 = DATESBETWEEN('銷售表'[日期],date(2021,6,1),date(2021,6,31))
注意:1、如果起始日期為空,則使用‘銷售表’[日期]中的最早值;
2、如果結束日期為空,則使用‘銷售表’[日期]中的最晚值;
3、如果起始日期-結束日期 包含了‘銷售表’[日期]的所有日期,則返回‘銷售表’[日期]的最小日期和最大日期;
4、如果起始日期-結束日期 被包含在‘銷售表’[日期]之內,則返回起始日期-結束日期形成的日期表。