使用 2 个以上的 IF 条件来识别混合列中的不同数据类型 - Power Query
Using more than 2 IF conditions to identify different data types in a mixed column - Power Query
我正在尝试添加一个新列,该列使用多个 If 条件来检查特定列是否包含特定文本、格式化为文本或文本值的数字。
以下 If 条件仅适用于前 2 个条件,但添加第三个检查条件不会为格式化为文本的数值产生所需的 NULL 结果。
===============================
ColumnToCheck | NewColumn
===============================
R0 | Questions
Is this my life? | Is this my life?
0.5445 | null
0.23 | null
0.23335 | null
===============================
公式为:
= Table.AddColumn(PreviousStep, "NewColumn",
each
if
Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0") then
[ColumnToCheck]
else if
Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase) then
"Questions"
else if
Value.Is(Number.FromText([ColumnToCheck]),type number) then
null
else
null)
也许你需要这样的东西
if
try Value.Is(Number.FromText([ColumnToCheck]), type number) otherwise Value.Is([ColumnToCheck],type number)
then
null
else
if
Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0")
then
[ColumnToCheck]
else
if
Value.Is([ColumnToCheck],Text.Type) and Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase)
then
"Questions"
else
null
PQ 中的结果看起来像
我正在尝试添加一个新列,该列使用多个 If 条件来检查特定列是否包含特定文本、格式化为文本或文本值的数字。
以下 If 条件仅适用于前 2 个条件,但添加第三个检查条件不会为格式化为文本的数值产生所需的 NULL 结果。
===============================
ColumnToCheck | NewColumn
===============================
R0 | Questions
Is this my life? | Is this my life?
0.5445 | null
0.23 | null
0.23335 | null
===============================
公式为:
= Table.AddColumn(PreviousStep, "NewColumn",
each
if
Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0") then
[ColumnToCheck]
else if
Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase) then
"Questions"
else if
Value.Is(Number.FromText([ColumnToCheck]),type number) then
null
else
null)
也许你需要这样的东西
if
try Value.Is(Number.FromText([ColumnToCheck]), type number) otherwise Value.Is([ColumnToCheck],type number)
then
null
else
if
Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0")
then
[ColumnToCheck]
else
if
Value.Is([ColumnToCheck],Text.Type) and Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase)
then
"Questions"
else
null
PQ 中的结果看起来像