3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

スプレッドシートで別のシートの値をINDIRECT関数で動的に参照するメモ

Last updated at Posted at 2022-10-04

仕事柄、成績付けや採点をやることがありますが、他のシートを動的に参照したいケースがあります。

特にプログラム書くわけではないけどGAS使わなくてもINDIRECT関数を使って出来たのでメモです。

https://support.google.com/docs/answer/3093377?hl=ja

こんな感じで使えます。

=INDIRECT(A1&B1&"!H3")

やりたいこと

Googleスプレッドシートに

  • 集計用の採点小計のシート
  • 各学生の点数が入ってるシート

の2種類があります。

スクリーンショット 2022-10-04 22.06.14.png

採点小計のシートに 宿題ID名前を記載することでシートを読みに行って点数を自動的に入れたい

スクリーンショット 2022-10-04 22.19.17.png

といったことをやりたいです。

文字列連結の&とシート参照の!だけではうまくいかない問題

基本的な文字列の連結は&を使うので、=A2&B2とすると0201菅原になります。

スクリーンショット 2022-10-04 22.20.23.png

また、別シート参照は"シート名!範囲"が基本なので、='0201菅原'!I3などとすることで別シートの範囲を参照できます。

スクリーンショット 2022-10-04 22.24.10.png

この二つを組み合わせると上手くいきません。

スクリーンショット 2022-10-04 22.26.21.png

=A2&B2&!I3 など試しましたがエラーが出て参照できないようでした。

INDIRECT関数

ちゃんとドキュメント読んでませんが、どうやらINDIRECT関数を使うことで、

  • &で範囲連結してシート名の文字列を作る
  • !と範囲を連結し、範囲の文字列を作る
  • 生成された範囲を読み込みにいく

といった処理を一気にやってくれてそうでした。

スクリーンショット 2022-10-04 22.28.40.png

=INDIRECT(A2&B2&"!I3")

まとめ

めちゃ便利でした。
GAS使わないといけないものだと思ってたので感動です。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?