- ベストアンサー
エクセルのシートを超えた数式コピー(?)
給与をエクセルにて管理してます。 4月~3月までのシートをそれぞれ作成してます。別のシートに集計として個人の集計が出るようにしようと思います。 そこで質問ですが、Aさんの4月の数式は ='4月'!$F$6 です。この数式を元に5月~3月まで集計を取りたいのですが、上記の数式をコピーしたら='4月'!$F$6になっていまいます。ではなく ='5月'!$F$6 ='6月'!$F$6 のように自動的に連続して数式を作成したいのです。現在は、手打ちにて月変更してます。 説明が分かりにくいかもしれませんが、宜しくお願いします。 OSはXPで、エクセルは2003です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
NO1です。既に回答済みですので参考にして下さい。 >この数式の訳をお願いできますでしょうか? ⇒シート名称の変位を月数と捉え、ROW関数(セルの行数番号を返す)を利用して月数取得を実現しています。 月は4~3の範囲と想定し、12以下はROW(A4)関数を起点に+1づつの値、12を超える場合は、12を差し引く事で1~3を捻出します。 後は、&"月!F6"を加えた文字列をINDIRECT関数を利用してA1参照形式とすれば、初回は=4月!F6→5月!F6・・・=3月!F6の実際のセル参照ができるという次第です。
その他の回答 (2)
他の方の回答を解説することを#1さんお許しください。 =INDIRECT(IF(ROW(A4)>12,ROW(A4)-12,ROW(A4))&"月!F6") > この数式の訳をお願いできますでしょうか? これは、4行目に4月、5行目に5月と配置されている前提です。 IF(ROW(A4)>12 ここで、行番号を月の数にしたいのですが、12月の次は1月なので、 チェックしています。 IF(ROW(A4)>12,ROW(A4)-12,ROW(A4)) で12行目より下(行番号が12より大きい)なら、12を引きます、 13行目なら1になります。 この数字を元に「12月!F6」や「1月!F6」という文字列を作り出しています。 INDIRECT関数はこの中に書かれた文字列を、セル参照の形に変換します。 =INDIRECT("12月!F6") は =12月!F6 と等価です。 この式をコピーしていけば、実際の式の内容は、その数式のある行番号によって、変化していくわけです。 4行目 → =4月!F6 5行目 → =5月!F6 13行目 → =1月!F6
お礼
有難うございます。参考になりました。
- mu2011
- ベストアンサー率38% (1910/4994)
任意セルに次の数式を入力して12行分コピーで如何でしょうか。 =INDIRECT(IF(ROW(A4)>12,ROW(A4)-12,ROW(A4))&"月!F6")
補足
早速有難うございます。 大変すみませんが、この数式の訳をお願いできますでしょうか?
お礼
有難うございます。参考になります。