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)

发布了107 篇原创文章 · 获赞 49 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/taller_2000/article/details/103248219