求基于日期切片器获取库存表最新价格的DAX度量值
解决方案:获取产品最新采购价格的DAX度量值
核心度量值:获取指定日期前的最新单位价格
最新单位价格 = VAR SelectedDate = MAX('日期表'[日期]) VAR CurrentProduct = SELECTEDVALUE('stockin'[产品]) VAR LatestPurchaseDate = CALCULATE( MAX('stockin'[日期]), 'stockin'[产品] = CurrentProduct, 'stockin'[日期] <= SelectedDate ) VAR LatestPrice = CALCULATE( VALUES('stockin'[unitprice]), 'stockin'[产品] = CurrentProduct, 'stockin'[日期] = LatestPurchaseDate ) RETURN IF(NOT ISBLANK(LatestPurchaseDate), LatestPrice, BLANK())
关键逻辑说明
- SelectedDate:提取切片器选中的最晚日期(如果选的是整个月份,就是当月最后一天),以此作为判断“最新”的时间节点
- LatestPurchaseDate:针对当前产品,筛选出在SelectedDate之前的最后一次采购日期,解决了「当月无采购但有出库」的场景——会自动回溯到最近一次采购记录
- LatestPrice:根据找到的最后采购日期,提取对应价格;如果同一天同一产品有多条采购记录,
VALUES会返回唯一值(若有多个价格,可替换为MAXX取最后一条或AVERAGEX取均价,按需调整)
结合出库库存计算总金额
如果你的出库数据在单独的stockout表(含「产品」「出库数量」「日期」字段),可以用以下度量值计算月度出库总金额:
月度出库总金额 = SUMX( 'stockout', 'stockout'[出库数量] * [最新单位价格] )
注意事项
- 必须建立独立的日期表,并与
stockin、stockout的日期字段建立一对一/多对一关系,确保切片器的筛选能正确传递到所有表 - 若需处理「产品从未采购但有出库」的极端情况,可在
RETURN中设置默认值,比如将BLANK()替换为0或其他约定的默认价格
内容的提问来源于stack exchange,提问作者eagleaye
相关产品推荐
相关产品推荐

