在上一篇博客中,根據日期序列新建了文本日期列,如下圖所示。
接下來將在時間維度表新建整數型的日期列,使用上一篇博客中添加自定義列的方法可以實現這個要求,本文將使用不同的操作方法來實現。
選中“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)