【问题标题】:Split Text containing Date into columns将包含日期的文本拆分为列
【发布时间】:2021-04-09 10:56:17
【问题描述】:

问题: Excel 能够识别日期,例如,如果您编写 2021 年 1 月 1 日,Excel 会将其转换为 2021 年 1 月 1 日。是否可以使用电源查询以某种方式将其用作一种分隔符来从单元格中分割日期?

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

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

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

图片显示了我想要实现的目标

【问题讨论】:

  • 你为什么不按换行符拆分? [x] 底部的特殊字符框并选择该选项
  • @horseyride 在换行符上拆分只会创建一列?我需要一些方法将日期分成独立的列

标签: excel office365 powerquery conditional-formatting


【解决方案1】:

省略任何自定义代码,您可以通过界面相当简单地做到这一点

通过换行分割成行

重复列

将新列上的数据类型转换为日期,然后右键单击列并将错误替换为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"

【讨论】:

  • 啊,我明白了,实际上是通过更改类型来区分日期然后删除错误的非常聪明的方法。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 2020-05-03
  • 2020-06-21
相关资源
最近更新 更多