首页 > 解决方案 > 在 PowerBI 中使用日期表动态计算度量

问题描述

我正在尝试使用日期表,称为日期,格式如下

Date         Month   Day   Year
01/01/2019   01      01    2019
01/02/2019   01      02    2019
....

与另一个名为 A 的表,格式如下

ID    DateStarted   Type
01    12/30/2018    apple
02    12/30/2017    apple
03    12/31/2018    carrot
...

我想创建一个度量或其他东西,所以我可以在图表中动态显示苹果/胡萝卜的数量,其中开始日期在日期表中某个随机日期的 12 个月内(​​我想显示日期表格 ['Date'] 字段作为我在图表上的轴,例如计算出的“12 个月内”作为我的值,然后能够使用“类型”字段作为我的图例值。所以对于上面的例子,我会在图表上看到 2019 年 1 月至 12 月,然后在 2019 年 1 月看到苹果和胡萝卜的值 1 和 1(因为另一个苹果在此之前 24 个月发货。)然后,在 2019 年 2 月图表中,两个值都为 0。

我试图弄乱 Countax,但我似乎无法让它工作,因为 Date 表中有多个值,并且 powerbi 希望我汇总它们。

Shipments in past 12 months = COUNTAX(MDBEQUIP,(DATEDIFF(Dates[Date],MDBEQUIP[Tag added date],MONTH)<12))

这是最好的方法吗?我的另一个想法是尝试动态创建一个包含所有计算列的新表,例如

Month    Type    Calculated column for above

但不确定是否有其他方法。

标签: powerbidax

解决方案


A Count = COUNTROWS ( 'A' )
A Count Rolling 12 months =
VAR CurrentEndOfMonth = EOMONTH ( MAX ( 'Date'[Date] ), 0 )
RETURN
  CALCULATE (
    [A Count],
    DATESINPERIOD ( 'Date'[Date], CurrentEndOfMonth, -11, MONTH )
  )

假设关系“日期”-1:N->“A”。

另外,我不完全确定您的预期输出是什么。2018 年 12 月比 2019 年 2 月早 2 个月。因此,根据滚动 12 个月的逻辑,我预计“苹果”和“胡萝卜”的计数均为 1。因此,如果上述措施不是您所期望的,您需要进一步澄清您想要实现的目标。


推荐阅读