この記事は 事務でよく使うExcel関数まとめ|目的から探せる一覧 の1本です。他の関数もまとめて見られます。
伝票や日報を作るとき、品番を見ながら品名と単価をマスタから探して手で打ち込んでいませんか。
この作業は XLOOKUP(エックスルックアップ) を使うと、品番を入れた瞬間に品名も単価も自動で出るようになります。打ち間違いも消えます。
この記事で作るもの
商品マスタがこうなっているとします。
| A | B | C | |
|---|---|---|---|
| 1 | 品番 | 品名 | 単価 |
| 2 | S-100 | 杉板 12mm | 1,200 |
| 3 | H-200 | 檜柱 105角 | 3,800 |
| 4 | G-300 | 合板 9mm | 900 |
| 5 | K-400 | 米松 平角 | 2,400 |
伝票シートで、品番を打っただけで残りが埋まる状態にします。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 | 76,000 |
人が打つのは品番と数量だけになります。
XLOOKUPの形
- 探す値いま手元にある値。ここでは伝票のA2に入れた品番
- 探しに行く列マスタの中で、その値が並んでいる列。ここでは品番の列
- 取ってくる列欲しい値が並んでいる列。品名がほしければ品名の列
- 見つからないときの表示見つからなかったときに出す文字。省略できますが、必ず書いてください
日本語にすると、こうです。
A2の値を、マスタの品番列から探して、見つかった行の品名列を持ってくる。
覚えることはこれだけです。
STEP1:品名を出す
伝票のB2に、次の式を入れます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 20 |
まず1行だけで、手で打った値と一致することを確認してください。ここが合っていれば、あとはコピーするだけです。
$(ドル記号)の意味
$A2 の $ は「A列からは動かないでね」という意味です。
式を右にコピーしても、探す値が B2、C2 …とズレていかなくなります。
マスタ!$A:$A の $ も同じで、コピーしても参照先の列がズレません。$ の付け外しは、セルを選んで F4 キーを押すと切り替わります。
詳しくは 絶対参照($)の使い方 で扱います。
STEP2:単価も出す
B2の式をC2にコピーして、最後の「取ってくる列」だけを単価の列に変えます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 |
XLOOKUPは「取ってくる列」を列そのもので指定します。マスタの途中に列が増えても、正しい列を見続けてくれます。ここがこの関数の一番の利点です。
STEP3:品番が空のときは何も出さない
このままだと、品番を入れていない行に「品番が見つかりません」が並んでしまいます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 | 76,000 |
| 3 | 品番が見つかりません | 品番が見つかりません |
「A2が空なら空欄、そうでなければ探す」という形にします。
- $A2=""A2が空かどうかを調べる
- ""空だったときに表示するもの(空欄)
- XLOOKUP(...)空でなかったときに実行する処理
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 | 76,000 |
| 3 | S-100 | 杉板 12mm | 1,200 | 50 | 60,000 |
| 4 |
長く見えますが、やっているのは「空なら何もしない」を足しただけです。IF の詳しい使い方は IF関数の使い方 で扱います。
STEP4:金額も自動にする
単価が出たら、あとは掛け算するだけです。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 | 76,000 |
| 3 | S-100 | 杉板 12mm | 1,200 | 50 | 60,000 |
つまずきやすいところ
#N/A と出る
マスタに無い品番を探しています。次を確認してください。
・品番に余分なスペースが入っている(S-100 と S-100 は別物です)
・全角と半角が混ざっている(S-100 と S-100)
・マスタ側が数値、伝票側が文字列になっている
XLOOKUPの4つ目に「品番が見つかりません」と書いておけば、#N/A の代わりにその文字が出るので、原因に気づきやすくなります。
#NAME? と出る
XLOOKUPが使えないバージョンのExcelで開いています。
Excel 2019以前では XLOOKUP は使えません。
社内でExcelのバージョンが混在している場合、
XLOOKUPで作ったファイルを古いExcelで開くとこのエラーになります。
配布するファイルなら、先にバージョンを確認してください。
マスタを「テーブル」にしておくと、さらに壊れにくくなります
マスタの範囲を選んで Ctrl+T を押すとテーブルになります。
下に行を追加したときに範囲が自動で広がるので、式の範囲を直す必要がなくなります。
この記事では分かりやすさを優先して $A:$A と列全部を指定していますが、
慣れてきたらテーブルに切り替えてください。
作るときの順番
- マスタを別シートに分ける
伝票と同じシートにマスタを置かないでください。行の挿入・並べ替えのたびに壊れます。
- マスタの1行目を見出しにして、2行目からデータを入れる
途中に空行を入れない。結合セルも使わない。この2つを守るだけで事故がかなり減ります。
- B2に式を入れて、1行だけで確認する
手で打った値と一致すればOKです。合わなければ、原因はほぼスペースか全半角です。
- C2にコピーして、取ってくる列だけ変える
変えるのは1か所だけです。
- IFで囲んで、空の行に何も出ないようにする
ここまでが実務で使う形です。
- 必要な行数分コピーする
最後にまとめてコピーします。
いきなり全行に式を入れないでください。1行で合わせてからコピーする。この順番だと、ズレたときにどこが原因かすぐ分かります。
今日やってみること
いま手で転記している表を1つ選んでください。品番と品名、社員番号と氏名、コードと名称。「片方を見てもう片方を探している」作業ならどれでも当てはまります。
マスタになる表を別シートに切り出して、1行だけXLOOKUPを入れてみる。ここまでで、この関数が自社で使えるかどうかが分かります。
次に読むとよい記事
- 古いExcel(2019以前)を使っている場合 → VLOOKUP関数の使い方とXLOOKUPとの違い
- 行と列の両方を指定して取り出したい場合 → INDEXとMATCHの使い方(近日公開)
- 条件に合う行をまとめて抜き出したい場合 → FILTER関数の使い方(近日公開)
- 取ってきた数字を集計したい場合 → SUMIFS関数の使い方
「うちのマスタは項目がバラバラで、そもそも整理されていない」という段階のご相談もお受けしています。現状のヒアリングと課題整理は無料です。
この記事について
SUPRAXは、林業・製造・運送の現場経験をもとに、中小企業の業務改善・AI活用・GISの支援を行っています。 記事の内容について「うちの場合はどうか」を聞きたい方は、無料相談をご利用ください。
あわせて読みたい
SUMIFS関数の使い方|条件に合う行だけを合計する
毎月の売上を取引先ごとに集計するとき、フィルタをかけて、選択して、画面右下の合計を見て、電卓で足して……という作業をしていませんか。 この記事で扱う S…
TEXT関数と日付の処理|「2026/9/1」を「9月」にまとめる
「月ごとの売上を出してほしい」と言われて、明細表を開く。日付は1日単位で入っているので、そのままでは月でまとめられません。 手で「9月」と打っていくと、…
SUBTOTAL関数の使い方|フィルタで絞った分だけを合計する
フィルタでA社だけに絞ったのに、一番下の合計が全社の金額のまま動かない。 明細表を使っていれば、必ず一度は出会います。原因は操作ミスではありません。SU…