INDEX × MATCH 関数の戻り値を「0」ではなく空欄にする方法
janjf93 / Pixabay

INDEX × MATCH 関数はVLOOKUP 関数と同様に値の検索によく用いられるますが、

値がない場合は、「0」の値が戻り値(関数によって返される値)になります。

これはエラーではなくINDEX関数の仕様であるため仕方がありません。ですが、どうしても空欄で値を取得したいケースもありますので、そのやり方についてご紹介します。

戻り値を「0」から空欄にする方法

対処法として以下の2通りあります。

対処法
  1. IF関数を用いる方法 → INDEX × MATCH 関数だけのシンプルな場合にオススメ
  2. IFERROR関数を用いる方法 →  INDEX × MATCH 関数の中にさらに複雑な処理を行う場合にオススメ

シンプルなのは「IF関数を用いる方法」ですが、どうしてもIFERROR関数で対処しなければいけない場合もあります。

例えば =INDEX(B:B,MATCH(TEXT(E2,E:E,0),0))のように、MATCH関数もしくはINDEX関数の中にさらに関数を入れているケース(関数のネストをしているケース)です。

その関数についても、エラー処理をしたい場合どうしてもIFERROR関数を使う場合があると思います。

それらについてやり方を紹介します。

IF関数を用いる方法

以下のような INDEX× MATCH 関数であったとします。

=INDEX(B2:B6,MATCH(E2,A2:A6,0),0)

これをIF関数を追加して以下のようにします。これで戻り値が「0」ではなく空欄になります。

=IF(INDEX(B2:B6,MATCH(E2,A2:A6,0),0)<> 0,INDEX(B2:B6,MATCH(E2,A2:A6,0),0),"")

よくわからないという方は、もともとのMATCH × INDEX関数をコピーしてIF関数の以下の赤字の箇所に貼り付けてください。

=IF(MATCH×INDEX関数<> 0,MATCH×INDEX関数,"")

IFERROR関数を用いる方法

さきほどと同様に以下のような INDEX× MATCH 関数であったとします。

=INDEX(B2:B6,MATCH(E2,A2:A6,0),0)

これをIFERROR関数を追加して以下のようにします。これで戻り値が「0」ではなく空欄になります。

※ IFERROR関数の末尾が ,"") ではなく &"","") となっていることに注意してください。これをしないと空欄ではなく「0」が返されてしまいます。

=IFERROR(INDEX(B2:B6,MATCH(E2,A2:A6,0),0)&"","")

よくわからないという方は、もともとのMATCH × INDEX関数をコピーしてIF関数の以下の赤字の箇所に貼り付けてください。

=IFERROR(MATCH×INDEX関数&"","")
スポンサーリンク
おすすめの記事