我正在使用 Salesforce 的数据进行收入预测,该数据为每个机会 [Id] 提供结束日期和每月收入的单个值(如果可以使代码更易于阅读/理解,也可以使用年度收入) .
感谢您花时间解决这个问题并提供帮助。
机会[ID] | 机会[截止日期] | 机会[每月加权收入] |
---|---|---|
A | 2024-09-20 | 10 |
B | 2024-11-12 | 40 |
C | 2024-10-24 | 20 |
注意:机会[关闭日期]与“日历”[日期]相关
机会[ID] | 24 年 7 月 | 24 年 8 月 | 24 年 9 月 | 24 年第 2 季度 | 10月24日 | 24 年 11 月 | 24 年 12 月 | 24 年第 4 季度 | 24 财年 |
---|---|---|---|---|---|---|---|---|---|
A | 0.00 | 0.00 | 10.00 | 10.00 | 10.00 | 10.00 | 10.00 | 30.00 | 40.00 |
B | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 40.00 | 40.00 | 80.00 | 80.00 |
C | 0.00 | 0.00 | 0.00 | 0.00 | 20.00 | 20.00 | 20.00 | 60.00 | 60.00 |
总计 | 0.00 | 0.00 | 10.00 | 10.00 | 30.00 | 70.00 | 70.00 | 170.00 | 180.00 |
注意:商机 A 的值对 24 年第 4 季度的总数有所贡献,尽管它在 24 年第 3 季度的结束日期不在当前过滤器上下文中。其他过滤器例如机会[状态]仍然需要过滤报告。
机会[ID] | 24 年第 4 季度 | 24 财年 |
---|---|---|
总计 | 170.00 | 170.00 |
我当前的度量在以机会 [Id] 和月份列呈现在表格视觉效果中时重复每月加权收入,但是,当我删除机会 [Id] 时它不起作用,并且它不适用于小计。我已经在调用变量“_Monthly_Weighted_Revenue_Fixed_Repeating”的表上尝试了 SUMX() 的各种迭代,但到目前为止没有一个有效。
MRW extended =
VAR _CurrentMonth =
MAX('Calendar'[Date])
VAR _CloseMonth =
CALCULATE(
EOMONTH( MAX(Opportunity[CloseDate] ), 0 ),
REMOVEFILTERS('Calendar')
)
VAR _Monthly_Weighted_Revenue_Fixed = // stores the value corresponding with the single close date in a way it can be called from any period.
CALCULATE(
[Monthly Revenue Weighted],
REMOVEFILTERS('Calendar')
)
VAR _Monthly_Weighted_Revenue_Fixed_Repeating = // this repeats the above value for all future months.
IF(
_CurrentMonth >= _CloseMonth,
_Monthly_Weighted_Revenue_Fixed,
BLANK()
)
RETURN _Monthly_Weighted_Revenue_Fixed_Repeating
我有以下代码暂时可以工作。
Monthly Revenue Weighted =
SUMX(
ADDCOLUMNS(
CROSSJOIN( // returns a table with all combinations of opportunity[Id] and Date (as EOM)
CALCULATETABLE( TREATAS ( DISTINCT( Opportunity[Id]), Opportunity[Id] ), REMOVEFILTERS('Calendar') ),
TREATAS(DISTINCT('Calendar'[Date as EOM]),'Calendar'[Date])
),
"closeDate", CALCULATE( EOMONTH(MAX(Opportunity[CloseDate]),0), REMOVEFILTERS('Calendar') ),
"MRW" ,
IF( // returns monthly weighted revenue beginning on the close date and continuing into future periods.
'Calendar'[Date] >= CALCULATE( EOMONTH(MAX(Opportunity[CloseDate]),0), REMOVEFILTERS('Calendar') ),
CALCULATE(
[Annual Revenue Weighted] / 12,
REMOVEFILTERS('Calendar')
),
BLANK()
)
),
[MRW]
)
2024 年 8 月 21 日星期五更新: 我有以下代码暂时可以工作。
Monthly Revenue Weighted =
SUMX(
ADDCOLUMNS(
CROSSJOIN( // returns a table with all combinations of opportunity[Id] and Date (as EOM)
CALCULATETABLE( TREATAS ( DISTINCT( Opportunity[Id]), Opportunity[Id] ), REMOVEFILTERS('Calendar') ),
TREATAS(DISTINCT('Calendar'[Date as EOM]),'Calendar'[Date])
),
"closeDate", CALCULATE( EOMONTH(MAX(Opportunity[CloseDate]),0), REMOVEFILTERS('Calendar') ),
"MRW" ,
IF( // returns monthly weighted revenue beginning on the close date and continuing into future periods.
'Calendar'[Date] >= CALCULATE( EOMONTH(MAX(Opportunity[CloseDate]),0), REMOVEFILTERS('Calendar') ),
CALCULATE(
[Annual Revenue Weighted] / 12,
REMOVEFILTERS('Calendar')
),
BLANK()
)
),
[MRW]
)