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

使用RANKX计算注册满3个月用户的综合评分需求

用户评分计算DAX实现方案(排除注册不足3个月用户)

需求说明

  • 评分公式:用户评分 = 销售额排名 * 0.75 + 奖金排名 * 0.25
  • 排名依据:6月至7月的销售额/奖金增长率(上月相对前上月的百分比增长,当前统计时间为8月)
  • 用户范围:仅包含**注册满3个月(不含当月)**的用户,即注册日期需早于统计当月(8月)往前推3个月的首日(5月1日)

数据模型

Users表结构

user_id
name 
registration_date

Sales表结构

month_code – 格式为YYYYMM的年月
user_id 
sale  
bonus 

期望输出格式

用户名称销售额奖金平均评分
示例用户100000020000001.3

解决方案(DAX度量值)

1. 定义符合条件的用户集合

先筛选出注册满3个月的用户,用于后续排名计算:

符合条件的用户 = 
FILTER(
    ALL(Users),
    // 动态获取当前月份,计算注册日期距当前超过3个月
    DATEDIFF(Users[registration_date], TODAY(), MONTH) > 3
    // 若需固定统计8月,可替换为:
    // DATEDIFF(Users[registration_date], DATE(2024, 8, 1), MONTH) > 3
)

2. 计算销售额/奖金增长率

销售额增长率

销售额增长率 = 
VAR 7月销售额 = CALCULATE(SUM(Sales[sale]), Sales[month_code] = 202407)
VAR 6月销售额 = CALCULATE(SUM(Sales[sale]), Sales[month_code] = 202406)
RETURN
DIVIDE(7月销售额 - 6月销售额, 6月销售额, 0) // 用DIVIDE避免除零错误

奖金增长率

奖金增长率 = 
VAR 7月奖金 = CALCULATE(SUM(Sales[bonus]), Sales[month_code] = 202407)
VAR 6月奖金 = CALCULATE(SUM(Sales[bonus]), Sales[month_code] = 202406)
RETURN
DIVIDE(7月奖金 - 6月奖金, 6月奖金, 0)

3. 计算排除无效用户后的排名

销售额排名

销售额排名 = 
RANKX(
    [符合条件的用户],
    CALCULATE([销售额增长率]),
    , DESC, DENSE // DESC表示增长率越高排名越靠前,DENSE为密集排名,可按需改为SKIP
)

奖金排名

奖金排名 = 
RANKX(
    [符合条件的用户],
    CALCULATE([奖金增长率]),
    , DESC, DENSE
)

4. 计算最终用户评分

用户评分 = 
VAR 有效销售额排名 = [销售额排名]
VAR 有效奖金排名 = [奖金排名]
RETURN
IF(
    NOT ISBLANK(有效销售额排名) && NOT ISBLANK(有效奖金排名),
    有效销售额排名 * 0.75 + 有效奖金排名 * 0.25,
    BLANK() // 排除无有效数据的用户
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:22:37