DAX 函数答疑-根据入库时间和出库时间计算库存(续)

工坊的小伙伴们大家好,小编整理文章留言时发现《根据入库时间和出库时间计算库存》一文下面留言很多,其中有两个代表性留言如下:

Q1

这个度量值计算方式对于工业来说也许是OK的。但在商业行业中,常见的情况是同一个产品多次入库多批出库,而且通常会以入库表和出库表分别存储数据,请问这种情况该如何实现类似的库存计算呢?

Q2

入库表和出库表分开储存,我也是这种情况!入库可以同一批号记录,出库就不一定了。要计算某一时间段的库存量,老师可以给个解题思路吗?

作者大大根据大家反馈最多的出入库分别存储的情况进行了详细解答,欢迎大家强势围观哦!

1 数据准备

友友们反映很多时候出入库的表都是分别存储的,我们先来假设它们长这样↓↓

入库表

file

出库表

file

以上两张表虽然表结构相同,但没有唯一的ID列使其直接关联起来,这种情况下我们接入一个产品名称的维度表,如下(未全部列出):

file

将产品名称与入库、出库表的相应列关联起来,如下图:

file

2 书写度量值

计算选定日期的库存数量我们可以按这样理解:在当天及之前入库的产品数量,减去在当天及之前出库的产品数量。
根据上篇文章的思路,在当天及之前入库的产品数量如下:

入库数量 =
IF (
    HASONEVALUE ( '日期表'[日期] ),
    SUMX ( FILTER ( '入库', '入库'[入库日期] <=VALUES ( '日期表'[日期] ) ), '入库'[库存数量] )
)

在当天及之前出库的产品数量如下:

出库数量 =
IF (
    HASONEVALUE ( '日期表'[日期] ),
    SUMX ( FILTER ( '出库', '出库'[出库日期] <=VALUES ( '日期表'[日期] ) ), '出库'[库存数量] )
)

根据以上两个度量值写出当日库存如下:

当日库存 = [入库数量] - [出库数量]

以上度量值在报表视图中的呈现结果如下:

file

要注意,这里的当日库存是在此之前入库的数量减去在此之前出库的数量,这里的出入库数量并非当天一天的。

另外,如果需要产品维度,则需使用我们构建的产品名称维度表中的字段

今天的分享就到这儿,坊友们如果有疑问或建议,欢迎踊跃留言~工坊的各位作者会抽取具有代表性的留言进行答疑,提问时注意表述清楚哦~

总结

在入库记录和出库记录分别存储的情况下,我们将度量值拆成两部分来写。这样,逻辑就变成了在当天之前入库的数量减去在当天之前出库的数量,从而得到当天的库存数量。



* PowerPivot工坊原创文章,转载请注明出处!


如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊