PowerBI如何创建计算列自动统计特定值在全数据集的出现次数
Power BI 计算列统计日期全表出现次数实现方法
你之前编写的DAX存在两个核心问题,无法匹配需求:
- 逻辑绑定了部门、呼叫状态的额外筛选,和你要统计全表日期出现次数的目标不匹配
- 用了仅适合度量值场景的
SELECTEDVALUE函数,计算列逐行计算时无法通过该函数正确获取当前行的匹配值,且ALL函数的清除范围设置错误,也不需要手动枚举任何日期值。
基础场景(无额外筛选)
如果仅需要统计当前行日期在整个表中的总出现次数,直接新建计算列,输入以下DAX代码即可:
DateOccurrenceCount = CALCULATE( COUNTROWS('YourTable'), ALL('YourTable'), 'YourTable'[Date] = EARLIER('YourTable'[Date]) )
代码逻辑说明:
ALL('YourTable')用来清除计算列默认自带的行上下文筛选,把计数范围扩大到整个表EARLIER('YourTable'[Date]')会自动获取当前行的日期值,匹配全表中相同日期的行计数,不管数据集里有多少种不同日期,都不需要手动枚举取值。
带附加筛选的扩展场景
如果你需要保留之前代码里的筛选逻辑(比如统计同部门、呼叫状态为Scheduled的同日期记录数),不需要枚举值,直接把代码调整为以下写法即可:
CountOfScheduled = CALCULATE( COUNTROWS('YourTable'), ALL('YourTable'), 'YourTable'[Date] = EARLIER('YourTable'[Date]), 'YourTable'[Call Status] = "Scheduled", 'YourTable'[Department] = EARLIER('YourTable'[Department]) )
上述基础场景代码运行后,即可得到你预期的效果:
| Date | Count |
|---|---|
| June 29, 2022 | 2 |
| July 8, 2006 | 1 |
| June 29, 2022 | 2 |
| December 15, 2019 | 1 |
内容的提问来源于stack exchange,提问作者Joe G.
相关产品推荐
相关产品推荐

