「StiLL」Excel情報193  関数--表の中から2つの条件に一致するものを調べる-その2
■前回のメールサービス(192)では、範囲名を利用して2つの条件に一致する値を求める方法をご紹介しました。今回は範囲名を使うのではなく、関数を利用して同じ結果を求める方法をご紹介します。 ☆対応方法:条件がない場合に「#REF!」や「#N/A」などのエラー値になってしまうのを防ぐためには「IF関数」を使用しましょう。 ※ご参考までに。「IF関数」を利用すると数式が長く、複雑になってしまいますが、エラー値を出さないためには不可欠な関数です。関数が苦手な方は、1つのセルに関数を1つずつ入れ、結果を解析していくと理解が深まります。
■表の中から2つの条件に一致するものを調べる方法
今回も、前回と同じサンプルの表
を利用します。
商品名・都市を選ぶと、
B2:E5 の範囲にある表から
該当する数量を求める方法
のご紹介です。
この表は「サンプル」シートに
ありますのでご利用ください。
■方法その1 セルに範囲名をつける方法
前回のメールサービスはこちらをご覧ください。
【バックナンバー 192】 表の中から2つの条件に一致するものを調べる-その1
■方法その2 MATCH関数・INDEX関数 を組み合わせた方法
今回は、「MATCH関数」と「INDEX関数」を組み合わせた方法をご紹介します。
関数を1つ1つ説明していきます。
@「MATCH関数」を利用して、選択された『商品』の位置を調べる数式を作ります。
この数式は、「D10」(選択した商品名)の値が「B3:B5」(表の中の商品名)の中の上から何番目
にあるか、ということを調べる関数です。
最後の「0」(ゼロ)は、完全に一致するもののみを検索する、ということを表します。
ゼロを省略してしまうと違う結果になってしまいますので、必ず指定してください。
例:「醤油」が選択されていた場合
 
B
  D
3 醤油 10 醤油
4 ソース
5 みりん 「醤油」は「B3:B5」の中で一番上にあるので
結果は『1』になります。
A次は「MATCH関数」を利用して、選択された『都市』の位置を調べる数式を作ります。
この数式は、「D12」(選択した都市名)の値が「C2:E2」(表の中の都市名)の中の左から何番目
にあるか、ということを調べる関数です。
商品名とは違い、表の中の都市名が横方向に並んでいますので、今回は「左から」何番目とい
うように変わりますので、ご注意ください。
@と同じく、最後の「0」(ゼロ)は省略しないでください。
例:「東京」が選択されていた場合
 
C
D E   D
2 東京 名古屋 大阪 12 東京
「東京」は「C2:E2」の中で一番左にあるので
結果は『1』になります。
B「INDEX関数」と@Aを組み合わせた数式を作ります。
この数式は、「C3:E5」(表の中の数量の部分)から、指定した上からの行番号と左からの列番号
の部分にある値を返す、というものです。
例:「醤油」と「東京」が選択されていた場合
  B C D E
2
 
東京 名古屋 大阪
3 醤油 600 45 55
4 ソース 200 65 12
5 みりん 300 2 5
「MATCH(D10,B3:B5,0)」の結果は『1』、「MATCH(D12,C2:E2,0)」の結果は『1』なので
「INDEX(C3:E5,1,1)」となり、「C3:E5」の上から1番目・左から1番目ということになるので
結果は『600』となります。
※「=INDEX(B2:E5,MATCH(D10,B2:B5,0),MATCH(D12,B2:E2,0))」でも結果は同じです。
ここまではできましたか?
Bと同じ数式が「サンプル」シートの「D22」に設定されていますのでご覧ください。
今回もここで注意しなければならないことがあります。
商品名(D10) または 都市(D12) が選択されていない場合は、
Bの数式では「#REF!」エラーになってしまいます。
では次に、「#REF!」エラーにならないように、Bの数式を少し変更してみましょう。
C「IF関数」を使用した数式に変更します。
@の数式がエラーのとき または Aの数式がエラーのとき は『該当なし』という文字を表示し、
そうでなければBの数式の結果を返す、という数式になります。
いかがでしたでしょうか?
Cと同じ数式が「サンプル」シートの「F22」に設定されていますのでご覧ください。
ご参考までに。
Cの数式を応用して
という数式にすると、メッセージが分かりやすくてよいですね。
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます