トピック
ExcelのVLOOKUP関数にサヨナラを ~圧倒的に便利な「XLOOKUP関数」をOffice 2021で利用しよう!
検索範囲は指定が簡単に、スピルで複数列のデータを取り出し可能、横方向の表にも対応
- 提供:
- 日本マイクロソフト株式会社
2021年10月25日 06:55
「Microsoft Office」の最新版「Office 2021」が2021年10月5日に発売されました。サブスクリプション版の「Microsoft 365」に搭載された際も大きな話題となったXLOOKUP関数が、ようやく買い切り版の「Microsoft Office」にも搭載されています。
新機能の概要は前回の記事でまとめましたが、今回は「Office 2021」で最も機能強化された「Excel」の中でも注目の新関数「XLOOKUP」の使い方を紹介したいと思います。
XLOOKUP関数の動作は「データ範囲から指定した値を検索し、対応する行位置の値を返す」です。そうです、業務で必須とも言われるVLOOKUP関数の機能をカバーする新関数なのです。なお、縦方向(Vertical)だけでなく、横方向(Horizontal)に検索できるので、HLOOKUP関数の機能もカバーしています。
指定する引数がわかりやすく、検索値の対象範囲は左端でなくてもOK、隣接するセルに複数の値を配置可能な「スピル」にも対応しています。今後、注目必至のXLOOKUP関数の動作を確認してみましょう。
なお、今「Office 2021」を購入すると、特典として小冊子『できる Office 2021 新機能ガイド』がもらえます(ただし、配布冊子がなくなり次第終了。詳細な配布方法は販売店によって異なります)。XLOOKUP関数をはじめとする便利になった新機能を使いこなし、より効率よく作業する具体的な手順を詳しく紹介しているので、要チェックです。
▼引数がわかりやすい
・VLOOKUP関数は[列番号]の指定がややこしい
・XLOOKUP関数なら範囲を直接指定できるので簡単
・XLOOKUP関数の引数が意味するところ
▼数式が記述しやすくメンテナンスも楽
・XLOOKUP関数なら[検索範囲]が左端になくてもOK
・「#VALUE!」エラーが出た場合はセル範囲の高さをチェック
・「#VALUE!」エラーを避ける方法
▼複数のセルへまとめてデータを取得できる、「スピル」が便利
▼横方向の表でも同じように扱える
▼「見つからない」場合もIF関数やIFERROR関数が不要に
・[検索値]が存在しない場合に「該当データなし」と表示させる
▼5つめと6つめの引数はどう使う?
・[一致モード]はどの値を一致とするかを指定可能
・[検索モード]で検索する方向を変更
▼他にも活用方法はさまざま
「Office 2021」関連の注目記事一覧
- 買い切り版「Office 2021」がついに登場! テレワーク向けの快適機能や、手軽に使える無料素材、最新の「XLOOKUP」関数など大幅強化
- ExcelのVLOOKUP関数にサヨナラを ~圧倒的に便利な「XLOOKUP関数」をOffice 2021で利用しよう!
- 「Excel」のLET関数は“複雑な数式”を“人が読める式”に変えられる! 「Office 2021」新搭載の謎関数を攻略
- Excel 2021では、「並び替えミスで表を破壊」が防げる新関数が!フィルター/ソート/抽出の新関数はこう使おう!
- 最新の「Outlook」は「探す」ストレスなし! 常にメール・予定・機能を賢く検索可能
- パワポはGIFアニメ作成ツールとしても有能! 万能ツール「PowerPoint」を使い倒そう
※本稿の内容はプレビュー版である「Office LTSC Professional Plus 2021 Preview」で動作確認しています。
引数がわかりやすい
VLOOKUP関数は[列番号]の指定がややこしい
VLOOKUP関数で悩ましいのが「引数(ひきすう)」の指定方法です。特に取得対象を指定する[列番号]は、数え間違えのほか、参照する表が変更されると[列番号]をその都度修正する必要がありました。
XLOOKUP関数なら範囲を直接指定できるので簡単
その点、XLOOKUP関数は、検索の対象範囲と対応する値を取得する対象範囲をそれぞれセル範囲で指定可能です。まずはXLOOKUP関数の構文を見てみましょう。
XLOOKUP関数の引数が意味するところ
XLOOKUP関数の引数は6つありますが、必須の引数は最初の3つ。4つめ以降の引数は省略可能です。それぞれの引数には以下の意味があります。
- [検索値]:検索する値。直接またはセル範囲を指定する
- [検索範囲]:検索値を検索する対象のセル範囲
- [戻り範囲]:検索値に対応する値を取得するセル範囲
- [見つからない場合]:検索値が見つからない場合、何を表示するかを指定する(任意)
- [一致モード]:[検索値]と一致の判定基準を指定する。0、または省略で「完全一致」(任意)※
- [検索モード]:検索方向を指定する。1、または省略で先頭から末尾(任意)※
※ オプション値については後述
一般的な用途なら、最初の3つの引数[検索値]、[検索範囲]、[戻り範囲]のみの指定で問題ありません。具体例で動きを見てみましょう。
数式が記述しやすくメンテナンスも楽
XLOOKUP関数なら[検索範囲]が左端になくてもOK
[検索値]に指定するのは検索したい値です。引数の名前そのままですね。[検索範囲]に指定するのは[検索値]を検索する対象のセル範囲。VLOOKUP関数では検索対象のセル範囲を「左端」に固定しておく必要がありましたが、XLOOKUP関数では[検索範囲]は左端でなくてもOK。セル範囲で直接指定できます。
以下の例では、氏名を[検索値]として、社員番号を取得します。XLOOKUP関数なら、「氏名」列より左側にある「社員番号」も検索可能です。
VLOOKUP関数のように[列番号]を数える必要がなく、セル範囲で指定するので、数式がわかりやすいのではないでしょうか。また、参照する表が変更されたとしても、XLOOKUP関数の数式は変化します。XLOOKUP関数で記述しておけば、引き継ぎファイルをメンテナンスする手間が省けますね。
「#VALUE!」エラーが出た場合はセル範囲の高さをチェック
なお、[検索範囲]と[戻り範囲]のセル範囲の高さが異なるとエラーとなることに注意してください。試しに先ほど入力した数式を「=XLOOKUP(E2,B2:B31,A1:A31)」と変更すると、「#VALUE!」エラーとなります。
複数のセルへまとめてデータを取得できる、「スピル」が便利
今度は「商品No」を[検索値]として、対応する値を取得してみます。「スピル」の機能に対応するXLOOKUP関数なら、対応する値をまとめて取得可能です。ただし、取得できる列は飛び飛びでなく、隣接して連続していることが条件です。
また、XLOOKUP関数の結果の範囲は自動的に拡張されます。VLOOKUP関数のように、オートフィルで数式をコピーした後、[列番号]を修正し直す必要はありません。ひとつのセルにひとつの数式を入力するだけです。
横方向の表でも同じように扱える
横方向の表でも同様。以下は、左端の列に見出しがある表に対して、HLOOKUP関数の代わりにXLOOKUP関数を利用した例です。セルB6に「商品No」を入力しておき、セルB7に「=XLOOKUP(B6,B1:K1,B2:K4)」と入力します。さらに、スピルの機能によって該当するデータをまとめて取得可能です。
「見つからない」場合もIF関数やIFERROR関数が不要に
4つめの引数[見つからない場合]を指定すると、[検索値]が見つからなかった時に任意のメッセージを表示できます。省略した場合は、#N/Aエラーが表示されます。
VLOOKUP関数でエラーを非表示にするにはIF関数やIFERROR関数を組み合わせますが、XLOOKUP関数では「""」と指定するだけで空白を表示できるのです。業務でよくある使い方処理なので重宝しますね。
5つめと6つめの引数はどう使う?
5つめの引数[一致モード]と6つめの引数[検索モード]は、一般的に省略することが多いでしょう。
[一致モード]はどの値を一致とするかを指定可能
[一致モード]は[検索値]に対して、どの値を一致とするかの判定基準を指定します。オプション値は以下の通り。省略した場合は、0(完全一致)となります。
- 0:完全一致
- -1:完全一致、または次に小さい項目が一致する
- 1:完全一致、または次に大きい項目が一致する
- 2:ワイルドカードの文字と一致する
「-1」と「1」は、近似一致として動作します。例えば、予算表などで指定した値を超えない、または超える値を一致と見なす時に利用します。「2」は「*宿」といったワイルドカードを含む文字列を[検索値]に指定し、「*宿」であれば、「新宿」や「原宿」が検索されます。参照する表の内容をある程度把握しているなら利用価値があるかもしれません。
[検索モード]で検索する方向を変更
[検索モード]は[検索範囲]の検索方向を指定します。省略した場合は、1(先頭から末尾)となります。オプション値は以下の通りです。
- 1:先頭から末尾
- -1:末尾から先頭
- 2:バイナリ検索(昇順で並べ替え)
- -2:バイナリ検索(降順で並べ替え)
[検索値]と一致する値が複数存在し、表の下の項目を一致させる時に「-1」とします。販売データなどでは検索の方向を指定することがあるかもしれません。「2」「-2」は高速検索する場合に利用します。このオプションを利用するには、あらかじめ[検索範囲]を昇順、または降順で並べ替えておく必要があります。数万件以上のデータがあるなら利用価値はあります。
他にも活用方法はさまざま
このほか、文字列を連結した検索、XLOOKUP関数のネスト、XLOOKUP関数の結果を別の関数で利用など、XLOOKUP関数にはさまざまな活用方法があります。まずは基本的な動作を理解しておきましょう。
この機会にぜひ「Office 2021」を手に入れ、XLOOKUP関数の簡単かつ強力な機能を体験してください。