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

Power BI中如何使用DAX计算全体学生的平均交易胜率?

示例数据截图

DAX 计算学生平均胜率实现方法

以下度量值完全匹配你给出的计算逻辑,最终返回结果为你需要的61.1%:

  1. 首先创建单学生胜率的基础度量值,假设你的交易表名为TradeData,包含学生ID字段StudentID、盈利字段profit:
Single Student Win Rate = 
VAR TotalTradeCount = COUNTROWS('TradeData')
VAR WinTradeCount = COUNTROWS(FILTER('TradeData', 'TradeData'[profit] > 0))
RETURN
// 无交易记录时返回空值,避免除零错误
IF(TotalTradeCount = 0, BLANK(), DIVIDE(WinTradeCount, TotalTradeCount))

针对你的样例数据,这个度量值分别计算三个学生的胜率结果为:

  • 学生123:2笔盈利/4笔总交易 = 50%
  • 学生234:1笔盈利/3笔总交易 ≈33.3%
  • 学生456:2笔盈利/2笔总交易 = 100%
  1. 再创建最终用于展示的平均胜率度量值:
Average Student Win Rate = 
AVERAGEX(
    -- 迭代所有有交易记录的不重复学生ID
    VALUES('TradeData'[StudentID]),
    -- 逐人计算胜率后取平均
    [Single Student Win Rate]
)

这个度量值针对样例数据的计算逻辑就是(50% + 33.3% + 100%)/3 ≈61.1%,和你的预期完全一致。

使用注意事项

  • 不要直接用「全表盈利交易总数/全表交易总数」计算,这是所有交易汇总的整体胜率,和你需要的按学生维度先算胜率再取平均的逻辑不同,样例数据下这个错误算法结果为5/9≈55.6%,不符合需求
  • 度量值可以直接拖入环形图的值字段使用,在度量值格式设置里选择百分比格式、保留1位小数即可达到你要的展示效果
  • 逻辑自动兼容profit=0的保本交易场景(按你的定义既不算盈利也不算亏损),也会自动跳过没有任何交易记录的学生,不会出现计算错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:42:28