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

PowerBI中使用DAX统计同名行数量的技术求助

PowerBI DAX实现同名行计数及后续累计和计算

一、修正同名行计数的DAX代码

你的核心问题是DAX代码列名不匹配,加上上下文处理不当,导致返回错误结果。以下是正确的实现方式:

假设你的表名为「成本表」,列名为Name和Cost,新增NameCount计算列的正确DAX:

方法1:使用ALLEXCEPT清除无关筛选

NameCount = CALCULATE(COUNTROWS('成本表'), ALLEXCEPT('成本表', '成本表'[Name]))

方法2:使用EARLIER引用当前行上下文

NameCount = COUNTROWS(FILTER('成本表', '成本表'[Name] = EARLIER('成本表'[Name])))

两种写法都能为每一行返回对应Name在表中的总出现次数,得到你期望的结果:

NameCostNameCount
Albert21372
Daniel22341
Albert21372
Mark22341

二、原代码错误原因

  1. 列名不匹配:你的原始表格列是Name,但代码中使用的是Parents[ParentName],导致筛选条件无法正确匹配目标数据;
  2. 上下文处理问题:即使列名正确,MAX(Parents[ParentName])在部分场景下无法稳定获取当前行的Name值,而ALLEXCEPT或EARLIER的写法能更可靠地处理行上下文,确保计数准确。

三、后续Cost累计和计算

1. 新增Cost/NameCount计算列

CostPerName = '成本表'[Cost] / '成本表'[NameCount]

2. 计算累计和

如果需要统计所有行的CostPerName总和,直接使用SUM函数即可:

累计Cost总和 = SUM('成本表'[CostPerName])

由于同名行的Cost值一致,最终累计和等价于所有不同Name的Cost值之和(例如Albert的两行CostPerName相加等于2137,和单个Albert的Cost值相同)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:13:10