Accessを使い始めるとDlookup関数とExcelで使用するVLookup及びHLookupとの違いに混乱することがあります。
ここでは、各Lookup関数の使い方を紹介します。是非備忘録として活用してください。
Vlookup関数について
ExcelのVlookup関数は、行単位、すなわち表の縦方向に値が保存されている場合に、抽出条件に一致した行のある列の値を取得する関数です。元となる表から値を取得するため、入力間違い等のヒューマンエラーを防ぐことができます。
Vlookup関数の基本構文は次のとおりです。
Vlookup(検索値, 検索値を含む範囲, 戻り値を含む範囲内の列番号, 近似一致 (TRUE)または完全一致 (FALSE))
ここで、Vlookup関数を用いる際の注意点は以下になります。
Vlookup関数が正常に機能するために、検索値は範囲の最初の列に必ず位置している必要があることに注意してください。例えば、検索値がセル「C2」にある場合、範囲は「C列」から始まる必要があります。
戻り値は、例えば、範囲として「B2:D11」を指定する場合は、B列を最初の列としてカウントし、C列を2番目の列としてカウントする必要があります。
必要に応じて、戻り値として近似一致を検索する場合は「TRUE」、完全一致を検索する場合は「FALSE」を指定できます。 何も指定しない場合、既定値は「TRUE」、つまり近似一致を常に返します。
具体的な使用方法を見ていきましょう。まずは、図1をご覧ください。
図1に示すように、「G2:I9」の範囲にデータ表を作成しています。この表から、条件に応じた行の値を取得することがVlookup関数の使用方法となります。
上述のとおり、Vlookup関数では、検索値、範囲、列番号、検索方法の4つの引数が存在します。検索値は、例えば図1で示すように「D2」セルのような値となります。
範囲は、データ表となるため図1の場合、「G2:I9」になります。
列番号はVlookup関数の結果を返す列数を示します。例えば、「2」にすると「項目」の結果が返ってきますし、「3」にすると「価格」の結果が返ってきます。
実際にVlookup関数を実装した結果は、図1の「D3セル」になり、「ノート」と返されていることが分かります。このとき、D3セルには「=VLOOKUP(D2, G2:I9, 2)」と入力しています。
Hlookup関数について
ExcelのHlookup関数は、列単位、すなわち表の横方向に値が保存されている場合に、抽出条件に一致した列のある行の値を取得する関数です。元となる表から値を取得するため、こちらも入力間違い等のヒューマンエラーを防ぐことができます。
Hlookup関数の基本構文は次のとおりです。
Hlookup(検索値, 検索値を含む範囲, 戻り値を含む範囲内の行番号, 近似一致 (TRUE)または完全一致 (FALSE))
ここで、Hlookup関数を用いる際の注意点は以下になります。
Hlookup関数が正常に機能するために、検索値は範囲の最初の行に必ず位置している必要があることに注意してください。例えば、検索値がセル「C2」にある場合、範囲は「2行目」から始まる必要があります。
戻り値は、例えば、範囲として「B2:D11」を指定する場合は、2行目を最初の行としてカウントし、3行目を2番目の行としてカウントする必要があります。
必要に応じて、戻り値として近似一致を検索する場合は「TRUE」、完全一致を検索する場合は「FALSE」を指定できます。 何も指定しない場合、既定値は「TRUE」、つまり近似一致を常に返します。
具体的な使用方法を見ていきましょう。図2をご覧ください。
図2に示すように、「G2:N4」の範囲にデータ表を作成しています。この表から、条件に応じた列の値を取得することがHlookup関数の使用方法となります。
上述のとおり、Hlookup関数では、検索値、範囲、行番号、検索方法の4つの引数が存在します。検索値は、例えば図2で示すように「D2」セルのような値となります。
範囲は、データ表となるため図2の場合、「G2:N4」になります。
行番号はHlookup関数の結果を返す行数を示します。例えば、「2」にすると「項目」の結果が返ってきますし、「3」にすると「価格」の結果が返ってきます。
実際にHlookup関数を実装した結果は、図2の「D3セル」になり、「定規」と返されていることが分かります。このとき、D3セルには「=HLOOKUP(D2, G2:N4, 2)」と入力しています。
DLookup関数について
ここからは、Accessで用いるLookup関数として「Dlookup関数」について紹介します。
Dlookup関数については以下の記事でも紹介していますが、改めてその使い方を説明します。
Dlookup関数の構文は次のようになります。
DLookup(値を返すフィールド名, レコードセット(テーブルやクエリ等の名前) [, 条件] )
DLookup関数は、「条件」で指定された情報に基づく、単一フィールド値を返します。 「条件」は省略可能な引数ですが、指定しない場合にDLookup関数は定義域内のランダム値を返します。
また、「条件」を満たすレコードがない場合、または対象となるレコードセットにレコードが含まれていない場合、DLookup関数は「Null」を返します。
複数のフィールドが「条件」を満たす場合、DLookup関数は最初に条件を満たしたものを返すため、DLookup関数が返すフィールド値が一意となる条件を指定する必要があります。
例えば、Dlookup関数の記載例としては以下のようなものが挙げられます。
Dlookup("品名", "T_品目マスタ", "型番 = 'EN-001'")
この場合、「T_品目マスタ」テーブルにおいて、「型番」フィールドに「EN-001」という値が登録されているレコードの「品名」フィールドの値を返すことになります。
「T_品目マスタ」テーブルに下表のようなレコードが入力されているとした場合に、先のDlookup関数の記載内容で返される結果は「えんぴつ(HB)」になります。
表 Dlookup関数サンプルデータ
型番 | 品名 | 価格 |
EN-001 | えんぴつ(HB) | ¥100 |
KE-001 | 消しゴム | ¥150 |
EN-002 | えんぴつ(B) | ¥100 |
JY-001 | 定規 | ¥180 |
なお、Dlookup関数では値を返すフィールド、条件に記載するフィールドを明記するため、テーブルの列の順番に依存はしません。
まとめ
今回は、備忘録的にAccessで用いるDlookup関数、Excelで用いるVlookup関数とHlookup関数について紹介しました。
それぞれのLookup関数をどのように使うんだっけ?となった際には、本記事をご参考にしていただければと思います。
Excelの関数やVBA、Accessについて勉強をしようと思われる方には以下の書籍が参考になりますので、お手元に用意されてみてはいかがでしょうか。
スポンサーリンク
今の時代、VBAに限らずプログラミングができるということは、当然のスキルとして広く社会で認知されています。いまだプログラミングが十分にできないという人は、今からでも遅くありません。できるだけ早く基本的なプログラミングスキルを習得することをお勧めします。
以下で紹介している書籍を参考に、実践的なプログラミング・データベース・サーバ、データ分析・機械学習など、システムエンジニアや今後を担うDX人材に必要とされているスキル獲得に向けて基礎から学んでいくことが大切です。
最初につまずきがちな点も、書籍を読みながら試行錯誤して課題解決していくことで、自身のスキルアップを目指すことができます。思い立ったが吉日、是非業務効率の改善に向けてプログラミング学習に勤しんでください!
スポンサーリンク
コメント