1. VLOOKUPで毎回引数を思い出すのが面倒
「商品コードに対応する商品名を、別の表から持ってきたい」。仕事でよくある作業ですが、VLOOKUPを書こうとすると、手が止まりませんか。
検索する値、表の範囲、何列目を返すか、最後はFALSEだったか。数式に渡す情報の順番を毎回調べるのは面倒です。
Excel Copilotを使うと、こうした作業を日本語で説明して、数式の作成を手伝ってもらえます。VLOOKUPを完全に覚えなくてよくなるわけではありませんが、書き方を調べる負担は減らせます。今回は、XLOOKUPを例に、依頼から確認まで進めましょう。
2. Copilotなら日本語で依頼できる
ExcelのCopilotペインに「どのコードを使い、どの表から何を取得したいか」を入力します。Microsoftの公式案内でも、別シートの在庫数を検索し、XLOOKUPなどの数式で結果の列を作る使い方が紹介されています。
ここで使うのは、Copilotに数式作成を依頼する機能です。セルにAIへの指示を書く方法ではありません。COPILOT関数は2026年9月14日以降利用できなくなっており、MicrosoftはCopilotペインの利用を案内しています。この記事でも同関数は使用しません。
利用できる機能は、Microsoft 365の契約、アカウント、組織の設定、Excelの環境によって異なります。Copilotが表示されない場合は、購入を急がず、まず既存契約で使えるか管理者や公式の開始ガイドで確認してください。
3. サンプルデータで「商品コードから取得」を試す
練習用のブックに、次の3シートを作ります。いずれも1行目を見出し、2行目からデータとしてください。
商品マスタ:商品名と単価の一覧
「商品マスタ」シートのA1から入力します。単価は円です。
| 商品コード(A列) | 商品名(B列) | 単価(C列) |
|---|---|---|
| P001 | ノート | 180 |
| P002 | ボールペン | 120 |
| P003 | クリアファイル | 80 |
在庫:商品ごとの在庫数
「在庫」シートのA1から入力します。単位は個です。
| 商品コード(A列) | 在庫数(B列) |
|---|---|
| P001 | 35 |
| P002 | 0 |
| P003 | 120 |
注文一覧:結果を表示する表
シート名を「注文一覧」にし、A1から見出しと商品コードを入力します。B〜D列のデータ部分は空欄にしておきます。
| 商品コード(A列) | 商品名(B列) | 単価(C列) | 在庫数(D列) |
|---|---|---|---|
| P002 | |||
| P001 | |||
| P999 |
「P002ならボールペン・120円・0個」「P001ならノート・180円・35個」が正解です。P999は登録していないので、「該当なし」と表示させます。在庫0と、商品が見つからない状態を区別するためです。
4. Copilotへ入力するプロンプト例
ブックを開き、注文一覧の表内を選んで、ExcelのCopilotボタンからペインを開きます。表示されるモードや適用ボタンは環境によって異なります。数式を提案してもらい、内容を確認してからセルへ反映しましょう。元のブックは保存しましょう。
まずは、次の短い依頼から始められます。
商品コードを使って商品マスタから商品名を取得する列を作ってください
意図が伝わりにくい場合は、シートと列の場所を補います。同僚へ作業を頼むような文章で大丈夫です。
注文一覧シートのA列に商品コードがあります。
商品マスタシートのA列が商品コード、B列が商品名です。
注文一覧のB2に入れるXLOOKUP数式を提案してください。
完全一致で検索し、見つからない場合は「該当なし」と表示してください。
数式の意味も説明してください。
在庫数も、同じ考え方で依頼できます。
商品コードを使って在庫シートから在庫数を取得してください
続けて「注文一覧のA列と在庫のA列を照合し、在庫のB列を注文一覧のD列へ返してください。未登録は『該当なし』、在庫0は0のままに」と補いましょう。
単価は「商品マスタのC列から単価を取得し、注文一覧のC列に表示するXLOOKUP数式を提案してください」と依頼します。
5. 生成されるXLOOKUP数式の例
以下は説明用の数式で、実測例ではありません。Copilotからはテーブル名や列名を使う別の式が提案されることもあります。
商品名を取得する:注文一覧のB2
=XLOOKUP(A2,商品マスタ!A:A,商品マスタ!B:B,"該当なし")
読み方は「A2のコードを、商品マスタのA列で探し、同じ行のB列の商品名を返す。見つからなければ『該当なし』」です。A2がP002なら、結果はボールペンになります。
単価を取得する:注文一覧のC2
=XLOOKUP(A2,商品マスタ!A:A,商品マスタ!C:C,"該当なし")
返す列をC列に変えると、P002の単価120を取得できます。
在庫数を取得する:注文一覧のD2
=XLOOKUP(A2,在庫!A:A,在庫!B:B,"該当なし")
P002なら0、P001なら35です。まず2行目を確認し、問題がなければB2〜D2を4行目までコピーします。A2がA3、A4へ変わり、各行の商品コードを検索することも確認してください。
例では読みやすさのため列全体を指定しました。実務では必要な範囲やExcelのテーブルを使えます。範囲を絞る場合は、検索列と返す列の開始・終了行を揃え、コピーでずれないよう固定します。
6. XLOOKUPがVLOOKUPより扱いやすい理由
MicrosoftのXLOOKUP解説を踏まえると、今回のような照合作業では次の違いが役立ちます。
| 比較する点 | VLOOKUP | XLOOKUP |
|---|---|---|
| 返す列の指定 | 表の中の列番号を指定 | 返したい列を直接指定 |
| 検索の方向 | 検索列より右の列を返す | 左側の列も返せる |
| 一致の指定 | 完全一致にはFALSEなどを指定 | 省略時は完全一致 |
| 見つからない場合 | IFERRORなどで対応 | 「該当なし」を引数で指定できる |
たとえばVLOOKUPで商品名を返すなら、=VLOOKUP(A2,商品マスタ!A:C,2,FALSE) と書けます。この「2」が何列目かを数える必要があります。XLOOKUPは返す列が式に直接見えるので、目的を読み取りやすいのが利点です。
ただし、既存のVLOOKUPをすべて置き換える必要はありません。Excel 2016・2019ではXLOOKUPを利用できないため、共有相手のバージョンも確認しましょう。今ある帳票を読むために、VLOOKUPの基本を知っておく価値は残ります。
7. Copilotの結果をそのまま信用せず確認するポイント
数式がエラーなく動くことと、業務上正しいことは別です。全行へ広げる前に、次を確認してください。
- 参照先が正しいか: 商品名は商品マスタのB列、単価はC列、在庫は在庫シートのB列か。似た名前のシートと取り違えていないか。
- 既知の値と一致するか: P002がボールペン・120・0、P001がノート・180・35になっているか。元の表と目で照合する。
- 未登録を区別できるか: P999が「該当なし」になるか。在庫0を未登録扱いにしていないか。
- コードの状態は揃っているか: 余分な空白、数値と文字列の違い、先頭の0の欠落がないか。「001」を使う業務ではコードを文字列として揃える。
- コードが重複していないか: 今回の式は最初に一致した行を返す。同じ商品の在庫が倉庫別に複数行ある場合、在庫の合計にはならない。集計が必要なら別の依頼にする。
- 追加・コピー後も正しいか: 下の行がその行のコードを参照しているか。範囲を絞った式では、新商品が参照範囲から漏れていないか。
分からないときは「検索列と返す列を説明してください」と聞き、元データと照合しましょう。実データの利用は社内ルールに従ってください。
8. まとめ:暗記の負担を減らし、確認する力を残す
Excel Copilotなら、日本語からXLOOKUP数式を作れます。シート名、検索列、返す列、未登録の扱いを伝えましょう。
大切なのは「何を探し、何を返しているか」を説明できることです。まずは正しい商品・在庫0・未登録の3パターンを確認してみてください。





