【问题标题】:How to create a rolling 3 month average with DAX如何使用 DAX 创建滚动的 3 个月平均值
【发布时间】:2020-09-18 12:18:49
【问题描述】:

我有一张如下表:

Name    Date1        Date2         Age
Tim     2020/05/20   2020/05/25    5
Tim     2020/07/10   2020/07/17    7
Tim     2020/08/04   2020/08/10    6
Tim     2020/09/05   2020/09/12    7
Tim     2020/08/05   2020/08/17    12

如您所见,Age 是 Date1 和 Date2 之间的差值,我想创建一个 DAX 表达式来计算 Age 的 3 个月滚动平均值(其中 Date1 是过去 3 个月的平均值)。

Date1 已链接到我的日历表。

上述样本的预期结果为 8(第一个条目将不包含在结果中,因为它超过 3 个月)

有什么建议吗?

【问题讨论】:

    标签: powerbi average dax


    【解决方案1】:

    始终考虑从 TODAY() 开始的最后 3 个月,您可以尝试以下措施来获得预期的输出。如果逻辑不同,您也可以调整开始和结束日期。以下将始终考虑过去 90 天,包括今天。

    3_month_average = 
    
    var start_3_month = TODAY() - 90
    var end_3_month = TODAY()
    
    RETURN
    CALCULATE(
        AVERAGE(your_table_name[Age]),
        FILTER(
            ALL(your_table_name),
            your_table_name[Date1] >= start_3_month
                && your_table_name[Date1] <= end_3_month
        ) 
    )
    

    【讨论】:

      【解决方案2】:
      MOVAVG_3M = 
      VAR __LAST_DATE = LASTDATE('Table'[Date1].[Date])
      RETURN
          AVERAGEX(
              DATESBETWEEN(
                  'Table'[Date1].[Date],
                  DATEADD(__LAST_DATE, -3, MONTH), __LAST_DATE),
              CALCULATE(SUM('Table'[Age]))
          )
      

      您也可以转到 Quick Measure - Rolling Average 并输入您的字段和数字。

      【讨论】:

      • 感谢您,我收到以下错误 表 'MyTable' 中对 'Date1' 的列引用不能与变体 'Date' 一起使用,因为它没有。我检查并设置为日期数据类型。有什么想法吗?
      猜你喜欢
      • 2021-05-08
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多