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

Power BI中使用DAX统计两列不同字段值组合的出现次数

问题背景

我有一份名为"Error"的示例电子表格已连接至Power BI,相关样例数据见下图:
样例数据

需求是统计特定Title(标题)与特定Severity(严重级别)的组合出现次数,基于样例数据的正确统计结果为:

  • Memory Usage/Warning: 4
  • Memory Usage/Critical: 1
  • Event Log: Application/Information: 2
  • Disk Usage(E:)/Warning: 2

当前编写的DAX公式如下:

Memory Usage/Warning = COUNTROWS(FILTER(GROUPBY(Error, Error[Title], Error[Severity]), Error[Title] = "Memory Usage"))

运行后得到的结果为 Memory Usage/Warning: 2,和预期结果不符,需要正确的DAX实现方式。

解决方法

原公式出错的原因很明确:

  • GROUPBY 仅返回分组后的去重组,不带聚合计数逻辑,当前COUNTROWS统计到的2,是Title为Memory Usage对应的不同Severity的分组数量,不是原始数据里的实际行数
  • 过滤条件只匹配了Title字段,没有加Severity的判断,无法定位到具体的组合

单个组合度量值写法

如果需要单独计算每个指定组合的计数,不需要嵌套GROUPBY,直接对原表做双条件过滤计数即可,写法简单性能更高:

Memory Usage/Warning = 
COUNTROWS(
    FILTER(
        Error,
        Error[Title] = "Memory Usage" && Error[Severity] = "Warning"
    )
)

其他组合的度量值直接替换判断条件里的Title、Severity取值即可,比如计算Memory Usage/Critical的计数,就把Severity的匹配值改为"Critical"。

全组合批量统计(推荐)

不需要为每个组合单独写度量值,直接在报表中添加表格/矩阵可视化组件:

  • 将Error[Title]、Error[Severity]字段拖入行区域
  • 添加值字段:选择任意非空列做计数,或者提前写一个基础度量值 记录数 = COUNTROWS(Error) 拖入值区域
    即可自动输出所有Title+Severity组合的统计结果,后续数据更新时结果会自动同步,不需要手动维护度量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:19:19