Power BI DAX 公式无法按预期工作

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

我需要开发 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)不起作用。

powerbi dax
1个回答
0
投票

看看这是否有帮助:

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)
  )
© www.soinside.com 2019 - 2024. All rights reserved.