Cafe HOUKOKU-DOH

~ホッとひと息的な読み物でブレイクするサイト~

Office基礎96 【Excel】VLOOKUP関数がエラーになってしまう

さまざまなExcelのブックやシートに点在しているデータをブック間をまたいで結合させて、活用するのに重宝するのが「VLOOKUP関数」だ。データ処理を行う作業では、なくてはならない関数であり、Excel初心者時代に先輩から使い方を指導された読者も多いはずである。

 

この便利な関数なのだが、使うにあたり何点かポイントがあり、その点を理解していないと、計算結果が「#N/A]といったエラーとなるなど、うまく行かない。

 

今回は、そのうちでももっとも発生頻度が高い、エラーについて見て行きたい。

 

VLOOKUP関数は、ユニーク(≒重複しない)な値などをキーとして、他のブックにある同じキーを持つ行にある、指定した列の値を、関数を入力したセルに持ってきてくれる。

 

なのでたとえば、部品番号のみが入力されたシートにほかのブックにある部品番号と部品名が載っているようなリストから、部品番号をキーとして、同じ部品番号の部品名をブックをまたいで持ってきて表示してくれる。

 

具体的な使い方は、以前のBlogを参考にして欲しいのだが、いままでと同じように関数を入力してもエラーになってしまうことがあるのだ。

 

blog.houkoku-doh.com

 

今日見ていくのは、キーとなる「検索値」のデータ形式である。このデータ形式が異なると、VLOOKUP関数は検索値が異なると判断し、参照先のシートに検索値と等しい値がないというエラー「#N/A」を表示してしまう。

 

これはとくに数値のみのキーのときに発生する。数値のみで表される値は、データ形式が数値の場合と文字列の場合がある。基本的には数値であれば、セルのなかで右寄せ、文字列であれば左寄せになるので見た目でわかるが、どちらのデータ形式であってもセルの書式設定で文字の配置を標準ではなく、右寄せや左寄せにしていると、データ形式に関係なく、どちらかに寄ってしまう。

 

blog.houkoku-doh.com

 

Excelの初心者などがさわったシートは、セルの表示形式のみをさわって見た目をきれいにしてしまったりするのでやっかいだ。Excelのデータ保持の仕方の基本知識がないとこのような事態が起こる。

 

では、どうやってデータ形式をあわせるのか。数値のみの番号体系であっても先頭に「0」を保持しているような定義であれば、基本は文字列とする。一方、先頭「0」をもたない番号体系であれば、数値の方が使い勝手がいい。

 

具体的には対象の列を選択し、「データ」タブ-「区切り位置」で「区切り位置ウィザード」を表示させる。

数値から文字列に変換するのであれば、「元のデータ形式」を「スペースによって右または左に揃えられた固定長フィールドのデータ」を選択。

「次へ」をクリックし、ウィザードの2/3はスルー。

「区切ったあとの列のデータ形式を選択してください」で「文字列」を選択して「OK」をクリックするだけである。

 

一方、逆はひと手間入る。まず列の表形式を「標準」にする。「ホーム」タブ-「数値」グループのダイアログボックス起動ツールをクリックし、「ページ設定ダイアログボックス」を開く。

「表示形式」タブの「分類」で「標準」を選択し「OK」をクリック。その上で、先ほどと同じように「区切り位置ウィザード」で「元のデータ形式」を「スペースによって右または左に揃えられた固定長フィールドのデータ」を選択。「次へ」をクリックし、ウィザードの2/3はスルーして、「区切ったあとの列のデータ形式を選択してください」で「文字列」を選択すればOKだ。

 

ちなみに今回は、先頭「0」保持の番号が、なんらかの原因で数値データになってしまい、先頭の「0」が欠落している状態には対応していない。欠落したデータの修復方法については、別の機会としたい。

 

Excelのデータ保持方法、表示方法の基本的知識と、文字列と数値データの変換方法について見てきた。この知識を身に付ければ、読者のみなさんもExcelのデータ処理レベルが一段バージョンアップするはずである。