将包含日期的文本拆分为列

Split Text containing Date into columns

问题: Excel 具有识别日期的能力,例如,如果你写 01-Jan-2021 excel 会将其转换为 01/01 /2021.是否可以使用 power query 以某种方式将其用作一种分隔符以从单元格中拆分日期?

到目前为止: 目前我使用冒号作为分隔符,效果很好,但当然,如果不小心错过了,那么日期将与其余数据保持不分割.

如果没有这个,是否可以从单元格中包含的其他数据自动拆分日期和时间等?

替代解决方案?不确定这是否可行,但替代方案是否可以应用一些条件格式,以便所有日期后跟一个冒号?问题是可疑的,因为单元格包含其他文本,所以它不会被识别为日期。这也可能是一个普遍的问题,但如果有必要使用电源查询,我可以根据需要拆分数据

图像显示了我正在努力实现的目标

省略任何自定义代码,您可以非常简单地从界面执行此操作

按换行拆分成行

列重复

将新列的数据类型转换为最新,然后右键单击该列并将错误替换为 null

复制第二列并右键单击它并向下填充;你现在有 3 列

过滤第二列=null,如果需要,原始列<>空白

删除第二列

这是一个 2 分钟的操作,但生成的代码是:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Column1", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Column1"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1", type text}}),
#"Duplicated Column" = Table.DuplicateColumn(#"Changed Type1", "Column1", "Column1 - Copy"),
#"Changed Type2" = Table.TransformColumnTypes(#"Duplicated Column",{{"Column1 - Copy", type date}}),
#"Replaced Errors" = Table.ReplaceErrorValues(#"Changed Type2", {{"Column1 - Copy", null}}),
#"Duplicated Column1" = Table.DuplicateColumn(#"Replaced Errors", "Column1 - Copy", "Column1 - Copy - Copy"),
#"Filled Down" = Table.FillDown(#"Duplicated Column1",{"Column1 - Copy - Copy"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([#"Column1 - Copy"] = null) and ([Column1] <> "")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Column1 - Copy"})
in #"Removed Columns"