目次
業務で使用する率の高い関数といえばVLOOKUP関数ですね。コードや番号を元に参照用の表から該当するデータを検索して表示することができるとても便利な関数です。ですが、使用していると思わぬところでエラーが出てしまい修正に時間がかかったり、ということも多々あります。そこで今回は、そのようなエラーをなるべく回避し効率よく使用する方法をご紹介します。
表の中から商品コードに対応する商品名や単価を取り出し売上明細に表示させていく例を見てみましょう。
数式の指定は以下のようになります。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
検索値 | D4(商品コード ) |
範囲 | $J$4:$L$10 |
列番号 | 2 |
検索方法 | 0(完全一致) |
このようにまずそれぞれの項目の先頭のセルに数式を作ってドラッグして下方向へコピーしてそれぞれの列ごとに作成していきます。
ですが、これでは項目が多くある場合は時間がかかってしまいますし、参照表に追加項目が加えられたときに、それらが反映されるように修正をするという作業が発生します。
それでは参照表に修正があった場合でも自動的に修正されるようにしてみましょう。
また、コピーも横方向へのコピーもスムーズにできるようにしてみたいと思います。
①参照表となる商品一覧をテーブルに変換します。その際に、テーブル名も併せてつけておきましょう。今回は『テーブル1』としました。
②範囲の部分がテーブルに変更されたので、式の中の範囲の部分が『テーブル1[#すべて]』になりました。これで範囲は常に『テーブル1』が対象となるので、増減があっても自動的に認識してくれるようになります。
参照表に『B-1003』を追加してみると、自動的に範囲が広がり、結果も表示されています。
参照表へ列を挿入すると列番号がずれてしまい違う値が表示されたり、列数が多いものは数えるのに時間がかかったりすることがあります。
それを一気に解決してくれるのがMATCH関数です。
MATCH関数は指定した範囲内でデータを検索して、一致した値に対する相対的な位置を求めることができる関数です。
数式の指定は以下のようになります。
=MATCH(検索値,検査範囲,照合の種類)
検索値 | $3(項目名:横方向に数式をコピーした際にも対応できるように複合参照) |
検索範囲 | テーブル1[#見出し](テーブルの見出し部分) |
照合の種類 | 0(完全一致) |
ではMATCH関数を使用して列番号を取得してみましょう。
それぞれの項目名の位置を参照表となるテーブルの見出しから取得しており、列番号と一致しています。この取得した数値を列番号として使用するのです。
それでは、列番号の部分をMATCH関数に置き換えてみましょう。
MATCH関数で参照表の見出しの中から項目名の相対的な位置を取得し、その番号を列番号に置き換えることによって列の挿入などによって列番号に変化があったとしても修正を加えずに取り出すことができるようになるのです。
また、この際にVLOOKUP関数の検索値も複合参照($D4)にしておくと数式をコピーした際に修正を加えなくても自動的に商品コードを検索してくれるようになるので見出しごとに数式を入力しなくても簡単に別の見出しにも数式を入力することができるようになります。
完成した数式は以下になります。
=VLOOKUP($D4,テーブル1[#すべて],MATCH(E$3,テーブル1[#見出し],0),0)
これで、完成です。最初にこのように作成しておくと、使用している最中に修正等が入った場合でも自動的に検索範囲や列番号を取得してくれるので効率よくこちらの表を使用していくことができるようになります。
このように、Excelの機能であるテーブル、関数を追加することによってエラーを回避できるようになりました。ひとつひとつの機能は基本的な機能や関数でも組み合わせることによってより効率的に作業を進めていくことができます。みなさんも、いろんな機能を組み合わせてどんどん効率よく業務に取り組んでください。
この記事の著者:野元 由紀
東京パソコンアカデミーでExcelを基本から学びたい方は「Excel講座」がおすすめです。
Copyright © 2019 by KOHGAKUSHA Co. Ltd All rights reserved.