1

私は以下のようなデータセットを持っています:

ここに画像の説明を入力してください

「最新」列に、MAX(StepNumber)の「最新」を出力します。ここで、各ManufacuringOrderIdのtracked="Yes"です。これはSQLで試すことができますが、配列数式で実行できるかどうかも確認したいと思いました。したがって、これが機能する場合、9行目は「最新」と表示され、下から4行目と5行目も「最新」と表示されます。

数式{=MAX(IF(A:A=[@ManufacturingOrderId],F:F))}が各の最大ステップ数を返すことを試しました。数式は、追跡されるプロセスステップを持つ各製造IDの最大ステップ数を返します。ManufacturingOrderId{=MAX(IF([@Tracked]="Yes",IF(A:A=[@ManufacturingOrderId],F:F)))}

ただし、製造オーダーIDごとにプロセスステップが追跡される最大ステップ数を決定する方法がわかりません。製造オーダーID5601774の場合、ステップ番号は160になり、MOID 5624276の場合、ステップ番号は150になります。

助けてくれてありがとう!

4

2 に答える 2

0

質問を正しく理解していれば、MAX内で2つの条件(各行が現在の行と同じIDであり、追跡されている)をANDすることができるはずです。次に、その番号が現在の番号と一致するかどうかを確認し、一致するStepNumber場合は「最新」と言います。

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

この配列数式でTrackedが「Yes」の場合、各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で確認

改訂:このバージョンはより効率的である必要があります-2つIFのsを使用するのではなく、数式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 に答える