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

Power BI DAX问题:新客户计算度量值异常修复求助

修复Power BI新客户计算的DAX度量值

核心问题分析

原度量值存在两个关键问题:

  • Opp_sum 错误使用ALL('Calendar for New Logo')移除了所有日历筛选,导致无法正确计算当前客户+当前日期的业务机会金额
  • Running Total 未按客户维度筛选,计算的是全局历史金额而非单个客户的历史数据,同时NewLogo未基于客户维度做判断,无法正确汇总

前提准备

确保模型关系正确:Calendar for New Logo的[Date]与Opportunity for new logo的业务机会日期字段(如[Opportunity Date])建立单向一对多关系,机会表为多端。

修复后的DAX度量值

1. 修复Opp_sum(当前客户当前日期的业务金额)

Opp_sum = 
CALCULATE(
    SUM('Opportunity for new logo'[Amount_USD for Closed and Commit]),
    -- 匹配当前日历表日期与机会表的业务日期
    'Opportunity for new logo'[Opportunity Date] = MAX('Calendar for New Logo'[Date])
)

说明:保留客户上下文,仅计算当前客户在日历表所选日期的有效业务金额,避免全局汇总错误。

2. 修复Running Total(客户过去3年的历史业务金额)

Running Total - Previous 3 Years = 
VAR CurrentDate = MAX('Calendar for New Logo'[Date])
-- 计算当前日期往前推3年的起始日期
VAR Previous3YearStart = EDATE(CurrentDate, -36)
-- 截止到当前日期的前一天(排除当前日期的业务)
VAR PreviousDay = CurrentDate - 1
RETURN
CALCULATE(
    SUM('Opportunity for new logo'[Amount_USD for Closed and Commit]),
    'Opportunity for new logo'[Opportunity Date] >= Previous3YearStart,
    'Opportunity for new logo'[Opportunity Date] <= PreviousDay,
    -- 移除日历表的日期筛选,保留客户维度的筛选
    REMOVEFILTERS('Calendar for New Logo')
)

说明:通过REMOVEFILTERS确保计算的是单个客户在过去3年到前一天的所有历史金额,而非全局数据。

3. 修复NewLogo(判断单个客户是否为新客户)

NewLogo = 
VAR CurrentAmount = [Opp_sum]
VAR HistoricalAmount = [Running Total - Previous 3 Years]
RETURN
IF(
    -- 当前有有效业务,且过去3年无有效业务
    CurrentAmount > 0 && HistoricalAmount = 0,
    1,
    0
)

4. 新增Total New Logos(汇总新客户总数)

Total New Logos = 
COUNTX(
    -- 按客户维度迭代,避免重复统计同一客户
    VALUES('Opportunity for new logo'[Customer ID]),
    IF([NewLogo] = 1, 1)
)

说明:通过COUNTX按客户ID迭代统计,确保每个符合条件的客户仅被计数一次,解决直接汇总NewLogo的上下文问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:15:33