VLOOKUPの式をChatGPTに相談するなら、エラー名だけでなく、式、参照する表の範囲、取り出したい値を一緒に示します。まず小さな表で、正しい答えを自分でも確認できるようにしておきましょう。
下の例の誤りは、3列の参照範囲に対して「6列目」を指定していることです。金額のF列は、範囲内では3列目に当たります。列番号を直した後も、欲しい金額が返るかを元の表と照合しましょう。
商品コードと金額を使った架空例で、修正する引数と期待する答えを確かめます。
式・参照範囲・欲しい答えを一緒に用意する
B2の文字列「002」をD列で探し、同じ行のF列から金額1800を取り出します。
| 行 | D|範囲内1列目 | E|範囲内2列目 | F|範囲内3列目 |
|---|---|---|---|
| 1 | 商品コード | 品名 | 金額 |
| 2 | 001 | 用紙 | 1200 |
| 3 | 002 ← B2と一致 | 封筒 | 1800 ← 欲しい答え |
| 4 | 003 | ファイル | 900 |
| 5 | 004 | ラベル | 1500 |
| 6 | 005 | 筆記具 | 700 |
誤りの位置:=VLOOKUP(B2,D2:F6,6,FALSE)
D2:F6は3列なので、列番号6は範囲を超えます。公式仕様では#REF!に当たります。
次の架空の表をD1:F6に置く想定です。見出しは1行目で、データはD2:F6の5行です。商品コードは、先頭の0も含めて文字列として扱います。
| 商品コード(D列) | 品名(E列) | 金額(F列) |
|---|---|---|
| 001 | 用紙 | 1200 |
| 002 | 封筒 | 1800 |
| 003 | ファイル | 900 |
| 004 | ラベル | 1500 |
| 005 | 筆記具 | 700 |
検索用のB2にも、文字列の「002」が入っているとします。欲しい答えは1800です。封筒という品名でも、表の2行目という行番号でもありません。金額が欲しいことまで伝えます。
確認する誤った式の例は、次のとおりです。
=VLOOKUP(B2,D2:F6,6,FALSE)
式の3番目の引数「6」は、参照範囲の何列目を返すかの指定です。Microsoftの公式資料は、指定した列番号が表の列数を超えると#REF!になると説明しています。[1] 参照先は3列だけです。6列目はありません。この例は、公式仕様に照らして列番号を見直す練習です。
列番号は、指定した範囲の左端から数える
=VLOOKUP(B2,D2:F6,3,FALSE)
| 引数 | 意味 | 今回の条件 |
|---|---|---|
| B2 | 検索値 | 文字列「002」、先頭0を保持 |
| D2:F6 | 先頭列で検索する範囲 | D列が商品コード |
| 3 | 範囲の左端から数えた列番号 | D=1 → E=2 → F=3(金額) |
| FALSE | 完全一致 | 省略しない |
期待結果:002の行のF列=1800。シート全体のF=6と、範囲内F=3を混同しない。
参照範囲にも注意:E2:F6に変えると、先頭列は商品コードではなく品名になります。元表の列を増やしたり、コードの先頭の0を削除したりせず、まず列番号を見直してください。
F列はシート全体では6列目ですが、VLOOKUPの列番号は、参照範囲の左端を1として数えます。[1] 今回のD2:F6では、D列が1、E列が2、F列が3です。
したがって、金額を返す式の期待例は次の形になります。
=VLOOKUP(B2,D2:F6,3,FALSE)
この例では、元表と商品コードを保ったまま、列番号6を3へ直す案を確かめます。エラーを消すためだけに表の列を増やす必要はありません。
検索するコードが範囲の先頭列にあることも確認してください。VLOOKUPの検索値は、指定した表の先頭列で探されます。[1] この例ではD列の商品コードがその役割です。範囲をE2:F6に変えると、先頭列は品名になり、同じ前提では使えません。
末尾のFALSEは完全一致の指定です。公式資料では、TRUEまたは省略時は近似一致となり、先頭列が数値順またはアルファベット順に並んでいることを前提にすると説明されています。[1] 商品コードの一致を確認する今回は、FALSEを省略しない形で照合します。
元表を変えない条件で、ChatGPTへの依頼文を作る
表と式を渡したうえで、答えてほしい点を絞ります。次は、上の架空データを使う依頼文です。
D1:F6は架空の練習用表で、D列が商品コード、E列が品名、F列が金額です。データは「001・用紙・1200」「002・封筒・1800」「003・ファイル・900」「004・ラベル・1500」「005・筆記具・700」の5行です。商品コードと検索用B2の「002」は文字列で、先頭の0を保ちます。式は =VLOOKUP(B2,D2:F6,6,FALSE) です。商品コードから金額1800を取り出したい場合、どの引数を見直すべきか、参照範囲の列数と対応づけて説明してください。修正案は元表や検索コードを変えず、完全一致のまま示してください。列の追加、型変換、エラーの空欄置換はせず、入力が足りなければ確認事項を挙げてください。
この依頼文では、元の式だけでなく、欲しい値と変えてはいけない入力も示しています。AIが別の金額を仮定して表を作り直したり、コードを勝手に短くしたりしたら、提案は採用しません。
実際の業務表を扱う場合は、AIサービスへ送信してよい範囲を先に確認してください。顧客情報や社外秘の金額をそのまま貼らず、架空データや機密情報を含まない要約で、式の関係を説明できないか検討します。この例も、実在の取引データを使うことを前提にしていません。
エラーが消えても、返った値を元表と照合する
| 列番号 | 返す対象・期待値 | 判定 |
|---|---|---|
| 6 | 範囲を超過 → #REF! | 参照範囲は3列 |
| 2 | E列 → 封筒 | 値は返る設計でも金額ではない |
| 3 | F列 → 1800 | 元の表の金額1800を返す |
境界確認:001なら1200、005なら700が期待値です。表の先頭行と最終行も検索範囲に含まれるかを確認します。
列番号を2にした式では、返す対象はE列の品名です。この例で期待する値は「封筒」になります。エラー表示がなくても、欲しい金額1800とは違います。
この違いは、式を眺めるだけでなく、何を答え合わせするかを決めておくと見つけやすくなります。
| 確認する入力・指定 | 表と数式から求めた期待値 | 確認する点 |
|---|---|---|
| コード002、列番号3、完全一致 | 1800 | 金額を返す設計か |
| コード002、列番号2、完全一致 | 封筒 | 品名を返していないか |
| コード001、列番号3、完全一致 | 1200 | データの先頭行を含むか |
| コード005、列番号3、完全一致 | 700 | データの最終行を含むか |
提案された式を試すときは、この期待値と返った値を比べてください。エラーが消えたかだけでなく、金額と品名を取り違えていないかも確認できます。
修正案を試す段階では、元の表を残した検証用のコピーを使い、コードと金額を見比べます。この例はB2の1件を調べる式です。複数行へコピーする場合の参照範囲のずれなどは、別に確認してください。
見つからないコードを、0円だと判断しない
- 入力:B2は文字列「999」。
- 検索:D2:F6の001〜005に一致なし。
- 期待される状態:完全一致で見つからない場合は
#N/A。 - 確認:コードが表にあるか、検索範囲から行が漏れていないかを調べます。セルの表示に加え、値と型も確認します。
#N/Aは、金額が0円という意味ではありません。エラーを空欄で隠す前に、コードと検索範囲を確認します。コードの規則が分からないまま、先頭の0を削除しないでください。
B2が文字列の「999」なら、今回の表には一致する商品コードがありません。Microsoftは、完全一致で値が見つからないときの#N/Aを説明しています。[1] この場合に調べるのは、コードが元表に存在するか、検索範囲から対象行が漏れていないかです。
見つからないことと、金額が0円であることは違います。エラーを空欄に置き換えるだけでは、参照範囲やコードの問題を直したことにはなりません。
入力の型も確認します。公式資料は、数値や日付を探す際、表の先頭列の値が文字列として保存されていると、想定外の値になる場合があると注意しています。[1] 今回の商品コードは、両側を文字列としてそろえた想定です。「002」と表示されているだけで、元の値や型まで同じだと決めつけないようにしましょう。
ただし、先頭の0を落としてよいかは、コードのルール次第です。型が違いそうだからと元データを一括変換せず、何を同じコードとして扱うかを確認してから対応します。
ChatGPTに相談するときは、式・参照表・欲しい値をそろえ、元表を変えない条件を添えます。提案された列番号と一致条件を確かめ、検証用のコピーで答えを照合してから、実データへの適用を検討してください。
参照資料
確認日:2026年10月16日。数式と期待値は公式仕様と架空の表に基づく例です。利用するExcelで試し、元表の値と照合してください。
- Microsoft Support「VLOOKUP function」:https://support.microsoft.com/en-us/office/vlookup-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1
