计算过去的销售和购买的库存

时间:2019-07-10 18:57:47

标签: powerbi dax inventory sales

我在PowerBI中有三个表,一个销售表,其中包含一年内售出的商品,一年内购买的商品以及在某个时间戳记下的库存。

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

数据可以这样举例:

enter image description here

我尝试为每种产品创建一列,然后创建365行以显示每天的库存。但是,我不知道如何合并2019年3月29日的清单。

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

预先感谢:)

1 个答案:

答案 0 :(得分:0)

首先,我创建了一个StockTable,将购买和销售合并在一起:

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

由于我们需要确保关系模型正确,因此我从Invent到StockTable 1添加了一个新关系:* enter image description here

接下来,我在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]))

现在可以创建一个图表,显示每个商品的库存: enter image description here