RANKX 不包括 3 个月内注册的用户

问题描述 投票:0回答:1

我想使用这个公式计算用户评分:

«users rating» = «sales rank» * 0.75 + «bonus rank» * 0.25

“销售排名”和“奖金排名”——销售增长百分比(上个月到前一个月(2 个月前)

现在是八月,所以我们需要计算六月/七月的增长率。

如果用户注册时间超过 3 个月(不包括当月),则该用户将包含在此计算中。

我们的模型包含以下表格:

Users
user_id
name 
registration_date

和:

Sales
month_code – year and month in YYYYMM format
user_id 
sale  
bonus 

需要制作一个这样的表格:

User    Sales   Bonus   Average rating
Name    1000000 2000000 1,3

我尝试了以下方法:

排名奖金 = RANKX(ALLSELECTED(Dim_manager), CALCULATE( [成长奖金]))

powerbi dax rank
1个回答
0
投票

我假设今天的日期是 2023-08-01。因此,超过 3 个月前注册意味着任何人在 2023 年 5 月 1 日之前注册:

EligibleUsers = 
FILTER(
    Users,
    Users[registration_date] < DATE(2023, 5, 1)
)

您需要计算每个用户的销售增长和奖金增长:

SalesGrowth = 
VAR JuneSales = CALCULATE(SUM(Sales[sale]), Sales[month_code] = 202306)
VAR JulySales = CALCULATE(SUM(Sales[sale]), Sales[month_code] = 202307)
RETURN
DIVIDE(JulySales - JuneSales, JuneSales)

BonusGrowth = 
VAR JuneBonus = CALCULATE(SUM(Sales[bonus]), Sales[month_code] = 202306)
VAR JulyBonus = CALCULATE(SUM(Sales[bonus]), Sales[month_code] = 202307)
RETURN
DIVIDE(JulyBonus - JuneBonus, JuneBonus)

然后使用RANKX功能可以对用户进行排名:

SalesRank = 
RANKX(ALLSELECTED(EligibleUsers), [SalesGrowth])

BonusRank = 
RANKX(ALLSELECTED(EligibleUsers), [BonusGrowth])

然后:

UserRating = 
[SalesRank] * 0.75 + [BonusRank] * 0.25

您的决赛桌:

MyTable = 
ADDCOLUMNS(
    EligibleUsers,
    "Sales", CALCULATE(SUM(Sales[sale]), Sales[month_code] = 202307),
    "Bonus", CALCULATE(SUM(Sales[bonus]), Sales[month_code] = 202307),
    "Average Rating", [UserRating]
)
© www.soinside.com 2019 - 2024. All rights reserved.