Excel 2010 Dax Onhand Quantity Vs.最后日期数量

时间:2014-12-20 17:58:46

标签: excel powerpivot dax

我花了最近两天试图得到这个,我真的需要一些指针。我使用Excel 2010 w / Power Pivot并计算库存。我试图获得2个日期之间的销售量。如果物品有库存,我会记录手头的数量。

Item #  Day         Date        Qty
Black   Thursday    11/6/2014   2
Blue    Thursday    11/6/2014   3
Green   Thursday    11/6/2014   3
Black   Friday      11/7/2014   2
Green   Friday      11/7/2014   2
Black   Monday      11/10/2014  3
Blue    Monday      11/10/2014  4
Green   Monday      11/10/2014  3

有没有办法在dax中执行此操作?我可能不得不回去计算excel中每条记录的差异,但我想尽可能避免这种情况。

有些事情让我很难受。

1)我只记录周一至周五的库存。我不确定这种情况总是如此,所以我希望避免仅仅在工作日依赖于此。 2)当没有库存时,我当天没有记录

我试过,使用dateadd进行CALCULATE,它给了我几乎正确的结果,但它最终过滤掉了一些结果。真的很奇怪,但几乎是正确的。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

布莱恩,这可能不能完全回答你的问题,因为有些事情对我来说并不完全清楚,但它应该给你一个开始,如果你提供进一步的信息,我很乐意扩大我的答案。 / p>

您可以使用的一个'模式'涉及TOPN函数,当与参数n = 1一起使用时,它可以从按日期排序的表中返回最早或最新值,并且可以过滤为早于/晚于指定日期

对于此示例,我使用的是“已断开连接”的日期表,用户可从中选择切片器或报表过滤器中所需的两个日期:

=
CALCULATE (
  SUM ( inventory[Qty] ),
  TOPN (
    1,
    FILTER ( inventory, inventory[Date] <= MAX ( dates[Date] ) ),
    inventory[Date],
    0
       )
          )

在这种情况下,TOPN返回的最新日期早于或等于提供的最新日期的单行表。 TOPN中的第一个参数指定行数,第二个是要使用的表,第三个是要排序的列,第四个是按降序排序。

从这里开始,可以直接对第二个度量进行调整,以找出最新日期之前或之前所选择的最早日期的值(即MAX中MAX(日期[日期])的交换MIN)。

希望这会有所帮助。 雅各布

*使用daxformatter.com进行美化