编写强大的查询或DAX脚本进行比较,不区分大小写(2)文本字符串值,同时忽略文本字符串中的某些值



所以我的任务是比较Power BI中的(2(列,它们都是文本类型的数据源

One Column            Second Column
ApPle_red 6pk         Apple
apple_green each      Apple
Apple_yellow_organic  Apple

有没有办法忽略"_red"、"_green"、"_yellow">

我目前使用的不区分大小写的方法是:

IF(One Column = Second Column, "true", "false")

以下是使用您的示例的简单解决方案。

Column = 
VAR aux = UPPER ( LEFT ( 'Table'[One Column]; 5 ) )
RETURN IF ( aux = UPPER ( 'Table'[Second Column] ), "True", "False" )

下面是一个更复杂和通用的解决方案,它将第一列"_"之前的文本与第二列的文本进行比较。

Column = 
VAR position = SEARCH("_",'Table'[One Column], 1, BLANK()) - 1
VAR aux = UPPER(LEFT('Table'[One Column], position))
Return IF( aux = UPPER('Table'[Second Column]), "True", "False" )

希望它能帮助你

在查询编辑器中,您可以检查第一列是否以第二列中的字符串开头(在将两者转换为相同大小写后(:

Text.StartsWith(Text.Lower([One Column]), Text.Lower([Second Column]))

DAX中的相同逻辑如下:

LEFT('Table'[One Column], LEN('Table'[Second Column])) = 'Table'[Second Column]

最新更新