こんにちはY-nek0(@Ynek0)です。
今回はスプレッドシートの値を参照する方法を紹介できればと思います。
この記事を読むと以下のことが分かる様になってきます。
- 文字列や数字、関数の結果などの連結の方法
- 文字列連結して値を参照する方法
結合(連結)記号
文字列や数字、関数の結果などを連結する場合、連結させたいモノの間に『&』を入力する事で連結する事が出来ます。
例えばこんな風に
="ここと"&"ここは"&"連結できちゃう!"
と言った風に入力すると連結した文字として表示されるわけです。
結合(連結)記号の使い方
ではどのように使っていけるかと言う事でいくつか使い方があります。
数字との結合(連結)方法
="今日の天気は"&24&"℃です"
こう言った風に記述します。
数字はダブルクォーテーションで囲う必要がありません。
関数との結合(連結)方法
="中間テストの平均点は"&average(B1:B9)&"点だ"
この様にします。
関数の部分は参照する値によって変動します。
結合(連結)記号の応用 値を参照してのシート指定
では実践を兼ねて連結記号をさらに使える様にしてみましょう。
できる事として、シートを連結文字を使って指定する事が出来ると言う事です。
- 新規でスプレッドシートを作成して下さい。
- 作成したスプレッドシートのシート1 A1セルに『シート2』と入力して下さい。
- 画面左下にある『+』ボタンを押下しシート2を新規作成します。
- シート2のA1セルにお好きな文字列を入力して下さい。
- シート1のA2セルに連結文字を使い以下のように記述します。
="僕の好きな言葉は"&"'"&A1&"'!"&A1&"です。"
普段値の参照で別シートを指定する場合、『'シート2!'A1』の様に別シート名はシングルクォーテーションで囲われています。
それを文字列連結を使用してシート1に記載されたA1の値を参照する様にし、A1の値を変えると参照するシートを自動で変えるようにしています。
しかし、この関数で出力されるのは『僕の好きな言葉は'シート2'!シート2です』となります。
この出力結果から考えられるに、式の値を参照しているのはどちらもシート1のA1である事が分かります。
文字列連結とセル参照を組み合わせてシートの指定をする事は出来ないのでしょうか?
いえ、そんな事はありません。
ではどのようにしたら値の参照ができるのか?
1つ関数を挟むことによりそれを解決する事ができます。
それがINDIRECT関数です。
INDIRECT関数
INDIRECT関数とは
INDIRECT関数は関数のカッコ内に文字列で記述したセルの参照を取り扱ってくれる関数です。
例えば、
=INDIRECT("シート2!"&A2)
と入力するとシート2のA2セルを参照してくれます。
ではINDIRECT関数を使って再度式を構築してみましょう。
="僕の好きな言葉は"&INDIRECT("'"&A1&"'!A1")&"です。"
もしくは
="僕の好きな言葉は"&INDIRECT(A1&"!A1")&"です。"
シングルクォーテーションを省いても大丈夫です。
そしてその出力された結果は『僕の好きな言葉はお好きな文字列です。』と出力されたのが分かると思います。
これで値を変更する事により参照するシートを変更する事が出来ました。
INDIRECT関数はSUM関数みたいな直接的に数式に関わるような関数でなく余り知られていないのですが、
知っておくとかなり便利な事が分かります。
INDIRECT関数のリファレンスに関しては下記をご覧下さい
是非今後のスプレッドシートの利用で参考にして頂けると嬉しいです。
名前付き範囲を使用してのINDIRECT関数
また最近追加された機能で名前付き範囲という機能があります。
名前付き範囲というモノはセル範囲に名前をつける機能ですが、詳しくはこちらの記事をご参照下さい。
この名前付き範囲を使ってINDIRECT関数で利用する方法もありますので一緒にご紹介させて頂きます。
名前付き範囲は範囲に名前をつけるので名前を指定します。
名前付き範囲を通常利用する際はダブルクォーテーションもシングルクォーテーションも利用しないのですが、
INDIRECT関数ではそれらで括った方が良いですね。
そうでないとエラーが出力されてしまします。
ではまたご贔屓に。