2016年8月2日シェアツイートシェアブックマークExcelでの業務に必須といえばVLOOKUP関数。これを覚えているかどうかで、業務スピードや正確性に格段に差が出ます。便利な使い方のアイデアが広がる関数の一つですが、複雑になればメンテナンスが難しくなる関数でもあります。使い方なんて聞けないという方に、VLOOKUP関数の基本と便利な使い方のヒント、エラーへの対処方法をご紹介します。No.1のCodeCampが運営するプログラミング未経験の方のための学習メディアですCodeCampとは?(受講生体験記)「エンジニアは女性のキャリアとして魅力的」未経験からの転職体験記リモートワーク×多拠点居住の新しい生き方を実現する。範囲:検索値、戻り値を検索するセル範囲。検索値が検索する列は、左端の列です。列番号:戻り値の列番号。検索の型(省略可):近似値を含めて検索するか、検索値と完全一致するかを指定。省略した場合はTRUEになります。例としてセルA1からD7に従業員表を作成しました。G2にVLOOKUP関数を入力しています。検索値はセルF2、セル範囲はA列からD列です。セルF2に入力した検索値で、セル範囲の左端であるA列を検索します。戻り値の列番号は2,すなわちB列になります。この例の場合、「F2に入力された104でA列(ID)を検索、A列が104である行と同じ行のB列(氏名)を返す」という意味になり、結果B5の値を返しています。ワイルドカードについて検索の型がFALSEで検索値が文字列の場合、ワイルドカードを使用できます。ワイルドカードとは、任意の文字を意味する特殊文字のこと。Excelの場合は下記2つが使えます。別のシートから値を選ぶ検索値とセル範囲は離れて位置していても、別のシートを指定してもOK。他のシートにある表からデータを取得する方法は、幅広く活用できます。例としてシートscheduleを追加し、「鍵当番」表を作成しました。元のシートのセルG2に、シートscheduleのデータを取得する式を入力します。セルG2:=VLOOKUP($F$2,schedule!A:B,2,1)セルF2の値(日付)で、シートscheduleのA列~B列を検索し、セルG2に結果「102」(シートscheduleのセルB5)を戻しています。他のシートを参照するときは「シート名!セル範囲」の形で指定します。名前の定義とINDIRECT関数を使って表を切り替えるExcelでは指定した範囲に「名前」を付ける機能があります。名前の参照範囲を返すINDIRECT関数を用いて、「名前を指定して参照したい範囲を変更する」という処理ができます。指定される文字列の参照を返します。参照文字列:名前または文字列としてのセルへの参照を指定します。例として、シートscheduleに「鍵当番」(セル範囲:A2~B9)「戸締り責任者」(セル範囲:D2~E9)の2つの表を作成しました。範囲に名前を付けます。A2~B9の範囲を選び、右クリックでメニューを表示、「名前の定義」を選択します。範囲の名前を付けます。ここでは「鍵当番」と付けました。同様にもう一つのD2~E9を「戸締り責任者」と設定します。元のシートのセルH2、H3に、指定した範囲でデータを取得する式を入力します。セルH2:=VLOOKUP($F$2,INDIRECT(G2),2)セルH3:=VLOOKUP($F$2,INDIRECT(G3),2)セルG2には範囲の名前「鍵当番」を入力しています。従って、F2に入力された日付を元に、G2に入力した名前の範囲でデータを取得するという処理になります。セルH3も同様にセルG3に入力された「戸締り責任者」の範囲で検索値を検索しています。値が見つからないときやその他エラーが起こる場合は、空白を表示するよう処理を加えるとスマートに見えます。エラー処理にはIFERROR関数を使います。数式の結果(「値」)がエラーの場合は「エラーの場合の値」を返し、それ以外の場合は数式の結果を返します。セルH3:=IFERROR(VLOOKUP($F$2,INDIRECT(G2),2,0),"")シートscheduleに2016/6/10のデータはないので、セルH3はN/Aエラーとなります。空白が表示されました。家事も仕事もプログラミングも。関数に慣れるまではエラーは頻繁に起こります。エラーが起きた場合のヒントを記載します。表示される値が見つからなかった場合に表示されます。検索の型によりエラーの意味が若干異なります。検索値の値が、範囲の左端列にある最小値よりも小さい。表示される列番号が範囲の列の数を超えている場合。A列とB列を選択しているのに列番号を3とすると、このエラーとなります。表示される引数に、必要な引用符(")がありません。全角文字にもかかわらず引用符がない場合です。その1検索の型がTRUEで、セル範囲の左端列が整列していない場合、想定と異なる値が返される可能性があります。その2検索値が数値や日付型で、かつセル範囲の左端列が文字列となっている場合、想定と異なる値が返される可能性があります。数値や日付を文字列として保存しないようにしましょう。その3セルの結合がされていると、正しい値を返しません。今一度チェックしましょう。その4想定と異なるも近い値が返ってきた場合、検索の型の指定が不適切なのかもしれません。検索の型がTRUEまたは省略する場合において、検索値が範囲の左端列にある最小値以上の場合、近似値が返されます。完全に一致する値を返したい場合はFALSEに設定してください。CodeCamp提供のWebマスターコース当メディアを運営しているCodeCampではWebマスターコースを現役エンジニアのマンツーマンレッスンという形で提供しています。実際にWebサービスをを開発するのでポートフォリオとしても使用できる無料レッスン受講後の申し込みで10,000円クーポンをプレゼントしています!ぜひお試しください。\Webサイト担当者としてのスキルが身に付く/CodeCampの無料体験はこちら▶︎無料体験レッスンの申し込みはスマフォで1分で完了!おわりにVLOOKUP関数は使いこなすまで少々時間がかかるかもしれません。データ分析や工数見積もり、各種書類作成など、かなり利用頻度が高く、あらゆる分野に応用が効き便利な関数です。業務効率化に、ぜひ覚えてお役立てくださいね。家事も仕事もプログラミングも。【2020年版】社会人でも通いやすいプログラミング教室5選|選び方の基準も解説プログラミング学習プログラミングスクール・サービス「エンジニアは女性のキャリアとして魅力的」モノづくり好き理系女子がWebエンジニアへ転職するまで受講生インタビュープログラミング未経験で介護師からエンジニアへ。家事も仕事もプログラミングも。受講生インタビュープログラミング習得後、フリーランスに転身。受講生インタビューフリーランス塾講師からエンジニアへ26才で転職。先生の支えがあって成長できました。学習ガイドtwitterLINE。