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)
现在我对每一列都执行以下步骤:
- 使用上述功能添加自定义列
- 删除旧列
- 重命名新列
有没有什么办法可以同时对所有选定的列进行更协调的操作?
示例数据:
您可以在 Power Query 中创建函数。
- 新源 -> 空白查询
比例如为了测试你可以使用这个例子。在这个新的空白查询中用高级编辑器写入:
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前后:
我在 Power Query 中有一个 table,它有多个采用特定儒略日期格式的日期列。 我想使用这个函数将所有这些立即更改为经典日期格式:
Date.AddDays(#date(Number.RoundDown([Date1]/1000)+1900,1,1),Number.Mod([Date1],1000)-1)
现在我对每一列都执行以下步骤:
- 使用上述功能添加自定义列
- 删除旧列
- 重命名新列
有没有什么办法可以同时对所有选定的列进行更协调的操作?
示例数据:
您可以在 Power Query 中创建函数。
- 新源 -> 空白查询
比例如为了测试你可以使用这个例子。在这个新的空白查询中用高级编辑器写入:
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前后: