関数(サイト内)検索

Loading

2010/07/26

#168 MATCH


書式

MATCH(検査値, 検査範囲, [照合の型])

概要

セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返す関数。
例えば、A1,A2,A3 セルに、それぞれ 10,15,20 という値が入力されていた場合、検査値 15 を指定すると、本関数は 2 番目の項目であるとして、2 を返却する。

引数

検査値必須。検査範囲の中で照合する値を指定。値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照が指定可能。
検査範囲必須。検索するセルの範囲を指定。
照合の型省略可能。検査範囲の中で検査値を探す方法を数値で指定。照合の型に対応する関数の動作を以下に示す。
照合の型
動作
1 または省略
検査値以下の最大の値を検索。検査範囲の昇順ソート必須。
0
検査値に一致する値のみを検索。一致するデータがない場合、エラー #N/A を返す。
-1
検査値以上の最小の値を検索。検査範囲の降順ソート必須。

補足/解説
1. 本関数では、英字の大文字/小文字は区別しない。
2. 検査値が見つからない場合は、エラー値 #N/A が返される。
3. 照合の型 が 0 で検索値が文字列の場合、検索値にワイルドカードの指定が可能。

特記事項
補足/解説 2. に、検査値が見つからない場合の記載があるが、照合の型に 0 以外を指定した場合、エラーが発生しない場合もあるので、あえて注意喚起する。

そも、近似値を返す関数が、その近似値すら「見つからない」とする理由は、検査範囲のソートを実施しないことが原因である。 本関数は、検査範囲に指定された配列を、上から順に評価する関数なので、例えば昇順に並んだ「前提」で次の値を検査して、それが検査済みの値よりも小さい場合、検査値以下の最大値が「理論上特定できない」状態に陥り、関数としては「エラー終了」以外の選択肢が消えるのだ。
ところが、明示的なソートを実施しない状態でも、ある程度データが昇順に並んでいることはよくあるので、検査値(もしくは、その近似値)を発見するまでの過程で、論理矛盾が発生しなければ、そのときの値が返されてしまう。
つまり、更に先に検査を進めれば、検査値と合致するデータが存在する可能性を残したまま、処理が終了してしまうのだ。

したがって、ソートを忘れた場合は、関数がエラーを返却しないことの方が、戻り値が正確でない危険性があるので、注意が必要と言える。

使用例
参考:Excel2010 関数リファレンス

I.M.L.,ltd

0 件のコメント:

コメントを投稿