本帖最后由 Alpha 于 2023-3-18 09:00 编辑
在Power Query中,拼接操作通常使用“&”符号完成。如果要拼接两列,并且其中一列为空,拼接的结果也将为空。这是因为在Power Query中,将空值与其他值拼接的结果仍然是空值。这意味着,如果想要在拼接时避免结果为空,则需要确保要拼接的两个列都不为空。
可以使用Power Query中的“if”语句来检查某个列是否为空,然后根据需要选择是否执行拼接操作。 例如,以下公式将检查两个列是否都不为空,如果两个列都不为空,则拼接这两个列: - = if Text.Length([Column1]) > 0 and Text.Length([Column2]) > 0 then [Column1] & [Column2] else null
复制代码
在这个公式中,如果列“Column1”和“Column2”都不为空,则使用“&”运算符将它们拼接在一起。否则,返回空值(null)。
请注意,在使用“&”运算符进行拼接时,拼接的列必须具有相同的数据类型。如果两个列的数据类型不同,可能需要使用“Text.From”函数将其转换为文本类型。 例如,以下公式将把一个日期列和一个文本列拼接在一起: - = if Text.Length([DateColumn]) > 0 and Text.Length([TextColumn]) > 0 then Text.From([DateColumn]) & [TextColumn] else null
复制代码在这个公式中,“Text.From”函数将日期列转换为文本类型,以便可以与文本列拼接在一起。
如果要在拼接时忽略空值,您可以使用Power Query中的“Text.Combine”函数。该函数可以将文本列中的所有非空值拼接在一起,并使用指定的分隔符将它们分隔开来。 以下是一个示例公式: - = Text.Combine(List.RemoveNulls({[Column1], [Column2]}), ", ")
复制代码
在这个公式中,“List.RemoveNulls”函数会从包含列“Column1”和“Column2”的列表中删除空值。然后,“Text.Combine”函数将非空值拼接在一起,并使用逗号和空格作为分隔符。
如果要在拼接时忽略空格和其他空白字符,可以使用“Text.Trim”函数。 例如,以下公式将拼接两列,并删除结果中的所有空白字符:
- = Text.Trim([Column1] & [Column2])
复制代码
在这个公式中,“Text.Trim”函数会从拼接的结果中删除前导和尾随空格以及其他空白字符。
注意:Power Query中的函数和公式可能因版本和环境而异,如遇特殊情况可回帖共同讨论
|