これが既定の設定です。見つからない場合は、次の小さなアイテムが返されます。見つからない場合は、次の大きなアイテムが返されます。[検索モード]:使用する検索モードを指定します。先頭の項目から検索を実行します。これが既定の設定です。末尾の項目から逆方向に検索を実行します。昇順で並べ替えられた検索範囲を使用してバイナリ検索を実行します。並べ替えられていない場合、無効な結果が返されます。降順で並べ替えられた検索範囲を使用してバイナリ検索を実行します。並べ替えられていない場合、無効な結果が返されます。参考:https://support.microsoft.com/ja-jp/office/xlookup-%E9%96%A2%E6%95%B0-b7fd680e-6d10-43e6-84f9-88eae8bf5929XLOOKUP関数を実装するXLOOKUP関数を実装してみましょう。I2セルを選択し、以下を入力します。=XLOOKUP(G2,A$2:A$7,B$2:B$7,"該当なし")まずは一つの値が取得できました。次に複数列の値を取得できるようにしましょう。I2セルへ以下を入力します。=XLOOKUP(G2,A$2:A$7,B$2:D$7,"該当なし")戻り範囲の指定で複数列を含めるとによりその列の値を取得し、同時に隣接セルへ結果を出力することができます。表の最下部まで数式をドラッグしましょう。はい、複数列の値が取得できましたね。タカヒロXLOOKUP関数を隣接セルに設定しなくてもよいのは手間が省けてうれしいですね。つづいてVBAでXLOOKUP関数と同じ結果を取得していきましょう。隣接列ではない単体の列指定で複数列の値を取得していきましょう!XLOOKUP関数と同じ結果を出力するVBAこれまでXLOOKUP関数にて行ってきた処理をXLOOKUP関数を使わずにVBAだけで処理をしていきます。XLOOKUP関数と同様の結果である、1つの検索値に対して1つの検索結果の値を取得していき、隣接する複数列の値も同時にシートへ出力していきます。フォーマットは関数と同じものを利用します。出力先を空欄にしましょう。コードVBAは以下の通りです。'検索値の範囲を指定します。'検索結果出力先を指定します。※2つ以上の場合は列を変更してください。隣り合わせの列のみ指定できます。'検索対象セルを範囲指定します。1列目が主キーになるようにします。'検索結果に出力する複数の列番号を指定します。'値のみをクリアします。'検索結果用の配列を作成します。'配列に格納された値すべてを対象に処理します。'検索キーと表の主キーがマッチしているか確認します。'検索結果を配列へ格納します。同時に指定列番号分の値も格納します。'マッチしない場合代わりの値を格納します。'配列に格納した検索結果を指定Rengeへ出力します。SubVBAを設定するVBAの設定をしましょう。検索値の範囲を指定します。サンプルでは売上表の「売れた商品列」を指定しています。Range(“G2:G12”)検索結果出力先を指定します。※2つ以上の場合は列を変更してください。隣り合わせの列のみ指定できます。“I2:K12”検索対象セルを範囲指定します。サンプルでは商品マスタの範囲をして指定ます。1列目が主キーになるようにします。Range(“A2:D7”)検索結果に出力する複数の列番号を指定します。サンプルでは商品マスタのB,C,D列を指定したことになります。4)VBAを実行するVBAを実行してみましょう。はい、XLOOKUP関数と同様の結果が出力されていますね!戻り値の列の内、隣接しない列番号を指定する続いて、戻り値の列の内、隣接しない列番号を指定して、列の値をしシートへ出力してみます。列番号を指定し絞り込んでみます。VBAを設定する検索結果に出力する複数の列番号を指定します。Array(2,4)タカヒロ2,3,4から3を抜かした形ですね。検索値の範囲を指定します。Range(“G2:G12”)検索結果出力先を指定します。※2つ以上の場合は列を変更してください。隣り合わせの列のみ指定できます。“I2:K12”検索対象セルを範囲指定します。1列目が主キーになるようにします。Range(“A2:D7”)検索結果に出力する複数の列番号を指定します。4)値のみをクリアします。Range(strSerchResultsRange).ClearContents検索結果用の配列を作成します。Range(strSerchResultsRange)配列に格納された値すべてを対象に処理します。1)検索キーと表の主キーがマッチしているか確認します。Then検索結果を配列へ格納します。同時に指定列番号分の値も格納します。arrColNums(k))マッチしない場合代わりの値を格納します。“該当なし”配列に格納した検索結果を指定Rengeへ出力します。実装手順は以下の通りです。今回はExcel側にこのVBAを実装します。1Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。ショートカットキー「Alt」+「F11」でもOKです。2標準モジュールを追加します。モジュール」を選択します。3右ペインのウインドウに上記のVBAを入力します。VBAを実行するでは早速VBAの実行をしてみましょう。1「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。2処理がされたことが確認できれば完了です。※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。さいごにいかがでしょうか。今回は、VLOOKUP関数で複数列の値を一度に抽出する方法とVBAで同じ結果を得る方法についてまとめました。他にも便利な方法がありますので、よろしければご参照頂ければと思います。この記事の関連キーワードこちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。vlookup「vlookup」の関連記事こちらの記事の内容「vlookup」に関連する記事一覧です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。関数vlookup【OutlookVBA】GetNamespaceメソッドのフォルダの種類と引数はなに?サンプルVBAで解説!【VBA】OutlookのメモをExcelへエクスポートする方法!期間指定もあり!RECOMMENDこちらの記事も人気です。380「プロパティの値が不正です。