【Excel】Vlookup関数を効率良く使うのは参照元データに注目!
こんにちは! イマジネットPCサポートの橋崎です。
今回はOfficeファイルについてお客様からご相談がありました。内容は入力作業がもう少し簡単にできないかと言う事でした。確認するとそれはExcelで作成されたファイルで「Vlookup」関数が使用されています。しかしよくファイルの内容を確認すると参照元データに問題があるように思います。
「Vlookup」関数は表データから目的のデータを抽出する便利な関数ですが、元データ数が多くなると少し手間に感じる一面もあります。
今回はその当たりを改善できいないか! そのような事を中心に記事を書きたいと思います。
読むだけでは中々理解できません。またサンプルは非常に簡単なデータを使用しているので、できれは一緒にExcelで作業してみて下さい。
まずはVlookup関数の使い方
お断り
今回のサンプルは「エラー」表示を非表示にする処理はしておりません。
Vlookup関数はデータを縦方向に検索、参照して検索値と同じ行データを取得します。
この説明では何の事かわかりませんよね!
実際にどのように動くのか、まず動作を見ていきましょう。
これは当店が作成したサンプルです。なので会社名は実在するものではありません。(ありそうな会社名ですが・・・)
例えば請求書を発行する時の宛名を入力する作業をイメージして下さい。
下の画像でセルに入力されている「顧客名をフリガナで入力」と矢印で示しているピンク色のセルに「サトウショウジ」と入力した状態です。
入力後、確定のEnterキーを選択すると黄色のセルに「佐藤商事 株式会社」と自動入力されました。
この動作は緑色の表にあるデータが基本となっています。
ピンク色のセル「C3」に入力した「サトウショウジ」を元に緑色の表「B列」のフリガナから「C3」と同じ内容(サトウショウジ)を抽出して同じ行「C列」の会社名(佐藤商事 株式会社)を「B6」に表示しています。
入力の手間が省けて中々、便利ですよね!
では これをどのようにして実現しているのか説明しておきましょう!
Vlookup関数の設定方法
いきなり設定方法に入る前にVlookup関数に必要な設定データを整理しておきましょう。
必要なデータを整理する
Vlookupは以下のデータが必要です。
- 検索値→検索する対象のセル、下画像で言えばピンク色の「C3」
- データ参照範囲→データを参照する範囲、下画像で言えば緑色の「B8からC12」(タナカショウテンから株式会社 橋本物産)
- 抽出する列番号→抽出したいデータを列番号で指定します。下画像で言えば緑色の表2列目(会社名)を抽出したいので2列目(会社名)の「2」
- 検索の型→Falseを使用します。 検索の型については今回気にせず「Flase」または「0」(ゼロ)を入力します。
では用意したデータを箇条書きではなく横並びにしてみましょうか。
「C3」「B8:C12」「2」「False」こんな感じですね!
Vlookup関数を設定します。
上で整理したデータを元にして実際にVlookup関数を設定していきましょう。
今回は関数を数式バーに直接入力するのではなく入力補助を使用します。
最初に関数を設定したいセル(黄色のセル)「C6」を選択します。(この選択したセルに検索結果が表示されます。)
そして矢印の「関数の挿入」ボタンを選択します。
「関数の挿入」メニューが開くので「関数の検索」テキストボックスに「Vlookup」と入力してから「検索開始」ボタンを選択すると検索結果が下の「関数名」の一欄に表示されるので「Vlookup」を選択してから「OK」を選択します。
関数の引数を設定するメニューが開きました。この中にある「検索値」「範囲」「列番号」「検索方法」の4項目をそれぞれ入力します。ここで思い出してほしいのですが、先程のデータ整理です。
「C3」「B8:C12」「2」「False」でしたね!
これをこのまま順番に直接入力してもよいのですが、データの整理はあくまでわかりやすくするためで毎回行うものではありませんから、直接入力はせずに次に説明する方法で入力しましょう。
検索値
先に関数の引数メニューの検索値テキストボックスをクリックして選択しておきます。そしてその状態からピンク色のセル(C3)を選択すると、検索値に「C3」が自動で入力されます。
範囲
先に範囲テキストボックスを選択します。次に範囲(B8からC12)までドラックで範囲指定します。
すると範囲に「B8:C12」と入力されました。
列番号
この列番号は表示したいデータの列を指定します。
検索の範囲指定した表「B8:C12」の1列目は「タナカショウテン」等のカナです。2列目は会社名です。
今回は会社名を表示したいので2列目の「2」と入力します。
最後に検索方法を入力しますが、ここは「FALSE」と直接入力します。「FALSE」は完全に一致する値だけを検索すると言う意味です。この逆で「TRUE」がありますが、使った事がありません。
ここは気にせず「FALSE」で行きます。「0」ゼロでも大丈夫です。
最終的にはこのように入力しました。最後に「OK」を選択して設定を確定させましょう。
関数を設定した黄色のセル「B6」を選択すると、上の数式欄に「=VLOOKUP(C3,B8:C12,2,FALSE)」と表示されて設定されているのが確認できます。
思った通りに動作するか確認してみましょう。ピンク色のセル「C3」に「サトウショウジ」と入力確定すると黄色のセル「C6」に「佐藤商事 株式会社」と表示されれば完成です。
エラー表示(#N/A)について
Vlookup関数を設定するとエラー(#N/A)が表示されていましたが、これは何でしょう?
これは検索値に設定しているセル「C3」に値が入力されていないので「参照する値がない」とExcelが知らせているのです。基本的にはこのエラーが表示されているからと言って関数の設定に影響がある訳でもないので、放置でも良いのですが、これは印刷結果に反映するので、やはり表示しない方がよいですね!
本題から外れてしまうので細かい解説は省きますが、要するに検索値のセル「C3」に値がない場合はVlookup関数を設定したセル「C6」には何も表示しない命令をする。値がある場合は今回設定したVlookup関数を実行して「C6」に表示する。
~の時はこれをする
それ以外はこれをする
聞いた事もあると思いますが、「IF関数」を使います。
もしセル「C3」に値がなければセル「C6」には何も表示しない
それ以外(つまり値があった場合)は「=VLOOKUP(C3,B8:C12,2,FALSE)」の実行結果を表示する。
今回はこのように設定しました。「=IF(C3=””,””,VLOOKUP(C3,B8:C12,2,FALSE))」
これでエラー表示は消えました。
改善点はないのか?
頑張って作成したのですが、これって効率よくなってますかね?
実際に使用するとフリガナはフルで入力しないといけません。これだと直接入力した方が早い気もします。
またデータ数が多い場合も検索値を探す手間もありますね!
参照元のデータに検索用の番号を割り当てる
確かに今回のようなデータだと検索値セルに入力するデータはフリガナをフルで入力する必要があります。
これでは会社名を直接手入力してもそう手間はかわりません。
ではこのようにしてはどうでしょうか!
先程のデータに青色の列を挿入して検索キーとなる番号を割り当てました。
これで数字の「5」と入力するだけで「株式会社 橋本物産」が表示されました。検索文字をひとつだけ入力すれば良いので簡単です。(関数設定の範囲と列指定を変更する必要があります。)
参照データが多い場合
次にこれを見て下さい。これは数年前に修正の依頼があったExcelファイルです。
行番号が「1333」となっています。モザイクの部分は会社名・郵便番号・住所が入力されており、同じようにVlookup関数を設定して使用されていました。
入力に必要な番号が一番左にあります。この番号がわからないといけませんが、この1300件の中から探す方が時間がかかりますよね!
これだと本当に直接入力した方が早いです。
会社であればこのぐらいの顧客数はあると思うのでこの番号を探す手間をどうにかなりませんかね?
なるべく簡単にしたいのでExcelの機能で何かよいのがないでしょうか。
例えば今回はExcelのファルタ機能を使ってみたらどうでしょう!
これだと簡単に検索ができます。
「田中」で検索すると
田中さんだけ抽出されます。左のコード番号がわかるのでそれを入力します。
これなら検索も簡単に出来るので手間もある程度は解消されます。
Excelのフィルター機能は申し訳ありませんが、調べてみて下さい。
簡単なので問題はないと思います。
あとがき
ついでに会社名だけでなく住所も表示するようにしてみました。
数字を1つ入力するだけで会社名・住所も表示されるので結構便利な感じがしませんか。
Vlookup関数はこの他にも活用方法があるので、是非調べてみて色々と試してみて下さい。
話は変わりますが、サブスク契約のOffice365には皆さんご存知のMicrosoftがものすごいお金を投資して開発した人工知能GPTが搭載される予定のようです。このAIはチャット方式で使用できるようで一般的にはChatGPT(チャット・ジー・ピー・ティー)と言われています。
当店はまだ試してみた訳ではありませんが、今回のような関数式も問い合わせるだけで答えを教えてくれるみたいですね!
しかもかなり実用的になっているようです。
10~20年後には何もかもが自動で人間の代わりに機械が行う時代がくるのでしょうね!
それでは!
ご注意
記事内容についてのご質問の受付は時間が取れませんので行っておりません。
ご自身が使用しているパソコンの状態・環境により、同じような症状であっても同じとは限りません。したがって記事に書かれている内容を行う事で必ずトラブルが解消されるとは限りません。またこの記事を参考に作業される場合は自己責任でお願いします。作業された場合での損害や障害が発生しても当店は一切責任は負いませんのでご了承下さい。
この記事の内容は投稿日時点での内容です。時期によっては仕様などの変更により、この記事のとおりではない場合もございます。
大阪府八尾市を拠点に大阪府・奈良県・京都府南部を中心にパソコン出張サポートを20年近く自営で行っています。パソコン・周辺機器のトラブルやご相談はお気軽にお問い合わせください。
詳しくはこちらから