1

我有一组数据如下:

在此处输入图像描述

在“最新”列中,我想打印 MAX(StepNumber) 的“最新”,其中每个 ManufacuringOrderId 的 tracked =“是”。我可以尝试在 SQL 中执行此操作,但也想看看是否可以使用数组公式来执行此操作。因此,如果这行得通,第 9 行会说“最新”,而从底部向上的第 4 行和第 5 行也会说“最新”。

我尝试了该公式{=MAX(IF(A:A=[@ManufacturingOrderId],F:F))}返回每个的最大步骤编号ManufacturingOrderId,并且该公式{=MAX(IF([@Tracked]="Yes",IF(A:A=[@ManufacturingOrderId],F:F)))}将返回每个制造 ID 的最大步骤编号,该制造 ID 具有跟踪的流程步骤。

但是,我无法找到一种方法来确定为每个制造订单 ID 跟踪流程步骤的最大步骤编号。对于制造订单 ID 5601774,步骤编号为 160,对于 MOID 5624276,步骤编号为 150。

帮助和感谢!

4

2 回答 2

0

如果我正确理解了这个问题,那么您应该能够在 MAX. 然后只需检查该号码是否与当前号码匹配,StepNumber如果匹配则说“最新”。

{=IF(MAX(IF(AND(A:A=[@ManufacturingOrderId], [@Tracked]="Yes"),F:F)) = [@StepNumber], "Latest", "")}
于 2012-09-13T20:38:39.753 回答
0

当 Tracked 为“是”时,您可以使用此数组公式获取每个 OrderId 的最大步数

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

....所以要在正确的行中获得“最新”,您需要检查不仅 Stepnumber = 该值,而且该行中是否存在“是”,即

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

用 CTRL+SHIFT+ENTER 确认

修订:这个版本应该更有效 - 使用两个IFs,而不是AND意味着MAX(IF公式的长部分只需要对行进行评估[Tracked]="Yes"

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

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

于 2012-09-13T22:25:04.130 回答