VLOOKUPが表を検索する仕組み
最初の列で値を検索し、別の列からデータを返します。
「VLOOKUPが表を検索する仕組み」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
VLOOKUP の紹介
VLOOKUP は Vertical Lookup(垂直検索) の略です。指定した値を表の最初の列から下方向に検索し、同じ行の別の列から値を返します。
電話帳のようなものです。名前を見つけ、横にたどって電話番号を確認します。VLOOKUP はスプレッドシートでまったく同じことを行います。
V は、垂直方向(列を下に向かって)検索することを思い出すための文字です。次の場面では、VLOOKUP の4つの構成要素を学び、実際の価格表で使います。
4つの引数
VLOOKUP は、カンマで区切られた4つの情報を受け取ります。
- lookup_value - 検索する値
- table_array - データが入っているセル範囲
- col_index_num - 返す値がある列の番号
- [range_lookup] - 近似一致の場合は TRUE、完全一致の場合は FALSE
角かっこは最後の引数が省略可能であることを示しますが、ほとんどの場合は明示的に指定してください。数式の形は次のとおりです。
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])価格表の例
A1:C4 のセルに、次のような小さな商品表があるとします。
- 1行目の見出し: コード、名前、価格
- 2行目: A100、Apple、0.50
- 3行目: B200、Banana、0.30
- 4行目: C300、Cherry、1.20
最初の列(コード)が VLOOKUP の検索対象です。そのほかの列には、返すことのできるデータが入っています。ここでは、コードで商品を検索し、その価格を取得します。
最初の VLOOKUP
コード B200 の価格を求めるには、列1で B200 を検索し、列3(価格)を返します。
読み下すと、表 A1:C4 から値 "B200" を検索し、見つかったら3列目の値を返します。完全一致(FALSE)を使用しています。
結果は 0.30 です。VLOOKUP は3行目で B200 を見つけ、3列目まで横にたどりました。
=VLOOKUP("B200", A1:C4, 3, FALSE)列番号を数える
col_index_num は、シートの列Aからではなく、table_array の左端から数えます。
範囲 A1:C4 の列番号は次のとおりです。
- 列1 = コード(検索列)
- 列2 = 名前
- 列3 = 価格
そのため、名前を返すにはインデックス2を、価格を返すにはインデックス3を使用します。インデックス1を指定すると、検索した値そのものが返されます。
=VLOOKUP("C300", A1:C4, 2, FALSE)セルを参照して検索
"B200"のように値を直接入力することは、ほとんどありません。通常、必要な値は別のセルに入っています。たとえば、誰かがE2にコードを入力するとします。固定テキストではなく、そのセルをVLOOKUPの検索値に指定します。
E2が変わるたびに、結果も自動的に更新されます。これが、検索機能が請求書、ダッシュボード、検索ボックスを支える仕組みです。
=VLOOKUP(E2, A1:C4, 3, FALSE)最初の列を検索する理由
VLOOKUPには、厳密なルールが1つあります。table_arrayの左端の列しか検索できません。第2列を検索して、第1列に戻ることはできません。
そのため、検索したい列は範囲の最初の列にする必要があります。コードがB列にある場合は、B1:D4のように、table_arrayをB列から始めます。
この左端の列に関する制限は、VLOOKUPで戸惑う最も一般的な原因です。後のレッスンでは、この制限を回避する方法を扱います。
見出し行を含めるかどうか
table_arrayには、見出し行を含めても除外しても構いません。どちらでも機能します。
A1:C4は見出し(コード、名前、価格)を含みますA2:C4は見出しを除外します
完全一致(FALSE)では、見出しが誤った結果を引き起こすことはありません。見出しが商品コードと一致することはないためです。多くの人は、範囲を読みやすくするために見出しを含めます。ただし、列番号は、選択した範囲の左端から数えることを忘れないでください。
実例:請求書
たとえば、請求書を作成しているとします。商品コードがA10にあり、その名前と価格を表から取得したいとします。
B10の名前:
C10の価格:
1つの表から複数のセルに値を入力できます。コードを1回入力するだけで残りが埋まることが、VLOOKUPの実用的な強みです。
=VLOOKUP(A10, $A$1:$C$4, 2, FALSE)
=VLOOKUP(A10, $A$1:$C$4, 3, FALSE)ドル記号で表を固定する
$A$1:$C$4にある$記号に気付きましたか。VLOOKUPを列方向にコピーするときは、検索値を(A10、A11、A12…のように)移動させる一方で、表は固定したままにしたいものです。
ドル記号を使った絶対参照により、表をその場に固定できます。ドル記号がないと、下方向にコピーしたときに表の範囲までデータからずれて、エラーが発生します。table_arrayは固定し、lookup_valueは相対参照のままにしてください。
=VLOOKUP(A10, $A$1:$C$4, 3, FALSE)シートをまたいだVLOOKUP
データ表は別のタブに置かれていることがよくあります。Productsという名前のシートにある範囲を参照するには、範囲の前にシート名と感嘆符を付けます。
シート名にスペースが含まれる場合は、'Price List'!A:Cのように単一引用符で囲みます。検索の仕組みはまったく同じで、別のタブから読み取るだけです。
=VLOOKUP(A2, Products!$A$1:$C$100, 3, FALSE)クイックチェック
VLOOKUPがどのように検索するかを理解できているか確認しましょう。
まとめ:VLOOKUPの検索方法
これで、VLOOKUPの基本を理解できました。
- table_arrayの最初の列を下方向に検索します
- 4つの引数、lookup_value、table_array、col_index_num、range_lookupを受け取ります
- col_index_numは、範囲の左端から数えます
- ほとんどの場合、完全一致にはFALSEを使用します
$を使って表を固定すると、下方向にコピーしても表が移動しません
次は、完全一致と近似一致の違いを詳しく見ていきます。
=VLOOKUP(A2, $A$1:$C$4, 3, FALSE)よくある質問
「VLOOKUPが表を検索する仕組み」レッスンは無料ですか?
はい。「VLOOKUPが表を検索する仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「VLOOKUPが表を検索する仕組み」で何を学びますか?
最初の列で値を検索し、別の列からデータを返します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「VLOOKUPが表を検索する仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- VLOOKUPが表を検索する仕組み
- 完全一致と近似一致
- HLOOKUPで行を検索する
- VLOOKUPが失敗することがある理由