我想使用这个公式计算用户评分:
«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( [成长奖金]))
我假设今天的日期是 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]
)