滚动月平均功率bi dax

时间:2016-08-04 17:41:59

标签: powerbi dax

我有这两列: SALES_CALLSID QFQ4TA5006C2 QZPIOA18LW8A QS4GSA300PU0 ....;和 MEETING_DATE 2014年7月10日12:00 2015年3月27日12:00 2015年11月3日12:00

我需要第一列(salesid)的计数,但这个计数应该是每个月的平均12个月平均值,例如7月 - 7月的销售额+最近11个月的计数(即基于在会议日期栏上),类似地,这个措施必须每隔一个月进行一次。

"销售电话ID"列是文本字段。我可以使用公式COUNTA(AccountSalesCalls [SALES_CALLSID])来查看计数。

为获得过去12个月的销售ID总数而构建的公式如下:

CALCULATE (
    COUNTA ( AccountSalesCalls[SALES_CALLSID] ),
    DATESBETWEEN (
        AccountSalesCalls[MEETING_DATE],
        NEXTDAY ( SAMEPERIODLASTYEAR ( LASTDATE ( AccountSalesCalls[MEETING_DATE] ) ) ),
        LASTDATE ( AccountSalesCalls[MEETING_DATE] )
    )
)

当我这样做时,我收到一个错误:

  

在调用中指定了包含重复日期的日期列   功能' DATESBETWEEN'。这不受支持。

然后我构建了一个DATE表并用DATE表中的列替换了MEETING_DATE列,如下所示:

CALCULATE (
    COUNTA ( AccountSalesCalls[SALES_CALLSID] ),
    DATESBETWEEN (
        'Date'[Date],
        NEXTDAY ( SAMEPERIODLASTYEAR ( LASTDATE ( AccountSalesCalls[MEETING_DATE] ) ) ),
        LASTDATE ( AccountSalesCalls[MEETING_DATE] )
    )
)

这只是给了我那个月的计数,与COUNTA(AccountSalesCalls[SALES_CALLSID])的结果相同。

我仍然没有完成分数部分以获得平均值,但首先想知道如何使总计数有效。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你快到了。

计算列:

Average = CALCULATE (
  COUNTA ( AccountSalesCalls[SALES_CALLSID] ) / 12,
  DATESBETWEEN(
    AccountSalesCalls[MEETING_DATE],
    DATEADD(AccountSalesCalls[MEETING_DATE], -12, MONTH),
    AccountSalesCalls[MEETING_DATE]
  ),
  ALL(AccountSalesCalls)
)

请注意,它除以常量(12),这对于数据的第一年是不正确的。你必须决定如何处理这个问题(如果有的话)。

一种选择可以是除以现有选定数据的日期范围:

Average = CALCULATE (
  COUNTA ( AccountSalesCalls[SALES_CALLSID] ) / 
    DATEDIFF( MIN(AccountSalesCalls[MEETING_DATE] ),
      MAX( AccountSalesCalls[MEETING_DATE] ),MONTH),
  DATESBETWEEN(...

More or moving averages using DAX

答案 1 :(得分:0)

而不是除以12,我看到Rob Collie通过

来处理分裂

COUNTROWS(价值观('日期' [年 - 月]))

其中[年 - 月]是'日期'中的计算列。表:

=格式化('日期' [日期]," YYYY-mm")

以这种方式使用VALUES还可以处理可用数据不到12个月的情况。

我也看到Chandoo使用类似的方法,但是使用COUNTROWS检查是否有12个月可用于基于滚动平均值(如果不是,则返回空白)。