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

Power BI中DAX计算支付成功率结果一致的修复方案咨询

Power BI DAX表达式修复方案

你的DAX表达式结果全部相同,核心问题是没有利用当前行的上下文筛选维度,且GROUPBY的用法错误——当前代码计算的是全局范围内所有成功实例数除以总实例数,而非每行对应timestamp/weekDay/Hour维度下的成功率。

以下是两种针对性修复方案:


方案1:利用现有列直接计算(最简便)

你的表已包含SuccessEvents(成功事件数)和FailedEvents(失败事件数),直接基于这两个列计算即可:

PymntSuccessRate = DIVIDE( [SuccessEvents], [SuccessEvents] + [FailedEvents], 0 )
  • 第三个参数0用于处理除数为0的场景,避免报错。

方案2:基于eventType和addPymntCardInstance计算(适配业务需求)

如果必须用addPymntCardInstance的总和来计算成功率,需通过变量锁定当前行的维度值,再筛选对应范围的数据:

PymntSuccessRate = 
VAR CurrentTimestamp = [timestamp]
VAR CurrentWeekDay = [weekDay]
VAR CurrentHour = [Hour]
VAR SuccessTotal = 
    CALCULATE(
        SUM( Payment_Methods[addPymntCardInstance] ),
        Payment_Methods[eventType] = "Success",
        Payment_Methods[timestamp] = CurrentTimestamp,
        Payment_Methods[weekDay] = CurrentWeekDay,
        Payment_Methods[Hour] = CurrentHour
    )
VAR Total = 
    CALCULATE(
        SUM( Payment_Methods[addPymntCardInstance] ),
        Payment_Methods[timestamp] = CurrentTimestamp,
        Payment_Methods[weekDay] = CurrentWeekDay,
        Payment_Methods[Hour] = CurrentHour
    )
RETURN
    DIVIDE( SuccessTotal, Total, 0 )
  • 通过变量锁定当前行的维度参数,确保CALCULATE只统计对应维度下的实例数,每行结果独立。

原表达式错误细节

原代码中的GROUPBY是对全表按维度分组,SUMX内的SUM无上下文限制,最终计算的是所有分组的总和比值(全局成功率),因此所有行结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:50:27