dポイントプレゼントキャンペーン実施中!

初めての投稿よろしくお願いします。

エクセルで作業効率化のために別シート(担当者シート)にあるデータから集計用シートに抽出しようとしています。
各シートともデータの入っている範囲は決まっているので、
特定のセルにシート名を入力しそれに自動的に対応したシートを参照してデータを抽出するようにしたく

集計シートの抽出して欲しいセルに

=IF(INDIRECT($A$1&"!AA1")="","",INDIRECT($A$1&"!AA1"))
※A1は集計シート上の、シート名を入力したセル
※AA1は担当者シートの抽出したいセル

を作成しました。
これは正常に計算できるのですが、問題はこの関数をオートフィル機能を使って複数列/行に複製しようとしましたら相対参照されて欲しいAA1が変わらないのです。
おそらくは””によって文字列として指定されているからだと思うのですが、10万近いセルを扱うので、一つ一つ打ち込みなおすことは現実的ではありません。
担当者シートは増減するので、やはりシート名を入力することで自動的に抽出できるようにしたいです。
どうか知恵をお貸しください。

A 回答 (3件)

こんにちは



>相対参照されて欲しいAA1が変わらないのです。
>””によって文字列として指定されているからだと思うのですが
その通りです。
参照アドレスではないアドレス(もどき)まで変更されてしまったら、たまったものではないでしょうから。
INDIRECT関数自体がそういう性質なので、自動変更されないアドレス参照したい場合に利用したりします。

"AA1"の部分を変えたければ、エクセルにそのように認識される形式にしておけば良いでしょう。
例えば、下方へフィルコピーした際に、AA2、AA3、AA4・・・となるようにしたい場合は、"AA1"ではなく
 "AA"&ROW(A1)
のようにしておくことで、「ROW(A1)」部分が参照と見做されますので、順にA1、A2、A3・・・と変化するようになります。
    • good
    • 1
この回答へのお礼

ありがとう

お早い回答ありがとうございました!
無事うまくいきまして仕上げることができました。

お礼日時:2020/02/26 16:26

リロードしてなかった…被りで失礼しました。

    • good
    • 0

>おそらくは””によって文字列として指定されているからだと思うのですが



その通りです。

>INDIRECT($A$1&"!AA1")
→INDIRECT($A$1&"!AA"&ROW(A1))

とかですかね。
    • good
    • 1
この回答へのお礼

いえいえ回答して頂きありがとうございました!

お礼日時:2020/02/26 16:27

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

このQ&Aを見た人はこんなQ&Aも見ています