我有一个问题:给定一个包含仓库事务列表的“移动”factTable。
我想知道到达了多少件物品,有多少件(这是微不足道的),但同时也想知道在特定的时间有多少件物品是“有序的”
因此,每一行都可以是收据(它有正数"qIn“值),也可以是货件(正qOut)。
例如,一个非常简单的记录列表可以是:
ID Item TransactionDate OrderDate qIn qOut
1 A 2019-01-30 2019-01-10 5 0
2 A 2019-02-20 2019-01-15 3 0
3 A 2019-03-12 2019-01-20 0 6
4 A 2019-03-30 2019-02-20 20 0这意味着:
在TransactionDate 2019-01-30项A已运抵数量5,该订单已创建于2019年-01-10:因此,在20天内,有5项A“订购”。然而,当我在1月底观看时,我应该会在“有序”度量中看到这个交易的0,因为它是在1月30日到达的。
相反,对于第二个记录,在1月底,我应该看到3的数量是“有序的”,因为实际到达的时间是209-02-20。
因此,在行的末尾,Excel枢轴表应该显示类似的情况:
Year 2019
Month January February March
IN | Ord IN | Ord IN | Ord
Item
A 5 3 3 20 20 0qIn的简单度量是:
qIN := SUM(Transactions[qtaIn])我现在已经完成了订购量的测量(这没有用!):
orderedQty :=
CALCULATE (
SUMX ( Transactions; Transactions[qIn] );
DATESBETWEEN (
Transactions[TransactionDate];
MINX ( Transactions; Transactions[OrderDate] );
MAXX ( Transactions; Transactions[TransactionDate] )
)
)编辑
" InOrder“度量应该是”加性的“,因为它不仅应该考虑到本月发生了什么,而且还应该考虑到过去几个月的InOrder中有多少尚未收到。
带着一张照片(但那应该是.)至少从逻辑的角度来看,整件事会更清楚。然而,也有一幅图,我看不出如何从这个逻辑中提取“直接措施”。
相反,利用@Olly已经提供的措施,问题可以重新表述为:
InOrderFromOtherMonths := Sum (qIn) where Order Month <> Current Month(即从过去几个月收到的订单中收到的当月到达的数量)
InOrder := Total sum of (ORDER measure) - InOrderFromOtherMonthsPS。我用一个更有趣的例子创建了Excel文件。

在该文件中,使用“直接度量图”,一月份的InOrder将是:ID 2 + ID 5 + ID 6 (订单在1月底尚未打开)。值= 3+9+17=29
采用“间接”措施将是:
Total sum of ORDER = 15+23+12=50
InOrderFromOtherMonths = 6+15=21
InOrder = Total sum of ORDER - InOrderFromOtherMonths = 50 - 21 = **29**发布于 2019-04-12 10:12:57
创建一个日历表,包括一个YYYY-MM字段。如果您还没有日历表,可以在PowerPivot:Design > Date Table > New中自动创建一个
在Calendar[Date]和Transactions[TransactionDate]之间创建一个积极的关系
在Calendar[Date]和Transactions[OrderDate]之间创建一个非活动的关系

现在,创建您的措施:
测度IN:
IN:=SUM ( Transactions[qIn] )度量顺序:
ORDERS:=
CALCULATE (
SUM ( Transactions[qIn] ),
USERELATIONSHIP ( 'Calendar'[Date], Transactions[OrderDate] )
)测度顺序:
ORDER:=
IF (
HASONEVALUE ( 'Calendar'[YYYY-MM] ),
CALCULATE (
[ORDERS],
FORMAT ( Transactions[TransactionDate], "YYYY-MM" ) <> VALUES ( 'Calendar'[YYYY-MM] )
)
)和枢轴以适应:

编辑
在您的问题编辑之后,我发现您的一些标签令人困惑--但是请尝试创建以下措施:
测度:有序
Ordered:=
CALCULATE (
SUM ( Movements[qIn] ),
USERELATIONSHIP ( 'Calendar'[Date], Movements[OrdDate] )
)测量:接收到
Received:= SUM ( Movements[qIn] )衡量标准:杰出
Outstanding:=
VAR EOMaxDate =
EOMONTH ( LASTDATE ( 'Calendar'[Date] ), 0 )
RETURN
IF (
ISBLANK ( [Ordered] ) && ISBLANK ( [Received] ),
BLANK(),
CALCULATE (
[Ordered] - [Received],
FILTER (
ALL ( 'Calendar'),
'Calendar'[Date] <= EOMaxDate
)
)
)现在,在您的枢轴中使用这三种度量:

或者更清楚地说:

参见55596609-2,例如XLSX文件。
https://stackoverflow.com/questions/55596609
复制相似问题