【问题标题】:How to calculate inventory with past sales and purchases?如何计算过去销售和采购的库存?
【发布时间】:2019-07-10 18:57:47
【问题描述】:

我在 PowerBI 中有三个表,一个销售表,其中包含一年以上的文章销售量、一年内的文章购买量以及某个时间戳的库存。

我现在希望能够计算每天的库存。

数据可以这样举例:

我尝试为每个产品创建一个列,然后创建 365 行来显示每天的库存。但是,我不知道如何合并 29.03.2019 的库存。

另外,为了演示,我只使用了三篇文章。但是,如果我有一个包含 10.000 种产品的数据集,那么计算它以便稍后在仪表板中正确显示它的理想方法是什么?

【问题讨论】:

  • 看起来您需要计算“销售”和“采购”中最早日期之前存在的“起始”库存量。对于每篇文章,减去所有购买并添加发生在 库存快照之前的所有销售。我的理解正确吗?
  • 是的,我认为这可行。我只是不确定是否应该创建一个包含 365 行和 3 列(每篇文章一个)的表,然后计算每天的库存变化。或者我应该为每个产品创建一个表格,只列出每天的库存变化?.. 感谢您的帮助!

标签: powerbi dax inventory


【解决方案1】:

首先我创建了一个 StockTable,我们将购买和销售结合起来:

StockTable = 
UNION(
    ADDCOLUMNS(Purch;"Event";"Purchage") ;
    SELECTCOLUMNS(Sold;"Article";Sold[Article];"PurchageDate";Sold[SalesDate];"Amount";-Sold[Amount];"Event";"Sold")
)

由于我们需要确保关系模型正确,我添加了一个从 Invent 到 StockTable 1 的新关系:*

接下来,我在 StockTable 上添加了一个列 Stock,它根据特定日期的商品的库存日期计算库存。它仅在确实发生了真正的变化时才具有记录(不需要 365 天)。

Stock = 
var lastStockDate = RELATED(Invent[Date])
return if (StockTable[PurchageDate] < lastStockDate;
    RELATED(Invent[Amount in inventory]) + CALCULATE(SUM(StockTable[Amount]); FILTER(StockTable;StockTable[Article] = EARLIER(StockTable[Article]) && StockTable[PurchageDate] >= EARLIER(StockTable[PurchageDate]) && StockTable[PurchageDate] <= lastStockDate)) ;
    CALCULATE(SUM(StockTable[Amount]); FILTER(StockTable;StockTable[Article] = EARLIER(StockTable[Article]) && StockTable[PurchageDate] <= EARLIER(StockTable[PurchageDate]) && StockTable[PurchageDate] > lastStockDate)) + RELATED(Invent[Amount in inventory]))

现在可以创建一个图表来显示每篇文章的库存:

【讨论】:

  • 谢谢 Aldert,这个解决方案正是我想要的!
猜你喜欢
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2023-03-09
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
相关资源
最近更新 更多