1. はじめに:その「列番号」、数え直したことはありませんか?
実務の現場では、一つのミスが大きな損失や信用問題に直結します。 かつて私たちは、VLOOKUP関数を使うとき、必死に指で「1、2、3……」と列を数えていました 。
しかし、運用が始まってから「やっぱりここに1列追加しよう」と誰かが表をいじった瞬間、数式は音を立てて崩れます。参照先がズレ、全く関係のない数字が報告書に表示される——。そんなヒヤリとする経験、一度はありますよね 。
今回は、そんなVLOOKUPの弱点を克服した「XLOOKUP」を活用し、メンテナンス性に優れた「壊れない管理表」を作るコツをお伝えします。
2. なぜXLOOKUPに乗り換えるのか
VLOOKUPには、実務上の「3大リスク」がありました。
- 列の挿入・削除に弱い: 参照範囲の列構成が変わると、指定した「列番号」がズレて誤った値を参照する 。
- 左側のデータが探せない: 検索値より左にある項目を抽出する場合、わざわざ列を入れ替える手間が発生する 。
- エラー処理が面倒: 該当データがない場合に
#N/Aが出るため、別途IFERROR関数で囲む必要があった。
XLOOKUPは、これらを一つの関数でスマートに解決します 。
3. 【実践】ズレない数式の作り方
具体的な数式のイメージを見てみましょう。
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合])
- 「列番号」を数字で指定しない: 「検索する列」と「答えを出す列」を範囲で指定するため、間に列が増えても参照が自動で追いかけてくれます 。
- エラー時の対応もこれ一つ:第4引数に
"該当なし"と入れるだけで、エラー表示を防げます。
例1)VLOOKUPでは列番号で戻り範囲を指定

例2) 3列目に支店長名を挿入しても、戻り範囲は3列目のまま

例3)XLOOKUPではセル参照で戻り範囲を指定

例4)3列目に支店長名を挿入したら、戻り範囲は自動で4列目に移動(所在地を参照したまま)

4. 「LET関数」との組み合わせでさらに美しく
以前ご紹介した LET関数 と組み合わせることで、さらに可読性が高まります。
例5)さらに、検索値、検索範囲、戻り範囲にLET関数で名前をつけることにより、可読性の高い関数に

「このXLOOKUPは何の結果を出しているのか」を数式内で定義しておくことで、1年後の自分や後任者がメンテナンスする際、解読する苦労を劇的に減らすことができます 。
5. おわりに:道具を変えることは、リスクを減らすこと
「今までVLOOKUPでやってこれたから」という慣習を疑ってみる。それこそが、データ管理の基本である「正確性」を守る第一歩です。
