重要なお知らせ

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

【GOLF me!】初月無料お試し

ワークシートが「1月」から「12月」まで12枚あります。
それぞれのワークシートの書式は同じです。

別に「合計表」があります。
この合計表のA1のセルに「1月」入力すると
他のセルに「1月」のワークシートのデータ引っ張ってくる。
ということがしたいです。

普通、別のワークシートからデータを持ってくると
='1月'!A2
となると思います。
この’1月’部分を容易に変更することができるようにしたいのです。

いい方法はないでしょうか?

A 回答 (4件)

INDIRECT関数を使ってそのワークシートを呼び出しあるセル番地のデータを表示されることはできますが、そのワークシートのある範囲を表示させたい場合には単なるINDIRECT関数だけではうまくできません。


次のようにしてはどうでしょう。
例えば1月のシートのA1セルからC5セルまでを表示させる場合です。
合計表のA1セルに1月と入力し、例えばA2セルには次の式を入力し、C2セルまでオートフィルドラッグしたのちに下方にも6行目までオートフィルドラッグします。
=INDEX(INDIRECT("'" & $A$1 & "'!A:D"),ROW(A1),COLUMN(A1))
勿論1月のシートのA1セルのデータを表示させるのでしたら次の式でもよいことになります。
=INDIRECT("'" & $A$1 & "'!A1")
    • good
    • 0

1行目にシート名が入力されていると、シート名+セル番地の参照文字列は


="'" & A1 & "'!A2"

この参照文字列を、参照式として認識させるにはINDIRECT関数を使います。
http://office.microsoft.com/ja-jp/excel/HP052091 …

以上から、
=INDIRECT("'" & A$1 & "'!A2")
となります。

B列、C列・・・に2月、3月・・・とあっても、上記の式のコピーだけで対応できるはずです。
    • good
    • 0

> 他のセルに「1月」のワークシートのデータ引っ張ってくる。


> ということがしたいです。

 書式が同じ、もしくは一定のルールに従った書式
 ならば、VBAで書いてしまいます。

> この’1月’部分を容易に変更することができるようにしたいのです。

 容易の部分をもう少し詳しく説明していただければ、
 この質問を見ている他の人にもイメージが就きやすいかと思います。
    • good
    • 0

INDIRECT関数を使います。



=INDIRECT("'"&A1&"'!A2")

INDIRECT関数の使い方
http://excel.onushi.com/function/indirect.htm
    • good
    • 0

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