こんにちは、いろんな効率化が大好きなたぬ(@tanuhack)です!
値を参照するメリットは、参照元のデータを変更したとき自動で参照した値も変わることですよね。
つまり、積極的に値を参照すると、データの修正や更新に時間を奪われることが激減します!
同じシートの中から値を参照するのは簡単ですが、別のスプレッドシートから値だったり、同じスプレッドシートの別シートの値だったりを引っ張ってきて、使いたいことってありませんか?
- 別のスプレッドシートから参照する
- 同じスプレッドシートの別シートから参照する
今回は2つに分けて別シートから値を参照する方法を紹介します。
同じシート内からだけじゃなく、別シートからも値を参照して、仕事の効率化を加速させましょう!
目次
別のスプレッドシートから参照する
別のシートから値を参照するためには、『IMPORTRANGE』というスプレッドシートにしかない関数を使用します。
知っていたらドヤれる!スプレッドシート独自の関数を10個まとめてみた『スプレッドシートキー』というところに値を参照したいスプレッドシートのURLを入力します。
※スプレッドシートキーとは、スプレッドシートのURLを指した名称で、以下の例でいう「××××」の部分のことです。
(例:https://docs.google.com/spreadsheets/d/××××/edit#gid=0)
値(単一セル)を参照したい場合
この『範囲の文字列』のところに、"持ってきたいシートの名前!持ってきたいセル"を入力します。
例えば、データベースという名前のシートのA1セルを参照したい場合は、"データベース!A1"と入力すれば大丈夫です。
表(範囲セル)を参照する
表を参照したい場合は、『範囲の文字列』のところに、"持ってきたいシートの名前!持ってきたい範囲セル"を入力します。
例えば、データベースという名前のシートのA1からG9を参照したい場合は、"データベース!A1:G9"と入力すれば大丈夫です。
集計したデータや表引きを参照する方法
ただ、値を引っ張ってをくるだけじゃ面白くないですよね!
IMPORTRANGE関数は、他の関数と組み合わせることでその真価を発揮します。
例1:合計金額を参照する(SUM関数)
合計金額だけを参照したいときは、SUM関数とIMPORTRANGE関数を組み合わせます。
例えば、 別のシートのA列の合計金額を参照したい場合は、次のようにSUM関数と組み合わせます。
他の集計データを参照したい場合は、SUM以外に、SUMIFやSUMIFS、COUNTA、COUNTIF、COUNTIFSなどと組み合わせてみてはいかがでしょうか。色々捗りますよ(^o^)
例2:表引きを実現させる(VLOOKUP関数)
次に、他のスプレッドシートから表引きしたいときは、VLOOKUP関数とIMPORTRANGE関数を組み合わせます。
例えば、次のような表があったとします。
ここで『1002』をキーとして、商品名である『ぶどう』を参照したい場合は、次のように記述します。
※VLOOKUPの使い方は割愛します。
ほら、こんな感じで参照することができました。
IMPORTRANGE関数とVLOOKUP関数を組み合わせれば、このように他のスプレッドシートであっても表引きを実現できるんです。
スプレッドシートすごすぎません?Excelには出来ない芸当ですよね。
例3:スプレッドシートを簡易的なデータベースとして使う
集計したデータや表引きしたデータだけをIMPORTRANGEで持ってくるということは、スプレッドシートをデータベースのように扱うことができます。
スプレッドシートは200万個のセルにしか値を入力できませんが、IMPORTRANGEを使えば実質無限のセルを使うことができるんですよ。
詳しくは割愛しますが、気になる方はこの記事をどうぞ!
スプレッドシートの『IMPORTRANGE』関数で200万の制約が無くなるって本当?同じスプレッドシートの別シートから参照する
次に、同じスプレッドシートの別シートから参照する方法を紹介します。
値(単一セル)を参照する
やり方はとっても簡単です。
シングルクォーテーションで参照したい値を持つシート名を挟んで、その値のセル番号を入力するだけです。
[実践テクニック]参照したい値を持つシート名がセルに入力されていて、その値を参照して、B1セルに目的の値を参照させたい場合
日本語って難しい、笑
まず、A1セルに『参照元のシート』が入力されているので、B1セルに『='A1'!A1』みたいな感じで目的の値を参照したくなりませんか?
ぱっと見いけそうな感じですが、「『A1』という名前のシートが無いよ」というエラーを返されます。
であれば、次の方法として『&』を使って、文字列を分解して参照したくなりますよね。
ですが、このままだと単に文字列を結合させてるだけに過ぎないので、『'参照元のソート'!A1』という文字列のセル参照が返されます。
文字列でセル参照が返されるということは、文字列で指定したセル参照を返す、あの関数を使えば解決しますね。
そう、INDIRECT関数です!
これで、A1セルの値を参照して別のシートから値を参照することができるようになりましたね。
INDIRECTは、他にも動的に関数を作り込むときに役立つので、覚えておくと本当に便利ですよ!
【超便利】スプレッドシートの『INDIRECT』関数で動的にセルを指定する方法表(範囲セル)を参照する
同じスプレッドシート内で表(範囲セル)を引っ張って場合は、さっきの『別のスプレッドシートから値を取得する』のところ登場したIMPORTRANGE関数を使います。
ちょっと変な感じですが、スプレッドシートキーは今開いているスプレッドシートのURLを入力します。
これで範囲指定してあげれば、同じスプレッドシート内でも表を参照することができるという訳です。
まとめ
- 別のスプレッドシートから値を参照する
- 同じスプレッドシートの別シートから値を参照する
今回は、別シートから値を参照する方法を紹介しました。
冒頭でも述べましたが、同じシート内からだけじゃなく、別シートからも値を参照して、仕事の効率化を加速させましょう!
それでは!