Excel:MATCH関数で検査値に空白(未入力)セルを指定する方法

MATCH関数を使用して空白(未入力)セルを検査値に指定して位置を求めたいと思った場合、検査値に""や空白を指定してもエラーとなり、空白セルの位置を正しく返してくれません。

MATCH関数で空白セルの位置を返したい場合の関数式について覚書しておきます。

スポンサーリンク

MATCH関数の概要

指定したセル範囲(1行1列)の中から指定した検査値に該当するセルが相対的位置(何番目)を数値で返す関数です。

MATCH関数の書式は、以下のとおりです。

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

検査値 探す値です。"検索値"でも良いかと思います。
検査範囲 検査値で指定した値を探す範囲(セル範囲)、もしくは配列
照合の型 完全に等しい値を探すのか、近い値を探すのかを指定します。

引数の詳しい説明はヘルプなどにありますのでここでは省略します。

MATCH関数は、INDEX関数やOFFSET関数などと組み合わせて使われることが一般的です。

LOOKUP系の関数と似ていますが、"相対的な位置"を返すという点で全く異なります。

MATCH関数の一般的な使用例

例えば以下のような表があったとします。

A B
1 商品名 単価
2 チョコクリームアイス \150
3 紅茶バー \120
4 じゃがチップス \100
5 アメリカンクラッカー \200
6 バナナキャンディー \280

上記の表に基づき、以下のような数式を入力すると、

=MATCH("紅茶バー",A2:A6,0)

結果として"2"が返されます。

MATCH関数で空白(未入力)セルを検査値に指定するサンプル数式

以下のような表があったとします。

A B
1 商品名 単価
2 チョコクリームアイス \150
3 紅茶バー \120
4 \100
5 アメリカンクラッカー \200
6 バナナキャンディー \280

表を見て分かる通り、A4セルが空白(未入力)だとした際に、MATCH関数を使用してこの未入力セルの位置を返したい場合は、INDEX関数と組み合わせて以下のような式になります。。

=MATCH(TRUE,INDEX(A2:A6="",0),0)

数式の結果として"3"が返されます。

まとめ

MATCH関数で未入力セルの位置を返したいと考えて色々試したのですが、結局MATCH関数だけで実現することはできませんでした。

海外のフォーラムなども除いてみましたが、一番シンプルだったのがINDEX関数と組み合わせて求める関数式でした。

普通に指定できてもいいような気もしますが...

コメント

タイトルとURLをコピーしました