照合一致関数の機能
照合一致関数は、1行または1列を対象としたセル範囲内を、左端または上端から、指定した条件を満たすセルを探し出し、見つかったセルの位置を返す関数です。
要約すると、指定した値を検索し見つかったセルの位置を返す関数になります。
照合一致関数の書式
照合一致関数のセル範囲は、1行または1列にしなければなりません。また、検索のセル範囲から値を得て計算することはありません。得るのは位置情報です。
照合一致関数の引数は3つで、とりあえず検索したい値、検索したい範囲、の2つを覚えておいて、あとは引数3が0と覚えておくといいと思います。指定するセル範囲は1つだけで、この1つで検索を行うことになります。
照合一致関数の実行例
A | B | C | D | E | F | G | |
1 | 商品コード | 商品 | 単価 | 商品 | 位置 | 照合一致関数文字列 | |
---|---|---|---|---|---|---|---|
2 | 1001 | バナナ | 190 | 1003 | 3 | 照合一致(D2,A2:A6,0) | |
3 | 1002 | リンゴ | 130 | ||||
4 | 1003 | みかん | 30 | ||||
5 | 1004 | いちご | 120 | ||||
6 | 1005 | メロン | 250 | ||||
7 | |||||||
8 |
つながっているので分かりにくいですが、A列~C列までを1つとする表、D列~E列までを1つとする表がそれぞれあるとします。また、A列とB列とC列は値と文字列のデータがあり、D列とE列は数値、F列は照合検索関数の文字列があるとします。
つぎに、セルD2に商品コードが入力されたら対応する行の位置情報をセルE2に表示したいとします。上の例は、もうすでにセルD2には1003が入力され、セルE2に3が表示されているので分かりにくいのですが、セルD2に1003と入力すると、リターンキーを押した瞬間セルE2が3と変わるような、指定した値から検索した結果を表示したいとします。このとき照合一致関数を使用します。
ではどのようにするのかというと、セルE2に「照合一致(D2,A2:A6,0)」と関数を入力するだけです。
照合一致の関数の引数は、
引数1は D2
引数2は A2:A6
引数3は 0
となっています。
A | B | C | D | E | F | G | |
1 | 商品コード | 商品 | 単価 | 商品 | 位置 | 照合一致関数文字列 | |
---|---|---|---|---|---|---|---|
2 | 1001 | バナナ | 190 | 1003 | 3 | 照合一致(D2,A2:A6,0) | |
3 | 1002 | リンゴ | 130 | ||||
4 | 1003 | みかん | 30 | ||||
5 | 1004 | いちご | 120 | ||||
6 | 1005 | メロン | 250 | ||||
7 | |||||||
8 |
セル範囲に色を着けてみました。順を追って照合一致関数をみてみましょう。
1.式に入力(引数1・D2)
引数1で指定された式に、値が入力されます。例の場合の入力された値は1003です。
2.セル範囲(引数2・A2:A6)
照合一致関数のセル範囲の指定の仕方は1行か、または1列でしか指定することができません。今回の例は列方向に1列分セル範囲を指定しています。
3.検索の指定(引数3・0)
検索の指定が0なので、引数1で指定した式の値と一致する値を検索することになります。例の場合は1003と同じ値を上から順に検索してゆきます。
4.結果
3.の検索の指定で発見した結果から、セル範囲から見たセルの位置を数字で返します。例の場合はセル範囲から見て上から1、2、3と数えて3番目の所に位置するので、3が返ってきます。あくまでもセル範囲の中の左側か上側が基準になります。ワークシートの行列番号は返しません。
検索の指定が1または-1の場合
先の実行例は、検索の指定が0のときの例で、検索の流れの説明を優先するため、引数3について特に触れてきませんでした。照合一致関数の引数3は0と1と-1が指定できると仕様に書いてありますが、違いは何なのでしょうか。仕様では
「検索の指定が1の場合:式の値以下の最大値を検索する。」
「検索の指定が-1の場合:式の値以上の最小値を検索する。」
と書いてあり、引数3が1のときは、検索する値が同じである必要はなく、最大値を探すことができるようになっています。さきほどの上の例だと引数1の式の値が1003で、値1003をセル範囲の一番上側を検索し、同じ値が4列目にありましたが、もし値1003が無かった場合、引数3が0の場合は検索されずにエラーになりますが、引数3に1を指定した場合、値が一致しない場合でも値1003に近い最大値が検索されることになります。同じ値がないと予想できる場合にはこの方法が有効です。
おなじ要領で検索の指定が-1を指定した場合は、引数1で指定した以上の最小値を検索することになります。
引数3は厳格に列を検索するか、アバウトに列を検索するかという設定の違いだけで、他の手続きは一緒です。