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

PowerBI度量值创建求助:多列空值条件判断需求

解决Power BI度量值判断空值的问题

首先得指出你原代码的核心问题:FILTER表函数,返回的是一个表对象,但度量值要求返回标量值(比如数字、文本这类单个值),直接用它作为度量值肯定会报错。另外,用= ""只能识别空白文本,没法覆盖真正的空值(比如数据库里的NULL),用ISBLANK()会更准确。

根据你的需求,我给你两种常用的实现方案,你可以根据实际场景选择:

方案1:判断当前筛选范围内是否存在空值(返回1/0)

如果你需要的是「只要当前筛选范围内有任意一行的ColA/ColB/ColC为空,就返回1,否则返回0」,可以用这个写法:

M_DataIssues = 
VAR HasEmptyRows = 
    COUNTROWS(
        FILTER(
            ALL(Table), -- 用ALL(Table)会忽略所有外部筛选,如果你想保留筛选,就换成Table
            ISBLANK(Table[ColA]) || ISBLANK(Table[ColB]) || ISBLANK(Table[ColC])
        )
    )
RETURN
    IF(HasEmptyRows > 0, 1, 0)
  • COUNTROWS()统计符合条件的行数,再通过IF()转换成1/0的标记;
  • 如果不需要忽略外部筛选(比如页面上的切片器筛选要生效),把ALL(Table)改成Table即可。

方案2:行级判断空值(每行返回1/0)

如果你是想在表格可视化里,给每一行标记「是否有空值」(有空值返回1,否则0),可以用这个写法:

M_DataIssues = 
VAR CurrentColA = SELECTEDVALUE(Table[ColA])
VAR CurrentColB = SELECTEDVALUE(Table[ColB])
VAR CurrentColC = SELECTEDVALUE(Table[ColC])
RETURN
    IF(
        ISBLANK(CurrentColA) || ISBLANK(CurrentColB) || ISBLANK(CurrentColC),
        1,
        0
    )
  • SELECTEDVALUE()会获取当前行上下文里的列值,确保每一行都能独立判断;
  • 把这个度量值拖到表格里,就能看到每行的标记结果。

额外提示

如果你想用这个度量值做筛选,只需要把它拖到「筛选器」面板,设置为「等于1」,就能筛选出所有存在空值的行,完全符合你只能用度量值的要求。

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

火山引擎 最新活动