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

DAX编写COUNTIFS等效公式报错:文本与布尔值无法比较

DAX公式错误分析与修正

报错原因

报错「DAX comparison operations do not support comparing values of type Text with values of type True/False」的直接原因是这行代码:

MachineData[Type] <> CONTAINSSTRING(MachineData[Type], "rinse")

CONTAINSSTRING函数返回的是布尔值(TRUE/FALSE),而MachineData[Type]是文本类型,用<>(不等于)运算符直接把文本和布尔值做比较,触发了类型不匹配的错误。

另外,DATESBETWEEN的用法也不正确:这个函数的作用是返回符合范围的日期表,不能直接作为FILTER的筛选条件,需要改成直接对日期字段做范围比较。

修正后的DAX公式

针对你的需求,修正后的公式如下:

Completed 1 Month = 
COUNTROWS(
    FILTER(
        MachineData,
        MachineData[Successful Run?] = "Y" &&
        NOT CONTAINSSTRING(MachineData[Type], "rinse") &&
        MachineData[StartTime] >= SELECTEDVALUE('DateTable'[Date]) - 30 &&
        MachineData[StartTime] <= SELECTEDVALUE('DateTable'[Date])
    )
)

关键修正点:

  • 把MachineData[Type] <> CONTAINSSTRING(...)改成NOT CONTAINSSTRING(MachineData[Type], "rinse"),直接用布尔值取反来判断Type不包含"rinse"。
  • 替换DATESBETWEEN为直接的日期范围比较,用SELECTEDVALUE('DateTable'[Date])获取切片器所选的日期(前提是你有独立的日期表关联到MachineData,这是Power BI的最佳实践;如果没有独立日期表,也可以用MAX(MachineData[StartTime]),但切片器筛选可能不够精准)。

关于「Analysis Complete?」列空值的影响

当前公式里没有用到「Analysis Complete?」字段,所以该列的空值不会导致这次报错,可以排除这个因素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:22:22