You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Power BI度量值中DAX 'AND'运算符错误排查求助

修复DAX中的AND运算符错误及度量值优化

嘿,我看到你这个DAX度量值里的AND运算符报错了,这是个很常见的语法小问题,我帮你捋清楚怎么修复,顺便给点优化建议:

首先,直接修复AND语法错误

你写的'Sales By Customers'[Total Sales in MSU] >= y AND <=x不符合DAX的语法规则——DAX里的AND函数(或者&&运算符)要求两边都是完整的布尔表达式,不能省略左边的列引用。你需要重复写一遍列名,把条件补全。

其次,优化变量的取值逻辑

你当前用SUM('Brand Tiers'[TierB])SUM('Brand Tiers'[TierA])来获取层级阈值,假设你的Brand Tiers表是用来定义单一层级区间的(比如一行数据就是TierA和TierB的阈值),那用SELECTEDVALUE会比SUM更准确,因为SUM会把表中所有行的Tier值加总,可能不是你想要的结果。

修正后的完整度量值

MTierB = 
VAR y = SELECTEDVALUE('Brand Tiers'[TierB])  // 替换SUM为SELECTEDVALUE,适配单一行阈值场景
VAR x = SELECTEDVALUE('Brand Tiers'[TierA])
RETURN
CALCULATE(
    DISTINCTCOUNT('Sales By Customers'[CUSTOMER_StoreCode]),
    KEEPFILTERS(
        FILTER(
            'Sales By Customers',
            'Sales By Customers'[Total Sales in MSU] >= y && 'Sales By Customers'[Total Sales in MSU] <= x  // 修复AND语法,用&&更简洁
        )
    )
)

额外说明

  • 如果你确实需要对Brand Tiers表中的Tier值求和(比如多行列的阈值总和),那可以把SELECTEDVALUE改回SUM,但一定要确保这符合你的业务逻辑。
  • DAX中&&AND()函数功能一致,&&是更常用的简写方式,你也可以写成AND('Sales By Customers'[Total Sales in MSU] >= y, 'Sales By Customers'[Total Sales in MSU] <= x),效果完全相同。

内容的提问来源于stack exchange,提问作者Kevin G

火山引擎 最新活动