来自数据子集MAX IF IF的Excel Max

我有一组数据如下:

在这里输入图像说明

在“最新”列中,我想为MAX(StepNumber)打印“Latest”,其中tracked =“是”,对于每个ManufacuringOrderId。 我可以尝试在SQL中这样做,但也想看看我是否可以用数组公式来做到这一点。 所以如果这样做的话,第九排会说“最新”,而第四排和第五排也会说“最新”。

我试过公式{=MAX(IF(A:A=[@ManufacturingOrderId],F:F))}返回每个ManufacturingOrderId的最大步数,公式{=MAX(IF([@Tracked]="Yes",IF(A:A=[@ManufacturingOrderId],F:F)))}将返回每个制造商ID的最大步骤编号,该生产编号具有被跟踪的stream程步骤。

然而,我无法想出一个方法来确定每个生产订单编号跟踪工艺步骤的最大步骤编号。 对于制造订单ID 5601774,步骤编号将是160,对于MOID 5624276,步骤编号将是150。

帮助和感谢!

当这个数组公式被跟踪为“是”时,您可以获得每个OrderId的MAX步号

=MAX(IF([ManufacturingOrderId]=[@ManufacturingOrderId],IF([Tracked]="Yes",[StepNumber])))

….所以要得到“最新”在正确的行中,你需要检查,不仅步骤数=该值,而且该行中存在“是”,即

=IF(AND([@StepNumber]=MAX(IF([ManufacturingOrderId]=[@ManufacturingOrderId],IF([Tracked]="Yes",[StepNumber]))),[@Tracked]="Yes"),"Latest","")

用CTRL + SHIFT + ENTER确认

修正:这个版本应该更有效率 – 使用两个IF ,而不是AND意味着长的MAX(IF公式的MAX(IF部分只需要在[Tracked]="Yes"

=IF([@Tracked]="Yes",IF([@StepNumber]=MAX(IF([ManufacturingOrderId]=[@ManufacturingOrderId],IF([Tracked]="Yes",[StepNumber]))),"Latest",""),"")

[注意这里用来检查2个单一的结果条件,不在数组部分]

如果我已经正确地理解了这个问题,那么你应该能够在MAX中使用这两个条件(即每行与当前行具有相同的ID,并且它被跟踪)。 然后检查这个数字是否与当前的StepNumber相匹配,如果是,则说“Latest”。

 {=IF(MAX(IF(AND(A:A=[@ManufacturingOrderId], [@Tracked]="Yes"),F:F)) = [@StepNumber], "Latest", "")}