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

DAX问题:统计项目中Value>1.0的姓名数量(COUNTROWS层级失效)

解决各项目中Value大于1.0的姓名计数问题

问题背景

给定数据集:

项目A:

  • Name Value
  • Joe 1.5
  • Bob 1.0
  • Sue 0.8
    项目B:
  • Name Value
  • Joe 1.5
  • Bob 1.0
  • Tom 1.8

需求是统计每个项目中Value值大于1.0的姓名数量,预期结果:项目A为1,项目B为2。目前使用COUNTROWS函数时仅在姓名层级有效,无法正确汇总到项目层级。


解决方案(DAX)

方法1:用CALCULATE绑定项目上下文

创建如下度量值,它会自动适配项目层级的筛选上下文:

Count_Values_Over_1 = 
CALCULATE(
    COUNTROWS('你的数据表'),
    '你的数据表'[Value] > 1.0
)

当你在矩阵或表格中以「项目」为行维度时,CALCULATE会自动锁定当前项目的范围,只统计该项目下Value>1.0的记录数,完美匹配需求的结果。

方法2:用SUMX手动迭代项目(适合复杂场景)

如果需要更灵活的逻辑控制,可以用SUMX遍历每个项目,逐个计算符合条件的行数:

Count_Values_Over_1 = 
SUMX(
    VALUES('你的数据表'[项目]),
    CALCULATE(COUNTROWS('你的数据表'), '你的数据表'[Value] > 1.0)
)

VALUES('你的数据表'[项目])生成所有唯一项目的列表,SUMX逐个处理每个项目,计算对应项目下符合条件的行数,最终输出每个项目的统计结果。


为什么直接用COUNTROWS不行?

直接调用COUNTROWS('你的数据表')并筛选Value>1.0时,默认是全局范围的统计,不会自动关联项目的上下文。要么得到所有项目符合条件的总数,要么在项目层级无法正确过滤出当前项目的记录——CALCULATE的核心作用就是修改筛选上下文,让计算限定在当前项目的范围内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 09:01:10