web-dev-qa-db-ja.com

Excel配列数式でネストされたIF(AND)を使用するにはどうすればよいですか?

ネストされた「AND」を配列数式の「IF」内で機能させるにはどうすればよいですか?

問題を次の例に減らしました。 Excel spreadsheet showing array formula with nested AND注:上記の画像は、配列数式の中括弧を含むように更新されています

右上には、L3(「色」)とL4(「形状」)の検索条件があります。左側の列Dには、項目のリストの色と形状の両方の作業用一致式が含まれています。最初の表は、配列数式を使用しなくても正しく機能する一致数式を示しています。

2番目の表は、色に一致する配列数式を示しています。

3番目の表は、形状に一致する配列数式を示しています。

右側は、ANDと組み合わせて、配列数式で両方の基準を使用する試みです。

色の列の値が色の基準(L3)と一致し、形状の列の値が形状の基準(L4)と一致する場合、「MATCH!」が表示されます。

私は回避策を見つけました:値と基準を連結し、単一のIF内でそれらを照合します。 ANDが期待どおりに機能したかのように、より良い方法があるはずだと感じています。

注:以下の回答の多くは正しく機能しますが、配列の数式としては機能しません。これは、具体的にはこの質問に関するものです。元の質問を見て、配列数式の例に中括弧を示すのを忘れていることに気付きました。画像を修正して表示します。混乱させて申し訳ありません。

これらの質問に答える鍵は、セルに数式を入力した後にCTRL + SHIFT + ENTERを押すことによって入力される 配列数式 として機能するものを書くことです。 Excelは、中かっこを自動的に追加して、配列数式であることを示します。

8

次のarray数式を使用してみてください:

=IF(($J$16:$J$22=$L$3)*($K$16:$K$22=$L$4),"MATCH!","-")

これは、テストブックへの link です。

11
Dmitry Pavliv

IFvalue of true内にIFをネストして、IF something AND somethingelseを実現できます。例えば ​​:

=IF(A1="something", IF(A2="somethingelse", "A1 is something and A2 is somethingelse", "A1 is something but A2 is not something else"), "A1 is nothing and A2 is nothingelse")

このコードを試す際の追加の詳細: A1に「引用符なしで」何かを書き、A2に「何か」を書き、そのシートの他のセル内にその式を置きます。これらの値をいじって、ネストされたIFのどこに着地するかを確認してください。

4
Bernard Saucier

ANDの代わりに次の2つの方法のいずれかを使用できます。条件の間に「*」を置くと、2番目の方法はネストされたIfsを使用します。たとえば、次のいずれか:

=IF(($J$16:$J$22=$L$3)*($K$16:$K$22=$L$4),"MATCH!","-")

または

=IF($J$16:$J$22=$L$3, if($K$16:$K$22=$L$4,"MATCH!","-"))

論理的にORまたはXORを使用するには、それに応じて()+()または-を指定する必要があります。今はテストしていません。

よろしく、M

0
Mahhdy