- ベストアンサー
関数のコピー
エクセルでコピーの仕方を教えてください。 たとえばシート1のA6には1日の合計が入っています。 で、シート2のA6にはシート1のA6プラス2日の合計。 シート3のA6にはシート2のA6プラス3日の合計。 それをシート1枚1枚設定するのではなく一発で設定できるようにしたいのですが可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >シート1のA6には1日の合計 が入っています。 は、そのままですね。 Sheet.... というような、決まった名称でないと出来ません。 シート2のA6に以下の式を[その日の合計]の部分に実際の式を入れて、貼り付け =INDIRECT("Sheet"&REPLACE(CELL("filename",A1),1,FIND("eet",CELL("filename",A1))+2,"")-1&"!A6")+[その日の合計] 「eet」 は、Sheet の後ろから三文字です。Cell関数は、必ず、A1を入れないと、循環参照を起こしてしまいます。 また、飛び番があっても出来ません。そこで、#REF!エラーを起こします。この場合は、マクロ関数やVBAのユーザー定義関数を使わないと出来ません。 Sheet2....Sheet30 まで、Sheet1を除いて、シートタブで全て選択して、A6にセルポインターを置き、F2を押して、Enterで出来るはずです。 実務上、考えているよりも、入力したほうが速いと思いますが、式を考えてみるのは良いかもしれません。
その他の回答 (2)
- prairie-gentian
- ベストアンサー率30% (39/128)
多分、累計のことでしょうね。 各シートの“A4”を拾い出してくるシートを作ったほうがいいでしょう。数式としては、indirect関数を使います。累計シート("total")の数式は以下の通りです。 A B シート名 そのシートのA4の値 0900 =indirect(a1&"a4") これで、0900シートのA4の値を引っ張ってきます。 0901 =indirect(a2&"a4") これで、0901シートのA4の値を引っ張ってきます。 これを30日まで作ります。c列に、sum関数を使って累計を算出しておきます。 それで、0901シートのA6には、 =total!c2 と入れます。 これを面倒ですが、30日分書けば、ご希望のシートができると思います。 “前のシート”というのはマクロを使っても面倒じゃないでしょうか?シートは移動できますので・・・。
- imogasi
- ベストアンサー率27% (4737/17069)
質問の意味がわからないようー。 Sheet1 Sheet2 Sheet3 (A6) 1324 (A6)1324+B (A6)1326+B+C B、Cはどこから取ってくるのですか。 「1日の合計」「2日の合計」「3日の合計」は (1)一日分の合計のこと? (2)たとえば9月1日分とかのこと。 (A)1日分の合計は単なる計数と考えてよいのか、 (B)どこかのデータを集計するのか。
補足
説明不足ですみません。 シート1が9月1日分、シート2が9月2日分で30日分までシートがあります。 それぞれのシートA4にその日の合計が記入されてます。 で、シート2のA6に前日(前のシート)のA6プラスシート2のA4という意味です。 シート3のA6は、シート2のA6プラスシート3のA4という意味です。 これでわかりますでしょうか?