Q&A
解決済み

【Excel INDIRECT関数】オートフィルができない

さやさに
ルーキー

公坊さんのコメント
公坊
公坊さん
Gマスター

medal ベストアンサー獲得数 230 件

さやさにさんの

Excel、$A$1の文字列と同じ名前の別シートから
A1〜C1、F1〜G1、J1〜L1、、、(まだ足したいものがあります)をSUMで合計した数値を抽出したいと思っています。

=SUM(INDIRECT($A$1&"!A1:C1"),INDIRECT($A$1&"!F1:G1"),INDIRECT($A$1&"J1:L1"))
このように数式を入力すると、エラーは発生せず、成功したのですが、
オートフィルで下の行に数式コピーをして
A2:C2....となっていくようにしたい

で、Microsoft Copilot(Bing) Chat GPT への回答です

Excelでのご質問、承知しました。`INDIRECT`関数を使用して、$A$1の文字列と同じ名前の別シートから特定の範囲を合計する方法をご案内します。オートフィルを使用して、下の行に数式をコピーする際には、セル参照を相対参照に変更する必要があります。以下のように数式を修正してみてください。

```excel
=SUM(INDIRECT($A$1&"!A"&ROW()&":C"&ROW()), INDIRECT($A$1&"!F"&ROW()&":G"&ROW()), INDIRECT($A$1&"!J"&ROW()&":L"&ROW()))
```

この数式では、`ROW()`関数を使用して、現在の行番号を取得し、それを範囲の一部として組み込んでいます。これにより、オートフィルを使って数式を下にドラッグすると、`A1:C1`が`A2:C2`、`A3:C3`と自動的に更新されます。

さらに範囲を追加したい場合は、同じパターンで`INDIRECT`関数を追加していけば大丈夫です。例えば、次の範囲`O1:Q1`を追加する場合は、以下のようになります。

```excel
=SUM(INDIRECT($A$1&"!A"&ROW()&":C"&ROW()), INDIRECT($A$1&"!F"&ROW()&":G"&ROW()), INDIRECT($A$1&"!J"&ROW()&":L"&ROW()), INDIRECT($A$1&"!O"&ROW()&":Q"&ROW()))
```

この方法で、必要な範囲をすべて合計することができます。試してみてください。何か他にもお手伝いできることがあれば、お知らせください。🙂
  • 5