我需要开发 DAX 公式来计算新客户的收入。 新客户的计算方式如下:当前(选定)期间的收入大于或等于 0.01,上一期间的收入小于 0.01 或大于 -0.01。 切片器的值包括:本期、上期、11 月 23 日等。但当前收入需要计算 12 个滚动月份,从所选期间的最后一个日期开始(如果选择上期,则为 2023 年 12 月 31 日)。上期收入分别为 2022 年 1 月 1 日 - 2022 年 12 月 31 日(12 个滚动月份) 我开发了这个公式:
Revenue =
VAR _CurrentPeriodEnd =
IF (
ISFILTERED ( 'Time'[Month] ) = TRUE (),
MAX ( 'Time'[Day] )
)
VAR _CurrentPeriodBegin =
EDATE ( _CurrentPeriodEnd, -12 ) + 1
VAR _PreviousPeriodEnd =
IF (
ISFILTERED ( 'Time'[Month] ) = TRUE (),
EDATE ( _CurrentPeriodEnd, -12 ),
EDATE ( _CurrentPeriodEnd, -12 )
)
VAR _PreviousPeriodBegin =
EDATE ( _PreviousPeriodEnd, -12 ) + 1
VAR _tblRevenue =
ADDCOLUMNS (
VALUES ( 'Customers'[Customer] ),
"FilterCP",
CALCULATE (
[Revenues],
'Time'[Day] >= _CurrentPeriodBegin,
'Time'[Day] <= _CurrentPeriodEnd
),
"FilterPP",
CALCULATE (
[Revenues],
'Time'[Day] >= _PreviousPeriodBegin,
'Time'[Day] <= _PreviousPeriodEnd
)
)
VAR _tblPYRevenueBelowZero =
CALCULATE(SUMX(_tblRevenue, [FilterCP]), FILTER(_tblRevenue, [FilterCP] >= 0.01 && [FilterPP]<0.01 && [FilterPP]>-0.01))
RETURN
_tblPYRevenueBelowZero
我希望它能显示当前新客户的收入,但它不起作用。单独地,它正在正确计算前 12 个滚动月份和当前的收入,但在我看来,这种比较(例如 FilterCP>=0.01)不起作用。
看看这是否有帮助:
VAR _tblPYRevenueBelowZero =
SUMX(
_tblRevenue,
var cp = CALCULATE([FilterCP])
var pp = CALCULATE([FilterPP])
return IF(cp >= 0.01 && pp < 0.01 && pp > -0.01, [FilterCP])
// or return IF(cp >= 0.01 && pp < 0.01 && pp > -0.01, cp)
)