重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在、ExcelにてINDIRECT関数を使い他のセルを表示させようとしているのですが、うまくいきません。

シートが13枚あり、それぞれ”1月”、”2月”、・・・、”12月”と”メイン”
シート”メイン”のB12に1が入っています。この1はドロップダウンリストで1~100を選択できるようにしています。
同様にA1に1月~12月のデータのドロップダウンリストがあります。

=INDIRECT("1月!J"&$B$12+4)
この場合望んでいる値(”1月”のシートのJ5の値)を取ってきてくれるのですが、
この値をA1のリストで選んだ月に合わせて変化させたいと考えています。

=INDIRECT("A1!J"&$B$12+4)

としても#REF!と出ていまい、うまくいきません。
どうしたらセルの番地はこのままで、望んだ月のシートの値を持ってこれるのでしょうか?

INDIRECT関数の""マークの使い方についても理解ができないので、参考になるものはないでしょうか?ヘルプを読んでも分からないのでよろしくお願いします。

A 回答 (2件)

> =INDIRECT("A1!J"&$B$12+4)


という数式の結果は、B12に3が入っているとしたら、
「A1!J7」
となってしまいます。
これは、「"A1!J"」と本来その内容を参照させたいセル番地「A1」まで「"」で括ってしまっているからです。
#1さん言われるように、
=INDIRECT(A1&"!J"&$B$12+4)
とすべきです。
    • good
    • 0

""で囲んでしまうと「その文字列」と認識されてしまいます。

この例でいうと「A1というシートがあるはずだ」と認識され「そんなものはない」からエラーとなってしまうのです。

=INDIRECT(A1&"!J"&$B$12+4)

のように参照セル表記部分は""から外に出してあげるとちゃんと参照します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!