如何修复基于条件拆分文本列的 Power 查询代码错误
How to fix the Power query code error for splitting a text column based on a criteria
根据每条记录中第一个字符的数据类型拆分列中的文本值。
如果文本的第一个字符是数字,我需要新的(自定义)列 return 在第一个“”分隔符之前的文本,否则 return“0,”。
If Value.Is(Text.Start([ConsumerAddress],1), type number) Then
Text.BeforeDelimiter([ConsumerAddress]," ") else "0,"
如果文本的第一个字符是数字,我需要新的(自定义)列 return 在第一个“”分隔符之前的文本,否则 return“0,”。
我认为 Value.Is
不是您想要的。我会推荐 try
otherwise
结构和 Number.FromText
像这样:
= Table.AddColumn(#"Previous Step", "Custom",
each try Number.FromText(Text.BeforeDelimiter([ConsumerAddress], " "))
otherwise 0
)
如果第一个 space 之前的文本可以转换为数字,那么这就是您得到的。如果它不能 Number.FromText
抛出一个错误,你会从其他规范中得到 0
。
编辑: 如果你只想要第一个字符的标准,试试这个:
= Table.AddColumn(#"Previous Step", "Custom",
each if (try Number.FromText(Text.Start([ConsumerAddress], 1)) otherwise 0) <> 0
then Text.BeforeDelimiter([ConsumerAddress], " ")
else "0"
)
这将从 "12b Maple St"
return "12b"
而第一个版本将 return 0
因为 "12b"
无法转换为一个数字。
根据每条记录中第一个字符的数据类型拆分列中的文本值。
如果文本的第一个字符是数字,我需要新的(自定义)列 return 在第一个“”分隔符之前的文本,否则 return“0,”。
If Value.Is(Text.Start([ConsumerAddress],1), type number) Then
Text.BeforeDelimiter([ConsumerAddress]," ") else "0,"
如果文本的第一个字符是数字,我需要新的(自定义)列 return 在第一个“”分隔符之前的文本,否则 return“0,”。
我认为 Value.Is
不是您想要的。我会推荐 try
otherwise
结构和 Number.FromText
像这样:
= Table.AddColumn(#"Previous Step", "Custom",
each try Number.FromText(Text.BeforeDelimiter([ConsumerAddress], " "))
otherwise 0
)
如果第一个 space 之前的文本可以转换为数字,那么这就是您得到的。如果它不能 Number.FromText
抛出一个错误,你会从其他规范中得到 0
。
编辑: 如果你只想要第一个字符的标准,试试这个:
= Table.AddColumn(#"Previous Step", "Custom",
each if (try Number.FromText(Text.Start([ConsumerAddress], 1)) otherwise 0) <> 0
then Text.BeforeDelimiter([ConsumerAddress], " ")
else "0"
)
这将从 "12b Maple St"
return "12b"
而第一个版本将 return 0
因为 "12b"
无法转换为一个数字。