IF(OR(AND( を埋め込んだ複数のシートを参照する必要がある

IF(OR(AND( を埋め込んだ複数のシートを参照する必要がある

「出荷」、「設備」、「在庫」の 3 つのシートを参照する必要があります。出荷の列 A と設備の列 A は両方ともロケーション番号を参照し、設備タイプはテキストで指定され、「在庫」のピボット テーブルでカウントされます。各ロケーション番号に関連付けられている設備のタイプは複数あり、一部のロケーション番号はまだ関連付けられていません。

平易な英語で言えば、「出荷時の場所番号が設備の場所番号と一致し、かつ、設備タイプが在庫 A9 と一致するか、設備タイプが在庫 A8 と一致する場合は、列 K に追跡番号を返し、それ以外の場合は空白の値を返す」という意味です。

私の公式は

=IF(AND(Equipment!A:A=Shipping!A2,OR(Equipment!C:C=Inentory!A8,Equipment!C:C=Inentory!A9)),Equipment!K:K,""). 

返すべき正しい値があり、論理的にはこれが機能するはずであることはわかっていますが、いずれにしても誤った値が返されるため、見逃している複雑な点があることはわかっています。何か助けてもらえますか?

答え1

ここにはいくつか問題があります。

通常、Excel の数式は配列を入力として処理しません (Enter キーを押すだけの場合)。そのため、数式では範囲の最初のセルのみが比較されます。

配列数式を入力する場合は、Ctrl+Shift+Enter キーそれは完全な範囲と比較されますが、あなたのまたはそしてそして関数は、範囲全体に対して単一の true/false にそれを簡略化します (各行ごとにではありません)。

したがって、配列数式を使用すると、次のようなものを使用できます。ただし、列配列全体を使用している場合、配列数式は非常に遅くなる可能性があることに注意してください (各列配列には約 100 万個のセルが含まれるため、実際に範囲を定義する方がはるかに適切です)。

=index(Equipment!K:K,
    match(Shipping!A2,
        if(((Equipment!C:C=Inentory!A8)+(Equipment!C:C=Inentory!A9))>0,Equipment!A:A,0)
    ,0)
)

関連情報