You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:32:36