時間是個神奇的概念,在資料分析中也是一個非常重要的維度,PowerBI裡面時間日期函式和Excel裡面差不多,功能也一樣,所以打算用一篇寫一下,如果對Excel裡面的函式非常熟悉了,大概瀏覽一遍就行了,應該還是有那麼幾個可以加深一下印象,下面就開始了。
【TODAY】
TODAY()
返回當前日期,預設是返回datetime格式,但是時間部分全是0。
今天 = TODAY()
【NOW】
NOW()
以datetime格式返回當前日期和時間,精確到秒。
現在 = NOW()
【DAY】
DAY(<date>)
返回一月中的日期,1到31之間的數字。
月第N天 = DAY([日期])
【WEEKDAY】
WEEKDAY(<date>, <return_type>)
返回指示日期屬於星期幾的數字,1到7之間的數字。這裡需要注意返回型別:
返回型別:1,周從星期日 (1) 開始,到星期六 (7) 結束;返回型別:2,周從星期一 (1) 開始,到星期日 (7) 結束;返回型別:3,周從星期一 (0) 開始到星期日 (6) 結束。星期幾(1) = WEEKDAY([今天],1)星期幾(2) = WEEKDAY([今天],2)星期幾(3) = WEEKDAY([今天],3)
【WEEKNUM】
WEEKNUM(<date>[, <return_type>])
根據return_type值返回給定日期的週數。
有兩個系統用於此函式:
系統1:包含1月1日的周是一年的第一週,編號為第1周;系統2:包含一年第一個星期四的周是一年的第一週,編號為第1周。return_type周開始於系統1 或省略星期日12星期一121星期一2第N周1 = WEEKNUM([日期],1)第N周2 = WEEKNUM([日期],2)第N周21 = WEEKNUM([日期],21)
【MONTH】
MONTH(<datetime>)
以數字形式返回月份值,1到12之間的數字。
第N月 = MONTH([日期])
【QUARTER】
QUARTER(<date>)
將季度返回為從1到4的數值。
第N季度 = QUARTER([日期])
【YEAR】
YEAR(<date>)
返回日期的年份,1900到9999之間的四位整數。
第N年 = YEAR([日期])
【HOUR】
HOUR(<datetime>)
以數字形式返回小時值,0到23之間的數字。
小時數 = HOUR([現在])
【MINUTE】
MINUTE(<datetime>)
給定日期和時間值,以數字形式返回分鐘值,0到59之間的數字。
分鐘數 = MINUTE([現在])
【SECOND】
SECOND(<datetime>)
以數字形式返回時間值的秒數,0到59之間的數字。
秒數 = SECOND([現在])
【DATE】
DATE(<year>, <month>, <day>)
以日期/時間格式返回指定的日期。
DATE日期 = DATE([第N年],[第N月],[月第N天])
【TIME】
TIME(hour, minute, second)
將以數值形式給定的小時、分鐘和秒值轉換為日期/時間格式的時間。
Time小時 = TIME([小時數],[分鐘數],[秒數])
【DATEDIFF】
DATEDIFF(<start_date>, <end_date>, <interval>)
返回兩個日期之間跨越的間隔邊界的計數。
start_date:標量日期/時間值;end_date:標量日期/時間值返回值;interval:比較日期時要使用的間隔。值可以是下列任一值:- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
間隔年數 = DATEDIFF([日期],[現在],YEAR)間隔季度數 = DATEDIFF([日期],[現在],QUARTER)間隔月數 = DATEDIFF([日期],[現在],MONTH)間隔週數 = DATEDIFF([日期],[現在],WEEK)間隔天數 = DATEDIFF([日期],[現在],DAY)間隔小時 = DATEDIFF([日期],[現在],HOUR)間隔分鐘 = DATEDIFF([日期],[現在],MINUTE)
【EDATE】
EDATE(<start_date>, <months>)
返回在開始日期之前或之後指定月份數的日期。
3月後 = EDATE([今天],3)3月前 = EDATE([今天],-3)
如果遇到月份最大天數小於開始日期月份天數,就會返回實際月份的最大值。比如2月最大28天,3月最大31天,如果3月作為開始月份,那麼28-31號這幾天減1個月到2月份都會顯示2.28號↓
特殊2月 = EDATE(DATE(2021,3,30),-1)
【EOMONTH】
EOMONTH(<start_date>, <months>)
以日期/時間格式返回指定月份數之前或之後的月份的最後一天的日期。
有的時候需要通報每月資料完成率,但需要結合實際時間進度來看,看看完成率和時間進度是否一致,就可以透過這個函式進行計算了↓
本月最後一天 = EOMONTH([今天],0)本月剩餘天數 = DATEDIFF([今天],[本月最後一天],DAY)本月時間進度 = DIVIDE(DAY([今天]),DAY([本月最後一天]))
【YEARFRAC】
YEARFRAC(<start_date>, <end_date>, <basis>)
計算兩個日期之間的天數佔全年天數的比值,比如開始日期是2021.3.1號,結束日期是2021.4.3,相差33天,那麼他們的結果就是33/365。有個basis引數需要注意,去不同的值除以的數量不一樣,一般情況選1就行了。
0 - 美國 (NASD) 30/3601 - 實際天數/實際天數2 - 實際天數/3603 - 實際天數/3654 - 歐洲 30/360YearF0 = YEARFRAC([日期],[今天],0)YearF1 = YEARFRAC([日期],[今天],1)YearF2 = YEARFRAC([日期],[今天],2)YearF3 = YEARFRAC([日期],[今天],3)
End