Dax 度量值,用于基于日期切片器在列中查找最新值

Dax measure to look up the latest value in a column based on a date slicer

提问人:eagleaye 提问时间:11/14/2023 更新时间:11/15/2023 访问量:45

问:

我有一个表格,有三列,日期(可以追溯到 2017 年)、产品(在不同时间订购的同一组库存商品)和价格(每次订购的价格都不同)。

我计算每个月发行的总股票,需要一个度量值,根据切片机选择的日期查找最后价格,而不是最高价格。最终目标是获得一份报告,我可以快速分析年度库存数据。

我有 MAXX('stockin','stockin'[unitprice]) 的措施有效,但只给出支付的最高价格,或者如果该物品当月未订购(如在切片机上选择),则没有价值(库存可以发行但未订购当月)。

我试图让一些类似的解决方案起作用,但似乎不能让它们为我工作。

任何人都可以为此提供任何解决方案或想法吗?

日期 PowerBI DAX 价格 库存管理

评论


答:

0赞 Sam Nseir 11/14/2023 #1

如果表的顺序正确,则可以使用 或 。FIRSTNONBLANKLASTNONBLANK

LASTNONBLANK('stockin'[unitprice], 1)

如果你正在寻找切片器范围之前的最后一个值,那么:

YourMeasure = 
  var maxDateSelected = LASTDATE('YourDateTable'[Date])
  var maxDateAvaialble = CALCULATE(
    LASTDATE('stockin'[date]),
    FILTER(ALL('stockin'), NOT ISBLANK('stockin'[unitprice]) && 'stockin'[date] <= maxDateSelected )
  )

  RETURN CALCULATE(
      LASTNONBLANK('stockin'[unitprice], 1),
      FILTER( ALL('stockin'[date]), 'stockin'[date] = maxDateAvaialble )
    )

评论

0赞 eagleaye 11/15/2023
谢谢山姆,但这似乎对我不起作用。我尝试切片具有两个不同价格的月份,并找到了最早的价格,如果我选择一个没有交付任何库存的月份,或者一个未来的月份,什么都没有显示,我想参考所选日期之前的所有历史记录。我的日期表或切片器的配置方式(磁贴)是否有问题?
0赞 Sam Nseir 11/15/2023
将第二部分更新为上面的答案。试一试。
0赞 eagleaye 11/16/2023
我收到语法错误,我认为使用 maxSelectedAvailable 行,var 在智能感知中显示为不可选择,并且似乎无法纠正它
0赞 Sam Nseir 11/16/2023
我不得不猜测你的日期列在表格中叫什么。根据需要进行更新。stockin
0赞 Sam Nseir 11/16/2023
如果您没有 Date 列,而是它是一个键,请替换为stockinLASTDATE('stockin'[date])MAX('stockin'[date])