我花了最近两天试图得到这个,我真的需要一些指针。我使用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,它给了我几乎正确的结果,但它最终过滤掉了一些结果。真的很奇怪,但几乎是正确的。
感谢任何帮助。
答案 0 :(得分:1)
您可以使用的一个'模式'涉及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进行美化