IF(SUMIFS('SAP TRACKER'!N:N,'SAP TRACKER'!K:K,[@FPC],'SAP TRACKER'!B:B,"已发货",'SAP TRACKER'!J:J, [@PO])-IF(ROW(F40)=3,0,SUMIFS($N$3:N39,$F$3:F39,F40,$D$3:D39,D40))>[@[数量(IT) ]],[@[数量(意大利)]],SUMIFS('SAP TRACKER'!N:N,'SAP TRACKER'!K:K,[@FPC],'SAP TRACKER'!B:B,"已发货" ,'SAP TRACKER'!J:J,[@PO])-IF(ROW(F40)=3,0,SUMIFS($N$3:N39,$F$3:F39,F40,$D$3:D39,D40 )))
这个函数返回某个 PO 中某种材料的发货数量总和,我在后续列中还有 2 个函数来返回正在进行的发货,但是工作簿很重,每次我做某事时都会不断地计算 8 个线程,我已经转向关闭自动保存,是否有更简单的函数可以给出相同的结果 Sap tracker“我输入发货的表格” 'SAP TRACKER'!N:N:“正在运输的物料数量” 'SAP TRACKER'!K:K“第一标准物料编号” [@FPC]“工作表中的材料编号,我具有该功能” 'SAP TRACKER'!B:B“状态已发货,进行中” 'SAP TRACKER'!J:J“第二个标准采购订单号” [@PO]“PO 在工作表中我有这个功能”
对于初学者来说,不要计算两次。基本上,你的公式是
IF(
CompareComplicatedValueAndSomeOtherValue,
SomeOtherValue,
ComplicatedValue
)
...您将复杂的值驱动两次。
您可以使用
LET
,但在这种情况下,您只需取 SomeOtherValue
和 ComplicatedValue
中的最小值,因此最好像这样使用 MIN
...
MIN(
SUMIFS(
'SAP TRACKER'!N:N,
'SAP TRACKER'!K:K,
[@FPC],
'SAP TRACKER'!B:B,
"Shipped",
'SAP TRACKER'!J:J,
[@PO]
)-IF(
ROW(F40)=3,
0,
SUMIFS(
$N$3:N39,
$F$3:F39,
F40,
$D$3:D39,
D40
)
),
[@[QTY (IT)]]
)