Power BI OR运算符报错:无法转文本为布尔值,求代码修正
错误原因及修正方案
问题根源
你的IF函数条件写法错误:DAX中||(逻辑或)两侧必须是布尔值(True/False),但你直接写"FOULS COMITTED"这类文本值,DAX会尝试把文本转成布尔值,导致类型转换错误。
修正后的代码(两种方式)
方式1:补全每个逻辑或的完整判断
MyRank = VAR ThisGroup = Rankings[Attribute] RETURN IF( Rankings[Attribute] = "GOALS CONCEDED" || Rankings[Attribute] = "FOULS COMITTED" || Rankings[Attribute] = "OWN HALF BALL LOSS" || Rankings[Attribute] = "YELLOW CARDS" || Rankings[Attribute] = "RED CARDS", RANKX( FILTER(Rankings, Rankings[Attribute] = ThisGroup), Rankings[Value], , ASC, Dense ) )
方式2:用IN函数简化条件(更推荐)
IN函数可以直接判断列值是否在指定列表里,代码更简洁易读:
MyRank = VAR ThisGroup = Rankings[Attribute] RETURN IF( Rankings[Attribute] IN { "GOALS CONCEDED", "FOULS COMITTED", "OWN HALF BALL LOSS", "YELLOW CARDS", "RED CARDS" }, RANKX( FILTER(Rankings, Rankings[Attribute] = ThisGroup), Rankings[Value], , ASC, Dense ) )
额外提示
注意你代码里的"FOULS COMITTED"拼写(少了一个字母M,正确应为FOULS COMMITTED),如果实际数据中是正确拼写,记得同步修正,避免匹配不上。
内容的提问来源于stack exchange,提问作者PowerSports
相关产品推荐
相关产品推荐

