Google SheetsのVLOOKUPと計算式の例

  • これを共有
Michael Brown

このチュートリアルでは、Google SheetsのVLOOKUP関数の構文を説明し、実際のタスクを解決するためにVlookup式を使用する方法を紹介します。

相互に関連するデータを扱う場合、最も一般的な課題の1つは、複数のシートにまたがる情報を見つけることです。 例えば、飛行機のスケジュールボードで自分の便名をスキャンして、出発時刻と状況を取得するような作業は日常的によく行われます。 Google Sheets VLOOKUPは同様の方法で、同じシート上の別のテーブルから一致するデータを検索して取得することができます。を別のシートから取得します。

VLOOKUPは最も難しく、不明瞭な関数の一つであるという意見が広まっています。 しかし、それは真実ではありません!実際、Google SheetsでVLOOKUPを行うのは簡単で、一瞬でそれを確認することができます。

    ヒント:Microsoft Excelをお使いの方は、Excel VLOOKUPのチュートリアル(計算式の例付き)を別途ご用意しています。

    Google Sheets VLOOKUP - 構文と使い方

    Google Sheets の VLOOKUP 関数は、以下のような処理を行うために設計されています。 たてよこルックアップ - は、指定した範囲の最初の列からキーとなる値(一意な識別子)を検索し、同じ行の別の列から値を返す。

    Google SheetsのVLOOKUP関数の構文は以下の通りです。

    VLOOKUP(search_key、range、index、[is_sorted])

    最初の3つの引数は必須、最後の1つはオプションです。

    検索キー - は検索する値(ルックアップ値または一意な識別子)です。 例えば、単語「apple」、数字「10」、セル「A2」の値を検索することができます。

    レンジ - Google SheetsのVLOOKUP関数は、常に最初の列のデータを検索します。 レンジ .

    インデックス - の列番号です。 レンジ と同じ行にある値)が一致します。 検索キー ) を返すべきである。

    の最初のカラムは レンジ 持つ インデックス 1.もし インデックス が1より小さい場合、Vlookup式は#VALUE!エラーを返します。 の列数より大きい場合、Vlookup式は#VALUE!エラーを返します。 レンジ VLOOKUPは、#REF!

    Is_sorted - は、ルックアップカラムをソートする (TRUE) かしない (FALSE) かを指定します。 ほとんどの場合、FALSE を指定することが推奨されます。

    • もし is_sorted が TRUE であるか,あるいは省略された場合(デフォルト),最初のカラムは レンジ でなければならない しょうじゅんせいれつ つまり、AからZまで、あるいは小さいものから大きいものまで。

      この場合、Vlookup 式は 近似一致 より正確には、まず完全一致を検索し、完全一致が見つからなければ、式は さいきんしん 以下であること 検索キー ルックアップ列のすべての値が検索キーより大きい場合、#N/Aエラーが返されます。

    • もし is_sorted をFALSEに設定すると、ソートは必要ありません。 この場合、Vlookup式は、以下のものを検索します。 完全一致 に等しい値が2つ以上ある場合は、その値を削除する。 検索キー の場合、最初に見つかった値が返される。

    一見、複雑そうな構文ですが、以下のGoogleシートのVlookupの計算式の例を見ると、理解しやすいと思います。

    以下のスクリーンショットのように、メインテーブルとルックアップテーブルの2つのテーブルがあるとします。 これらのテーブルには、共通のカラム( オーダーID ルックアップテーブルからメインテーブルに各注文のステータスを引き出すことが目的です。

    さて、Google SheetsのVlookupを使ってどのように課題を達成するのでしょうか。 まず始めに、Vlookupの計算式の引数を定義してみましょう。

    • 検索キー - オーダーID(A3)、ルックアップテーブルの最初の列で検索される値。
    • レンジ - ルックアップテーブル($F$3:$G$8)を使用することに注意してください。 レンジをロックする 複数のセルに数式をコピーする予定なので、セルの絶対参照を使用することで、数式をコピーすることができます。
    • インデックス - 2があるからです。 ステータス の2番目のカラムにマッチするものを返します。 レンジ .
    • Is_sorted - 検索列(F)がソートされていないので、FALSEです。

    すべての議論をまとめると、こんな式になる。

    =VLOOKUP(A3,$F$3:$G$8,2,false)です。

    それをメインテーブルの最初のセル(D3)に入力し、列をコピーすると、このような結果になります。

    Vlookupの公式はまだ理解しにくいですか? それなら、こう考えてみてください。

    Google SheetsのVLOOKUPについて知っておくべき5つのこと

    Google SheetsのVLOOKUP関数はニュアンスが違うので、この5つを覚えておくとトラブルが少なく、よくあるVLOOKUPエラーを避けることができます。

    1. Google SheetsのVLOOKUPは左側を見ることができず、常に範囲の最初の(左端の)列を検索します。 VLOOKUPを実行するには 左Vlookup の場合、Google SheetsのIndex Matchの計算式を使用します。
    2. Google SheetsのVlookupは ケースインセンシティブ つまり、小文字と大文字を区別しません。 ケースセンシティブルックアップ は、この式を使います。
    3. VLOOKUPが不正な結果を返した場合、その結果を修正するために is_sorted 引数をFALSEに設定して、完全一致を返します。 それでも解決しない場合は、VLOOKUPが失敗する他の可能性のある原因を確認してください。
    4. いつ is_sorted を TRUE に設定するか、省略した場合、最初の列をソートすることを忘れないでください。 レンジ この場合、VLOOKUP関数は、ソートされたデータに対してのみ正しく動作する、より高速なバイナリ検索アルゴリズムを使用します。
    5. Google SheetsのVLOOKUPは、以下のような検索が可能です。 部分一致 に基づいています。 ワイルドカード文字 詳しくは、Vlookupの計算式の例をご覧ください。

    GoogleシートでVLOOKUPを使う方法-計算式の例

    Google SheetsのVlookupがどのように動作するかの基本的な考えを持っている今、それはあなた自身の手でいくつかの数式を作ることに挑戦する時間です。 以下のVlookupの例を簡単にフォローするために、あなたはVlookupのGoogleシートのサンプルを開くことができます。

    別のシートからVlookupする方法

    実際のスプレッドシートでは、メインテーブルとルックアップテーブルが別のシートに存在することがよくあります。 Vlookup式を同じスプレッドシート内の別のシートに参照するには、ワークシート名の後に感嘆符(!)を付けて範囲参照の前に置きます。 例えば、以下のようになります。

    =VLOOKUP(A2,Sheet4!$A$2:$B$7,2,false)です。

    この数式は、Sheet4 の範囲 A2:A7 から A2 の値を検索し、一致する値を B 列(Sheet4 の 2 列目)から返します。 レンジ ).

    シート名にスペースやアルファベット以外の文字が含まれる場合は、必ずシングルクォーテーションで囲んでください。 たとえば、以下のようになります。

    =VLOOKUP(A2,'ルックアップテーブル'!$A$2:$B$7,2,false)

    ヒント: 別のシートへの参照を手動で入力する代わりに、Google Sheets に自動的に挿入させることができます。 そのためには、Vlookup 式を入力し始め、その後に来る レンジ 引数で、ルックアップシートに切り替え、マウスで範囲を選択します。 これにより、数式に範囲参照が追加され、相対参照(デフォルト)を絶対参照に変更するだけです。 これを行うには、列文字と行番号の前に$記号を入力するか、参照を選択してF4キーを押して異なる参照タイプに切り替えます。

    Google SheetsのVlookupでワイルドカード文字が使えるようになりました。

    検索値(search_key)の全体はわからないが、一部はわかるという状況では、以下のワイルドカード文字を使って検索を行うことができる。

    • 任意の1文字にマッチするクエスチョンマーク(?)と
    • アスタリスク(*)で任意の文字列にマッチします。

    例えば、下の表から特定の注文に関する情報を取り出したいとします。 注文IDを完全に思い出すことはできませんが、最初の文字が「A」であることは覚えています。 そこで、次のようにアスタリスク(*)を使って足りない部分を補います。

    =VLOOKUP("a*",$A$2:$C$7,2,false)です。

    さらに、検索キーの既知の部分をどこかのセルに入力し、そのセルを「*」で連結すれば、より汎用性の高いVlookup式を作成することができます。

    アイテムを引っ張ること。 =VLOOKUP($F$1& "*",$A$2:$C$7,2,false)です。

    量を引くため。 =VLOOKUP($F$1& "*",$A$2:$C$7,3,false)です。

    ヒント:実際にクエスチョンマークやアスタリスクの文字を検索する必要がある場合は、文字の前にチルダ(~)を付けます(例:「~*」)。

    Google Sheets 左VlookupのIndex Matchの計算式

    VLOOKUP関数(ExcelでもGoogle Sheetsでも)の最も大きな制限の一つは、その左側を見ることができないということです。 つまり、検索列がルックアップテーブルの最初の列でない場合、Google SheetsのVlookupは失敗します。 そのような状況では、より強力で耐久性のあるIndex Match式を使ってください。

    INDEX ( return_range , MATCH( 検索キー , ルックアップレンジ , 0))

    例えば、A3の値(search_key)をG3:G8(lookup_range)で調べ、F3:F8(return_range)から一致するものを返すには、次の式を用います。

    =index($f$3:$f$8, match (a3, $g$3:$g$8, 0))

    次の画面は、このIndex Matchの計算式を表示したものである。

    Vlookupと比較してIndex Matchのもう一つの利点は、戻り値の列を直接参照するため、シートの構造変更に影響されないことです。 特に、ルックアップテーブルの列を挿入または削除すると、「ハードコード」されたインデックス番号が無効になってVlookup式が壊れますが、Index Match式は安全かつ健全に保たれます。

    INDEX MATCHについての詳細は、INDEX MATCHがVLOOKUPのより良い代替となる理由をご覧ください。 上記のチュートリアルはExcelを対象としていますが、Google SheetsのINDEX MATCHは、引数の名前が異なる以外は全く同じように動作します。

    Google Sheetsで大文字と小文字を区別してVlookupする

    大文字小文字を区別する必要がある場合は、INDEX MATCHとTRUE関数およびEXACT関数を組み合わせて、大文字小文字を区別するGoogle Sheets Vlookupを作成することができます。 配列式 :

    ArrayFormula(INDEX()。 return_range , match (true,exact()。 ルックアップレンジ , 検索キー ),0)))

    検索キーがセルA3、検索範囲がG3:G8、戻り値がF3:F8とすると、数式は次のようになります。

    =ArrayFormula(INDEX($F$3:$F$8, MATCH (TRUE,EXACT($G$3:$G$8, A3),0)))

    下のスクリーンショットのように、A-1001とa-1001のような大文字と小文字を区別して計算することに問題はありません。

    ヒント:数式を編集中に Ctrl + Shift + Enter を押すと、数式の先頭に ARRAYFORMULA 関数が自動的に挿入されます。

    Vlookupは最も一般的な方法ですが、Google Sheetsで検索する唯一の方法ではありません。 このチュートリアルの最後となる次のセクションでは、別の方法を紹介します。

    Merge Sheets: Google Sheets Vlookupの数式不要の代替品

    GoogleスプレッドシートのVlookupを数式なしで視覚的に行う方法をお探しなら、Merge Sheetsアドオンの使用を検討してください。 Google Sheetsアドオンストアから無料で入手できます。

    Google Sheetsにアドオンを追加すると、そのアドオンは以下の場所にあります。 エクステンション タブで表示します。

    Merge Sheets アドオンを導入して、実際にテストする準備ができました。 ステータス カラムをベースにした オーダーID :

    1. の中にデータがあるセルを選んでください。 メインシート をクリックします。 アドオン > シートのマージ > スタート .

      ほとんどの場合、アドオンが自動的にテーブル全体をピックアップしてくれますが、そうでない場合は、テーブルの上にある オートセレクト ボタンをクリックするか、メインシートで範囲を手動で選択してから 次のページ :

    2. で範囲を選択します。 ルックアップ・シート この例では、ルックアップテーブルの行数がメインテーブルより2行多くなっています。

  • 1つまたは複数を選択 キーカラム (一意な識別子)で比較します。 オーダーID この列だけを選択します。
  • アンダー ルックアップ・カラム で、データを取得するルックアップ・シートの列を選択する。 主なコラム で、データをコピーするメインシートの対応する列を選択します。
  • この例では、情報を ステータス の列をLookupシートの ステータス の欄は、メインシートに記載されています。

  • オプションで、1つまたは複数の追加アクションを選択します。 ほとんどの場合、次のようになります。 メインテーブルの末尾に一致しない行を追加する つまり、ルックアップテーブルにのみ存在する行をメインテーブルの最後にコピーします。
  • クリック 仕上がり で、Merge Sheetsアドオンの処理に少し時間をかければ、完了です。

    複数マッチを簡単にVlookup!

    Multiple VLOOKUP Matches は、高度な検索を行うための Google Sheets のツールです。 その名前が示すように、アドオンは VLOOKUP 関数のように最初のマッチだけでなく、すべてのマッチを返すことができます。 さらに、このアドオンで評価できるのは 複数条件 で調べます。 何れも 方向 として,すべてあるいは指定された数のマッチを返す。 価値観 または .

    百聞は一見にしかずということで、実際のデータでアドオンがどのように動作するか見てみましょう。 サンプルテーブルのいくつかの注文が複数の項目を含んでおり、特定の注文のすべての項目を取得したいとします。 Vlookup式ではできませんが、より強力なQUERY関数ならできます。 問題は、この関数には問い合わせ言語の知識、少なくともSQLが必要なことです。アドオン「Multiple VLOOKUP Matches」をインストールすると、数秒で完璧な計算式が完成します。

    Googleシートで、以下をクリックします。 アドオン > 複数のVLOOKUPのマッチング > スタート とし、ルックアップ条件を定義する。

    1. データのある範囲(A1:D9)を選択します。
    2. 何件のマッチを返すかを指定する(ここでは全て)。
    3. どのカラムからデータを返すかを選択する ( 項目 , 金額 ステータス ).
    4. F2に入力された注文番号の情報を取り出したいので、「注文ID = F2」という条件を1つだけ設定します。
    5. 結果を表示する左上のセルを選択します。
    6. クリック プレビュー結果 を使えば、あなたが探しているものを確実に手に入れることができます。
    7. 問題なければ、どちらかをクリックします。 挿入式 または 貼り付け結果 .

    この例では、マッチングを数式で返すことにしました。 このため、F2に任意のオーダー番号を入力すると、以下のスクリーンショットに示す数式が自動的に再計算されるようになりました。

    アドオンの詳細については、Multiple VLOOKUP Matchesのホームページをご覧いただくか、G Suite Marketplaceから今すぐ入手してください。

    以上、Google Sheets lookupのやり方でした。 読んでくださってありがとうございました!来週も当ブログをよろしくお願いします。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。