インクペディア vlookup関数でエラーが出た時、確認したい「落とし穴」 目次1 ・「 #REF! 」「 #N/A! 」といったエラー表示、もしくは予期しない演算結果が(汗)2 ・「最後の引数」を設定していますか?3 ・リストを「昇順」で並べ替えていますか?4 ・「半角」「全角」、「スペース」などの表記ゆれに気を付ける5 ・「数字」を検索したい場合は、vlookupよりsumif関数の方が便利な場合も6 ・関数の使い方は、「うまい人」の技を盗もう! ・「 #REF! 」「 #N/A! 」といったエラー表示、もしくは予期しない演算結果が(汗) vlookup関数とは、例えて言うなら「出席番号12番って、誰だっけ」という検索作業をやってくれる、とても便利なエクセルの計算式です。また、「エクセルの関数の初歩的なスキルがあるかどうか」を確認するために、よく引き合いに出されます。 ただ、「関数の初歩」と言われる割には「落とし穴」が多いことでも知られています。 「#REF!」「#N/A!」などのエラー表示が出たり、正しくない「答え」が表示されてしまった場合のチェックポイントをいくつかご紹介いたします。 今回は、二つの表(テーブル)から、「商品名」と「在庫数」を引っ張ってくる、という例でご説明します ・「最後の引数」を設定していますか? vlookup関数のウィザードを開くと、入力欄が4つ出てきます。 一番下の「検索方法」は、実は空っぽの状態で「OK」ボタンを押しても、それっぽい計算結果が表示されてしまいます。 実はこれ、「近似値」を含めて検索してしまっていますので、例えば今回の例で言うと、「似たような型番の商品の商品名」が検索されてしまうのです。 この「近似値を含めた検索」は、役に立つ場合もありますが、vlookupを実務で使用するほとんどの場合、「近似値」ではなく「完全に一致する値」での検索結果が必要ですよね。 「完全に一致する値」で検索する場合、「検索結果」には「FALSE」もしくは「0」と入力します。「FALSE」か「ゼロ」のどちらを入力するかはお好みですが、手数が少ない「0」を使う方が多いような気がします。 この「最後の引数の入れ忘れ」は、ウィザードを使わずに関数を手打ちで入力するようになると、なまじエラー表示が出ないためにうっかり入れ忘れることがあります。慣れてきたころが危ないので、気を付けましょう。 ・リストを「昇順」で並べ替えていますか? vlookup関数のウィザードの「検索値」「範囲」「列番号」を入れる際、毎回「テーブルは昇順で並び替えておく必要があります」というヒントが表示されます。 「テーブル」というのは、「検索されるリスト」のことです。 今回の例で言うと、「商品型番」「商品名」のリスト全体を、検索のキーとなる「商品型番」で並び替えをしておく必要があります。 「並び替え」は、テーブル全体を掴んだ状態で、「データ」の「並び替え」ボタンを押すと実行できます。 実際のところ、「昇順で並び替え」を忘れても正しい検索結果が表示されることも多いのですが、エラーを未然に防ぐために一応やっておいた方がいいでしょう。 ・「半角」「全角」、「スペース」などの表記ゆれに気を付ける 何らかのシステムから抽出したデータであれば、表記ゆれでエラーが出ることは少ないですが、手作業で入力したリストで関数を組むと、表記ゆれによるエラーはどうしても発生します。 特に、フォントによっては「-(ハイフン)」や数字の「全角」「半角」の区別が難しいことも多いので、エラーの原因になります。 また、文字列の後ろに意図せずに入力してしまった「スペース」は目に見えないので、事前に発見することは難しいものです。 関数で使用するリストが「手入力」の場合、「表記ゆれがあるもの」と想定して、「全角」を「半角」に揃える「ASC関数」を使用したり、「置換」の機能で「半角スペース」「全角スペース」をリストから削除したりしておくと、エラーが出にくくなります。 ・「数字」を検索したい場合は、vlookupよりsumif関数の方が便利な場合も 「sumif(サムイフ)関数」は、条件に合致する数字を合計するための関数です。 「数字」専用の関数なので、今回の例で言うと、「商品名」を検索・表示するためには使用できませんが、「在庫数」を検索する場合には使用できます。 vlookup関数は、最初に「検索条件」を指定し、次に検索範囲を指定しますが、sumif関数は最初に「検索範囲」を指定し、次に「検索条件」を指定します。入力の順番がちょっと違いますので、ちょっと慣れる必要があるかもしれません。 特徴としては、sumif関数はvlookupのように1対1のデータでなくても、検索範囲内で合致する数字は全て集計してきてくれます。例えばPOSのジャーナルデータをそのままエクセルに落としたような、レコードの状態から「合計」を作成する関数です。 逆に言うと、テーブルに重複データがあった場合、vlookupは一行分のデータしか読み込みませんが、sumifだと「合算」してしまいます。 この特徴を理解した上で使い分けましょう。 ちなみに、上の表の商品型番と商品名は全て実在しません。フェイクのデータです(作るのが大変でした)。 ・関数の使い方は、「うまい人」の技を盗もう! オールマイティなvlookup関数、数字の集計に大活躍のsumif関数、「データの重複」を探すのにも便利なcountif関数、文字列の比較をするexact関数、このへんまで一通り使えるようになると、無数にある他の関数も使いこなせるようになります。 一方で、エラー表示を「-」ときれいに表示させたり、日付をからめた計算式を組んだり、といった知恵は「うまい人」が作ったエクセルをよく観察して盗むのが近道です。 もし、関数の計算式のアタマに、「=(イコール)」ではなく、「+(プラス)」を使うクセがある人がいたら、それはエクセルが普及する前の「ロータス」の時代から、表計算ソフトを使用している大ベテランですので、質問攻めにする価値があるかと思います。 ご参考になれば幸いです。 もちろん、出来上がった帳票は、「インクのチップス」のインク・トナーを使ってたくさん印刷してください! (H) 結局どのメーカーのプリンターを買うべきか【2018年夏版】 重合トナーと粉砕トナーの違いって何?【トナーカートリッジ】