照合一致関数の機能

照合一致関数は、1行または1列を対象としたセル範囲内を、左端または上端から、指定した条件を満たすセルを探し出し、見つかったセルの位置を返す関数です。

要約すると、指定した値を検索し見つかったセルの位置を返す関数になります。

照合一致関数の書式

照合一致(式,セル範囲,検索の指定)

式は検索する値になります。セル参照や計算式(A1/B2とか)も記述可能です。
セル範囲
値を探す範囲になります。必ず1行または1列を指定します。
検索の指定
検索の指定が0の場合:式の値と一致する値を検索する。
検索の指定が1の場合:式の値以下の最大値を検索する。
検索の指定が-1の場合:式の値以上の最小値を検索する。

照合一致関数のセル範囲は、1行または1列にしなければなりません。また、検索のセル範囲から値を得て計算することはありません。得るのは位置情報です。

照合一致関数の引数は3つで、とりあえず検索したい値、検索したい範囲、の2つを覚えておいて、あとは引数3が0と覚えておくといいと思います。指定するセル範囲は1つだけで、この1つで検索を行うことになります。

照合一致関数の実行例

ABCDEFG
1商品コード商品単価商品位置照合一致関数文字列
21001バナナ19010033照合一致(D2,A2:A6,0)
31002リンゴ130
41003みかん30
51004いちご120
61005メロン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

となっています。

ABCDEFG
1商品コード商品単価商品位置照合一致関数文字列
21001バナナ19010033照合一致(D2,A2:A6,0)
31002リンゴ130
41003みかん30
51004いちご120
61005メロン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は厳格に列を検索するか、アバウトに列を検索するかという設定の違いだけで、他の手続きは一緒です。

照合一致関数