マイぴょん博士
サポートアンバサダー
カテゴリー
ヘルプ
解決済み
【Excel INDIRECT関数】オートフィルができない
Excelについて質問です。
他の方が同じ質問をされていたのですが、
私は少し違ったパターンでIndirect関数を使用しています。
=INDIRECT($A$1&"!A1:C1")と範囲指定し、
その下のセルに
=INDIRECT($A$1&"!A2:C2")となるように
オートフィルで数式をコピーしていきたいです。
ROWを使用するなどして、可能でしょうか。
何か他に方法がありましたら、教えていただきたいです。
よろしくお願いします。
5 件の回答
あいだの1件を表示
ベストアンサー
ベストアンサー獲得数 157 件
>>2 さやさにさん
SUM内ならINDIRECT内も範囲指定でも良いですね。
これでどうですか?
=SUM(INDIRECT($A$1&"!A"&ROW(A1)&":C"&ROW(C1)),INDIRECT($A$1&"!F"&ROW(F1)&":G"&ROW(G1)),INDIRECT($A$1&"!J"&ROW(J1)&":L"&ROW(L1)))
ちなみにD,E,H,I,…が文字列もしくは空白なら
=SUM(INDIRECT($A$1&"!A"&ROW(A1)&":L"&ROW(L1))
でも大丈夫だと思います。
SUM内ならINDIRECT内も範囲指定でも良いですね。
これでどうですか?
=SUM(INDIRECT($A$1&"!A"&ROW(A1)&":C"&ROW(C1)),INDIRECT($A$1&"!F"&ROW(F1)&":G"&ROW(G1)),INDIRECT($A$1&"!J"&ROW(J1)&":L"&ROW(L1)))
ちなみにD,E,H,I,…が文字列もしくは空白なら
=SUM(INDIRECT($A$1&"!A"&ROW(A1)&":L"&ROW(L1))
でも大丈夫だと思います。
この回答はベストアンサーに選ばれました。
- 3
iPhone XR(mineo(au)) ベストアンサー獲得数 34 件
こんにちは。
=INDIRECT($A$1&"!A" &ROW(D1) & ":C" &ROW(D1))
D1に入れてみるとき、こんな感じです。ROW使って良いと思います。他の方法は考えればたくさんありそうですが、ROWですっきり出来ますね。
=INDIRECT($A$1&"!A" &ROW(D1) & ":C" &ROW(D1))
D1に入れてみるとき、こんな感じです。ROW使って良いと思います。他の方法は考えればたくさんありそうですが、ROWですっきり出来ますね。
- 4
ベストアンサー獲得数 266 件
さやさにさんの
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()))
```
この方法で、必要な範囲をすべて合計することができます。試してみてください。何か他にもお手伝いできることがあれば、お知らせください。🙂
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
ベストアンサー獲得数 157 件
>INDIRECT関数の" ! & の入れる位置があまり理解し切れていない
INDIRECT内を少し解説すると
通常は
①"シート1!A1:C1"
となります。
A1に"シート1"と入力し、それを参照するので
②$A$1 & "!A1:C1"
となります。
オートフィルを使うので
A1 の 1 と C1 の 1 を変化させたいので
まずはC1 の 1を
③$A$1 & "!A1:C" & 1
のように"で閉じて1を&で繋げます。
さらにA1 の 1を
④$A$1 & "!A" & 1 & ":C" & 1
と途中を分断し、両端を"で塞ぎ1との間を&で繋げます。
②と③と④は同じものです。
分断した両端を"で閉じて&で繋げます。
"から"までが文字列扱いです。
分かりやすい様に表示すると
⑤$A$1 & " " & 1 & " " & 1
→セル & " " & 数字 & " " & 数字
となり、分断したところが
⑥" & 1 & "
となっているのが分かると思います。
そしてこの「1」をオートフィルによって変化させたいのでROW関数に変えます。
⑦$A$1 & "!A" & ROW(A1) & ":C" & ROW(C1)
→セル & 文字列 & 関数 & 文字列 & 関数
セルと関数は文字列では無いので
" "の外に出して&で繋げるイメージ
INDIRECT内を少し解説すると
通常は
①"シート1!A1:C1"
となります。
A1に"シート1"と入力し、それを参照するので
②$A$1 & "!A1:C1"
となります。
オートフィルを使うので
A1 の 1 と C1 の 1 を変化させたいので
まずはC1 の 1を
③$A$1 & "!A1:C" & 1
のように"で閉じて1を&で繋げます。
さらにA1 の 1を
④$A$1 & "!A" & 1 & ":C" & 1
と途中を分断し、両端を"で塞ぎ1との間を&で繋げます。
②と③と④は同じものです。
分断した両端を"で閉じて&で繋げます。
"から"までが文字列扱いです。
分かりやすい様に表示すると
⑤$A$1 & " " & 1 & " " & 1
→セル & " " & 数字 & " " & 数字
となり、分断したところが
⑥" & 1 & "
となっているのが分かると思います。
そしてこの「1」をオートフィルによって変化させたいのでROW関数に変えます。
⑦$A$1 & "!A" & ROW(A1) & ":C" & ROW(C1)
→セル & 文字列 & 関数 & 文字列 & 関数
セルと関数は文字列では無いので
" "の外に出して&で繋げるイメージ
- 10