関数をネストすれば別ファイルも参照可能
以前の記事では、GoogleスプレッドシートでVLOOKUP関数を使う方法を紹介しました(本記事末尾の関連記事を参照)。その記事では、VLOOKUP関数を入力するシート内に参照したい表がある例で解説しています。
しかし、VLOOKUP関数が必要なケースでは、参照したい表が同じシート内にないことも多いのではないでしょうか。場合によっては、別のスプレッドシート(ファイル)に分かれてしまっていることもあると思います。
例えば、VLOOKUP関数で商品マスタを参照し、商品名や単価を取得したいケースを考えて見ましょう。[検索キー](検索値)を含む表と、検索対象となる商品マスタの表は、多くの場合は別々のシートで管理されているはずです。
以前の記事で例として使っていたシートです。今回は、赤で囲んでいる商品マスタの表が、別のシート、あるいは別のスプレッドシート(ファイル)にあるケースを例にします。
商品マスタが保存されている場所が、①同一のスプレッドシートにある別シートか、②別のスプレッドシート(ファイル)かで、GoogleスプレッドシートのVLOOKUP関数から参照するための操作手順が異なります。それぞれ、どのように参照するのかを以下の手順で確認していきましょう。
①同一のスプレッドシートにある別シートを参照する
GoogleスプレッドシートのVLOOKUP関数で、同一のスプレッドシートにある別シートを参照したい場合は、シート名を含めてセル範囲を指定します。
シート名の指定は「'(シート名)'!」です。「'」「!」は半角で入力します。
例えば「'商品マスタ'!A3:C11」は、[商品マスタ]シートのセルA3~C11を指定したことになります。
11つめの引数[検索キー]まで入力する
VLOOKUP関数の[検索キー]までを入力します。ここでは「=VLOOKUP(B3,」まで入力しました。
2別シートに切り替えてセル範囲を指定する
シートタブをクリックして[商品マスタ]に切り替え、セルA3~C11までドラッグします。
[F4]キーを押して絶対参照に切り替えます。
3残りの引数を入力する
商品名を取り出したいので、3つめの引数[指数]は2列目の「2」、4つめの引数[並べ替え済み]は「FALSE」と指定し、最後に「)」を入力します。
4別シートの値を参照できた
同一のスプレッドシートにある別シートの値を参照できました。
②別のスプレッドシートを参照する
GoogleスプレッドシートのVLOOKUP関数で、別のスプレッドシートを参照したい場合は、IMPORTRANGE関数を組み合わせます。
IMPORTRANGE関数の構文は以下の通りです。
=IMPORTRANGE
(スプレッドシートのURL, 範囲の文字列)
- [スプレッドシートのURL] ... 参照元のスプレッドシートのURL
- [範囲の文字列] ... 参照するセル範囲
IMPORTRANGE関数の引数は、[スプレッドシートのURL]と[範囲の文字列]の2つです。[スプレッドシートのURL]はアドレスバーからコピーして指定し、[範囲の文字列]はシート名を含めたセル範囲を指定します。2つの引数はそれぞれ「"」で囲みます。
1別のスプレッドシートのURLをコピーする
ここでは「マスタテーブル」というスプレッドシートにある、[商品マスタ]シートのセルA3~C11を参照します。スプレッドシートのURLをコピーします。
21つめの引数[検索キー]まで入力する
VLOOKUP関数の[検索キー]までを入力します。ここでは「=VLOOKUP(B3,」まで入力しました。
3IMPORTRANGE関数を入力する
2つめの引数にIMPORTRANGE関数を組み込みます。「IMPORTRANGE("(スプレッドシートのURL)","'(シート名)'!(セル範囲)")」と指定します。2つの引数はそれぞれ「"」で囲みます。セル参照は絶対参照で指定しておくことをおすすめします。
4残りの引数を入力する
3つめの引数[指数]は、商品マスタの2列目の「2」、4つめの引数[並べ替え済み]は「FALSE」と指定し、最後に「)」を入力します。
5別シートの値を参照できた
別のスプレッドシートの値を参照できました。
IMPORTRANGE関数では、引数として別のスプレッドシートのURLを貼り付けるため、VLOOKUP関数も含めた数式全体が非常に長くなります。しかし、構文は単純なので、慌てずに操作してください。もしエラーになる場合は、「"」の抜けが原因であることが多いので確認してみましょう。