BI神器Power Query(14)-- PQ製作時間維度表(3)

上一篇博客中,根據日期序列新建了文本日期列,如下圖所示。

接下來將在時間維度表新建整數型的日期列,使用上一篇博客中添加自定義列的方法可以實現這個要求,本文將使用不同的操作方法來實現。

選中“DataText”列(前三列任何一列都可以),依次單擊【添加列】選項卡=>【重複列】,將複製指定列添加新列,新列的數據類型與指定列相同,這裏是文本類型。

在列標題上右擊,在彈出的快捷菜單中選擇【重命名】命令,修改列名爲“DataInt”。雙擊列標題也可以進入編輯狀態進行修改,和Excel單元格操作相同,如下圖所示。

列標題上右擊,在彈出的快捷菜單中選擇【更改類型】=>【整數】命令,修改數據類型,如下圖所示。

結果如下圖所示,列名左側有“123”標識。

在【高級編輯器】中查看PQ公式如下。

let
    FirstDate = #date(2018,1,1),
    LastDate = #date(2019,12,31), 
    CalDates = {Number.From(FirstDate) .. Number.From(LastDate)},
    轉換爲表 = Table.FromList(CalDates, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    更改的類型 = Table.TransformColumnTypes(轉換爲表,{{"Column1", type date}}),
    插入的日期 = Table.AddColumn(更改的類型, "Date", each DateTime.Date([Column1]), type date),
    已添加自定義 = Table.AddColumn(插入的日期, "DateText", each Date.ToText([Date],"yyyyMMdd"), type text),
    複製的列 = Table.DuplicateColumn(已添加自定義, "DateText", "DateText - 複製"),
    重命名的列 = Table.RenameColumns(複製的列,{{"DateText - 複製", "DateInt"}}),
    更改的類型1 = Table.TransformColumnTypes(重命名的列,{{"DateInt", Int64.Type}})
in
    更改的類型1

其中第9行代碼複製列,第10行代碼修改列名,其實這兩行代碼可以合併爲一行,在DuplicateColumn函數中直接指定新列名稱"DateInt",如下所示。

複製的列 = Table.DuplicateColumn(已添加自定義, "DateText", "DateInt")

第11行代碼修改數據類型,對於整數類型轉換無法整合到DuplicateColumn函數中(路過的高手如果知道如何實現,請留言賜教,謝謝)。
如果使用DuplicateColumn函數中新建一個文本類型的列,可以使用單行代碼實現同時指定列名和數據類型,代碼如下。

Table.DuplicateColumn(已添加自定義, "DateText", "DateDEMO", type text)

新建數據列如下圖所示。


未完待續 … …

相關文章鏈接如下:
PQ製作時間維度表(1)
PQ製作時間維度表(2)
PQ製作時間維度表(3)
PQ製作時間維度表(4)
PQ製作時間維度表(5)
PQ製作時間維度表(6)
PQ製作時間維度表(7)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章