天天看點

如何在Power Query中提取資料?——時間篇(1)

如何在Power Query中提取資料?——時間篇(1)

今天我們來了解下,在Power Query中如何提取需要的時間。

如何在Power Query中提取資料?——時間篇(1)

日期作為業務次元裡面一個很重要的因素,大部分的業務分析都離不開時間這個條件,是以對于時間的提取的準确性就顯得尤為重要。

在轉換擷取中,我們也可以通過快速方式及菜單方式進行轉換格式擷取。

如何在Power Query中提取資料?——時間篇(1)
如何在Power Query中提取資料?——時間篇(1)

1. 提取日期

一般情況下,分析業務很大一部分都是用天為最小計量機關,但是一般導入到PQ裡面的日期資料格式,都是日期時間格式DateTime,後面會帶有0:00:00的時間字尾。但是我們隻需要年月日的時間,那我們可以通過函數進行提取,也可以通過菜單進行快速轉換。

DateTime.Date(datetime as any) as nullable date

因為參數中是any,是以參數内的格式可以是日期,日期時間,時間區域等格式。

DateTime.Date(#date(2018,11,11))=2018/11/11

DateTime.Date(#datetimezone(2018, 11, 11, 0, 0, 0, 8, 0))=2018/11/11

DateTime.Date(#datetime(2018,11,11,1,1,0))=2018/11/11

2. 提取年份

Date.Year(datetime as any) as nullable number

Date.Year(#datetime(2018,11,11,1,1,0))=2018

注意:雖然參數格式是any,但是也需要包含有年份資料的格式。如果是純時間格式則會發生錯誤。

Date.StartOfYear(datetime as any) as any 提取起始年份

Date.StartOfYear(#datetime(2018,11,11,1,1,0))=2018/1/1 0:00:00

Date.StartOfYear(#date(2018,11,11))=2018/1/1

生成的格式是轉換資料的格式。

Date.EndOfYear(datetime as any) as any 提取結束年份

Date.EndOfYear(#datetime(2018,11,11,1,1,0))=2018-12-31T23:59:59.9999999

3. 提取季度

Date.QuarterOfYear(datetime as any) as nullable number

提取季度數,生成的是數值1-4

Date.StartOfQuarter(datetime as any) as any

提取起始季度,傳回的格式是提取資料的格式

Date.StartOfQuarter(#date(2018,11,1))=2018/10/1

Date.StartOfQuarter(#datetime(2018,5,1,09,10,1))=2018/4/1 0:00:00

Date.EndOfQuarter(datetime as any) as any

提取結束季度,傳回的格式是提取資料的格式

Date.EndOfQuarter(#date(2018,11,1))=2018/12/31

Date.EndOfQuarter(#datetime(2018,11,1,12,10,10))=2018-12-31T23:59:59.9999999

4. 提取月份

Date.Month(date as any) as nullabel number

傳回的是月份數字格式

Date.Month(#date(2018,11,11))=11

Date.MonthName(date as any, optional culture as nullable text) as nullable text

傳回的是月份名稱文本格式,第2參數可以選擇中文或英文

Date.MonthName(#date(2018,11,11),"cn")=十一月

Date.MonthName(#date(2018,11,11),"en")=November

Date.StartOfMonth(datetime as any) as any

提取初始月份,傳回的格式是提取資料的格式

Date.StartOfMonth(#date(2018,11,11))=2018/11/1

Date.StartOfMonth(#datetime(2018,11,11,10,1,20))=2018/11/1 0:00:00

Date.EndOfMonth(datetime as any) as any

提取期末月份,傳回的格式是提取資料的格式

Date.EndOfMonth(#date(2018,11,11))=2018/12/31

Date.EndOfMonth(#datetime(2018,11,11,10,1,20))=2018-11-30T23:59:59.9999999

5. 提取日

Date.Day(datetime as any) as nullable number

傳回的是日的數字格式

Date.Day(#date(2018,11,11))=11

Date.StartOfDay(datetime as any) as any

傳回初始日,傳回的格式是提取資料的格式

Date.StartOfDay(#date(2018,11,11))=2018/11/1

Date.EndOfDay(datetiem as any) as any

傳回結束日,傳回的格式是提取資料的格式

Date.EndOfDay(#datetime(2018,11,11,23,00,00))=2018-11-11T23:59:59.9999999

Date.DaysInMonth(datetime as any) as nullable number

傳回月的實際天數,傳回格式是數值28-31

Date.DaysInMonth(#date(2016,2,10))=29

Date.DaysInMonth(#date(2018,2,10))=28

Date.DayOfYear(datetime as any) as nullable number

傳回為當年的多少天,傳回格式是數值1-366

Date.DaysOfYear(#date(2016,12,31))=366

Date.DaysOfYear(#date(2018,12,31))=365

Date.DaysOfYear(#date(2018,11,11))=315