我是Excel中Power Query的新手,我的问题是:
我有一个日期为“ 09-Feb-17 A”的文本列。要删除文本“ A”并在新列(自定义列?)中填充日期信息,我使用了以下代码:
= Table.AddColumn(#"Changed Type", "Start Date", each Replacer.ReplaceText([Start], " A",""))
问题是某些日期的格式正确,即没有“ A”。对于那些日期,我得到一个错误:
Expression.Error:我们无法将值#date(2019,1,11)转换为 键入文本。细节: 价值= 11/01/2019 类型=类型
在功率查询中有什么方法可以解决此问题?
谢谢。
答案 0 :(得分:0)
也许
Text
(日期->日期时间)space
之前的字符串部分Date
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Dates", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.BeforeDelimiter([Dates]," ")),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type date}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Dates"})
in
#"Removed Columns"
答案 1 :(得分:0)
您可以使用try
otherwise
处理两种数据类型:
= Table.AddColumn(#"Changed Type", "Start Date", each try Date.FromText(Replacer.ReplaceText([Start], " A","")) otherwise DateTime.Date([Start]), type date)
或者这样,它将提取第一个空格之前的日期,而不管后面跟随哪个(或多少个)字符:
= Table.AddColumn(#"Changed Type", "Start Date", each try Date.FromText(Text.BeforeDelimiter([Start], " ")) otherwise DateTime.Date([Start]), type date)