在DAX DATESBETWEEN函数中引用度量

时间:2015-02-06 16:28:51

标签: powerpivot dax

在Powerpivot 2013中,我试图计算上一次收到物品和最后一次售卖之间每天的单位销售量,但我不断被DATESBETWEEN功能绊倒。

这些措施返回上次收到和上次销售的日期:

Lastsale:= CALCULATE(LASTDATE(InvDetail [Date]),InvDetail [Type] =" Sale") Lastrecv:= CALCULATE(LASTDATE(InvDetail [Date]),InvDetail [Type] =" Receive",all(InvDetail [Date]))

这是我用来在上次收到和去年销售之间销售的单位,但它不起作用。我没有得到错误,只是疯狂的大数字。

UnitsSold:= calculate(sum(InvDetail [units]),InvDetail [Type] =" Sale",DATESBETWEEN(InvDetail [Date],[Lastrecv],[Lastsale]))

如果我在下面的日期硬编码,它就可以了。

UnitsSold:= calculate(sum(InvDetail [units]),InvDetail [Type] =" Sale",DATESBETWEEN(InvDetail [Date],date(2015,1,1),date(2015, 2,1)))

我也必须得到该日期范围内的日期数量,但我还没有去过那里。

我有什么理由不能在DATESBETWEEN功能中使用这些措施吗?

1 个答案:

答案 0 :(得分:0)

没有数据这很棘手,但我的猜测是在DATESBETWEEN()中你只是没有得到预期的过滤器上下文。

我要尝试的第一件事是将度量结合在一个带有FILTER()的CALCULATE()中:

= CALCULATE(SUM(InvDetail[units]), 
     InvDetail[Type]="Sale", 
     FILTER(ALL(InvDetail[Date]), 
             InvDetail[Date] >= [Lastrecv] &&
             InvDetail[Date] <= [Lastsale]
            )
            )

您可以通过日期列上的DISTINCTCOUNT()来调整此日期以计算日期,而不是对单位求和。