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

Power BI DAX实现B列含错误时统计关联A列所有事件行数

DAX度量值实现:统计存在错误记录的事件组总条数

基础信息

  • 数据表结构:
    • A列:存储用户应用端操作事件值
    • B列:标记操作结果,取值为success(成功)或error(错误)
    • C列:统计用唯一ID
  • 已创建基础度量值:c-events = COUNTROWS(Query1),用于统计C列对应总行数
  • 需求:同一A列事件分组下,只要B列存在至少1条error记录,就统计该分组下所有事件行的总数量
  • 现有错误写法及问题:
Error Events = CALCULATE([C-events], FILTER(Query1, Query1[B]="error"))

该写法仅筛选B列值为error的行做统计,返回结果为错误值2,不符合预期值6。

正确DAX写法

通用兼容写法(所有支持DAX的环境均可使用)

Error Events =
CALCULATE (
    [c-events],
    FILTER (
        VALUES ( Query1[A] ),
        CALCULATE ( COUNTROWS ( Query1 ), Query1[B] = "error" ) > 0
    )
)

逻辑说明:

  1. 先通过VALUES(Query1[A])取出所有不重复的操作事件值
  2. 逐事件判断:筛选出「下属记录中至少存在1条error」的事件值集合
  3. 以该事件集合为筛选条件,统计符合条件的事件下所有行的总条数,即为预期结果。

高性能简洁写法(适用于新版本Power BI、SSAS 2022及以上环境)

Error Events =
CALCULATE (
    [c-events],
    CALCULATETABLE ( VALUES ( Query1[A] ), Query1[B] = "error" )
)

该写法逻辑与通用写法完全一致,通过CALCULATETABLE直接取出所有关联error记录的事件值做筛选,执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:42:17