Power Query - 一次将多列转换为相同格式

Power Query - Transform multiple columns at once to same format

我在 Power Query 中有一个 table,它有多个采用特定儒略日期格式的日期列。 我想使用这个函数将所有这些立即更改为经典日期格式:

Date.AddDays(#date(Number.RoundDown([Date1]/1000)+1900,1,1),Number.Mod([Date1],1000)-1)

现在我对每一列都执行以下步骤:

  1. 使用上述功能添加自定义列
  2. 删除旧列
  3. 重命名新列

有没有什么办法可以同时对所有选定的列进行更协调的操作?

示例数据:

您可以在 Power Query 中创建函数。

  1. 新源 -> 空白查询

比例如为了测试你可以使用这个例子。在这个新的空白查询中用高级编辑器写入:

let YourFormula = (input) =>
        input * 2
in YourFormula

现在看起来像:

在此字段中您可以测试您的功能。

之后你可以进入你的主table并在代码末尾添加高级编辑器:

Transform = Table.TransformColumns(#"Removed Columns2", {{"PROJECTID", Query1}, {"ACCRUED", Query1}})
in
    Transform

这会就地转换选定的列。无需添加新的、删除旧的和重命名。


根据评论更新,现在有了你的具体数据。

函数公式:

let YourFormula = (input) =>
    Date.AddDays(#date(Number.RoundDown(input/1000)+1900,1,1),Number.Mod(input,1000)-1)
in
    YourFormula

主要代码table:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyNDAwVNIBMQxNjZRidaBiRjAxM4SYMUzMAiFmAhEzMjVQio0FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date1 = _t, Date2 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date1", Int64.Type}, {"Date2", Int64.Type}}),
    Transform = Table.TransformColumns(#"Changed Type", {{"Date1", Query1}, {"Date2", Query1}}),
    #"Changed Type1" = Table.TransformColumnTypes(Transform,{{"Date2", type date}, {"Date1", type date}})
in
    #"Changed Type1"

Table前后: