使用 POWER QUERY 清理日期?

关晶

我有一个没有数据验证的专栏,让人们有更多的输入自由,所以它很乱,我想让它更整洁。

原来的

目标日期
2021 年第二季度
2022 年 1 月
2023 年 12 月
06-2017
2018 年第三季度
2019 年第三季度
*7 一月

有什么方法可以使用 Power Query(或 Excel 中的其他函数,如果需要)将它清理到最好的状态?

目标日期
2021 年 6 月
2022 年 1 月
2023 年 12 月
2017 年 6 月
2018 年 9 月
2019 年 9 月
*2021 年 1 月 7 日

*我知道这很难 xd

里卡多·迪亚兹

查看代码的步骤:

  1. 将数据转换为 Excel 表格
  2. 删除多余的空格
  3. 有条件地提取年份部分,检查其是否为数字
  4. 提取季度部分如果您可以从年份和季度部分构建日期,则执行此操作,否则分析目标日期列并查看它是否返回日期
  5. 删除其他列
  6. 重命名剩余列
  7. 添加格式化日期列

代码:

let
    Origen = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    TrimText = Table.TransformColumns(Origen,{{"Target Date", Text.Trim, type text}}),
    ExtractConditionalYear = Table.AddColumn(TrimText, "Year", each try Number.From(Text.End([Target Date], 4)) otherwise Date.Year(DateTime.LocalNow()), Int64.Type),
    ExtractQuarter = Table.AddColumn(ExtractConditionalYear, "Quarter", each Number.From(Text.Middle(Text.AfterDelimiter([Target Date], "Q"),0,1)), Int64.Type),
    CalcDateFromQuarterOrAnalize = Table.AddColumn(ExtractQuarter, "Date", each try Date.AddDays(Date.AddQuarters(#date([Year], 1, 1), [Quarter]), -1) otherwise Date.From(DateTimeZone.From([Target Date])), type date),
    RemoveOtherCols = Table.SelectColumns(CalcDateFromQuarterOrAnalize,{"Date"}),
    RenameCol = Table.RenameColumns(RemoveOtherCols,{{"Date", "Target Date"}}),
    AddFormatDateCol = Table.AddColumn(RenameCol, "Format Target Date", each Date.ToText([Target Date], "MMM yyyy", "en-US"), type text)
in
    AddFormatDateCol

结果

在此处输入图片说明

让我知道它是否有效

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章