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

DAX IF语句处理Power BI中列匹配计数的空值过滤问题

正确实现方案

1. DAX 计算列写法(最符合你当前需求)

优先判断两个字段均不为空后再执行相等逻辑,代码如下:

Livraisons blanches = 
IF(
    NOT(ISBLANK([Client Quantity])) && NOT(ISBLANK([Quantity Delivered])),
    IF([Client Quantity] = [Quantity Delivered], 1, 0),
    BLANK()
)

你之前的DAX未生效有两个原因:

  • 语法错误:第一个判断条件后缺少逗号,第二个分支的BLANK漏写括号,正确写法为BLANK()
  • 逻辑顺序错误:你优先判断了两个值相等,而Power BI中BLANK() = BLANK()会返回TRUE,空行也会被误判为符合条件返回1,因此必须把非空判断放在逻辑最前面。

2. Power Query 自定义列写法(M语言,在数据加载阶段处理)

如果你希望在Power Query阶段就完成计算,避免后续DAX处理,可添加自定义列,代码如下:

if [Client Quantity] <> null and [Quantity Delivered] <> null then
    if [Client Quantity] = [Quantity Delivered] then 1 else 0
else
    null

3. 聚合度量值写法(无需新增列,直接统计符合条件的行数)

如果你的最终目的是统计两个值相等的有效行总数,可直接写度量值,将代码中的你的表名替换为实际表名即可:

有效相等行计数 = 
CALCULATE(
    COUNTROWS('你的表名'),
    '你的表名'[Client Quantity] = '你的表名'[Quantity Delivered],
    NOT(ISBLANK('你的表名'[Client Quantity])),
    NOT(ISBLANK('你的表名'[Quantity Delivered]))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:36:03