VLOOKUPを使用している時に、なぜか「#N/A」エラーが発生するという経験をもつユーザーは少なくないはずだ。これは数値と文字列の不一致で起こる問題がほとんどである。
VLOOKUPで参照した範囲の「はじめの列が文字列」で「検索値が値」になっているか、またはその逆に「はじめの列が値」なのに「検索値が文字列」なっていることが多い。
いくつかの手順で文字列を値に、または値を文字列に変換してこの「#N/A」エラーを解消することができる。
ここでは、VLOOKUPで起こる「#N/A」エラーが発生する時に、文字列を値に、または値を文字列に変換して解消する方法をかんたんに説明する。
- 対象となるExcelのバージョン
- Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel Starter 2010
まずは書式を確認する
VLOOKUPでの「#N/A」エラーの多くは、参照したはじめの列と検索値が異なる書式を持っているためであることが多い。列または検索値をどちらか片方に合わせることで根本的に解決する。
もしくは、VLOOKUPで検索値をどちらかに変換して解決することもできる。
-
検索値と列の書式を確認
まずはVLOOKUP関数で使用した「検索値」で参照しているセルの書式を確認する。セルを選択し、[ホーム>数値]にあるプルダウンメニューを確認する。ここではE1を選択し確認すると標準書式であることがわかる。
次に、VLOOKUP関数の「範囲」で指定した範囲のはじめの列の書式を確認する。範囲で選択した範囲のはじめの列を選択し、[ホーム>数値]にあるプルダウンメニューで書式を確認する。ここではA2を選択し確認すると文字列書式であることがわかる。
この2つを確認し、書式が異なっていればやはりこれが原因でエラーが発生していることがわかる。
- 検索値と列の書式自体を直す場合は次のStep1へ。
- 検索値を値に変換して参照する場合は次のStep2へ。
- 検索値を文字列に変換して参照する場合は次のStep3へ。
- Step2とStep3の複合技でどちらの場合にも対応させる場合は次のStep4へ。
「#N/A」エラーを解消
-
検索値をTEXT関数で文字列に変換
もし、列の書式が「文字列」になっているのに、VLOOKUPの検索値として参照しているセルが「値」になっている場合は、値から文字列に変換する。VLOOKUP関数を入力したセルにTEXT関数を使用して以下のような形で入力する。
VLOOKUP(TEXT(検索値,"@"),範囲,2,0)
ここでは、「
=VLOOKUP(TEXT(E1,"@"),A2:B13,2,0)
」と入力する。すると値から文字列に変換され一致するためエラーが改善する。TEXT関数を使用しない方法で「
=VLOOKUP(検索値&"",範囲,2,0)
」のように入力することでも文字列に変換することができる。 -
IFERROR関数で両方に対応させる
列の書式が「文字列」で検索値が「値」の場合や、逆に列が「値」で検索値が「文字列」担っている場合、その他にも列の書式がバラバラになっている場合、どこが一致していないかわからない場合は、どちらでも対応するIFERROR関数を使用する。
VLOOKUP関数を入力したセルにIFERROR、VALUE、TEXT関数を使用して以下のように入力する。
IFERROR(VLOOKUP(VALUE(検索値),範囲,2,0),VLOOKUP(TEXT(検索値,"@"),範囲,2,0))
ここでは、「
=IFERROR(VLOOKUP(VALUE(E1),A2:B13,2,0),VLOOKUP(TEXT(E1,"@"),A2:B13,2,0))
」と入力する。すると、どちらのパターンでもエラーを表示せずに参照できるようになる。
参考
- 週間Tweaks:ステータスバーの時刻をダブルタップで日付に切り替え「DateTap」など - 2018/02/12
- 週間Tweaks:iPhoneXでスワイプアップでロック「SwipeUpLockX」やドックをカスタマイズ「Marina」など - 2018/02/05
- 週間Tweaks:iPhoneXのアプリスイッチャーでスワイプでアプリ終了「EasySwitcherX」など - 2018/01/29