プロが教えるわが家の防犯対策術!

エクセルにて
式①を式③の様に列コピーしたいです。
現状は式②の様にコピーされてしまいます。

式①=SUMIF('計算用'!E3:E140,"〇",'計算用'!D3:D140)

式②=SUMIF('計算用'!F3:F140,"〇",'計算用'!E3:E140)

式③=SUMIF('計算用'!G3:G140,"〇",'計算用'!F3:F140)

どのような操作または関数を使えばよいでしょうか?
ご教示頂けると大変助かります。
お願い致します。

A 回答 (3件)

ご質問者のご要望は、「D列を集計する数式を右隣りへコピーしたとき、F列を集計するようにしたい」


というものだと理解しました。
つまり、数式を記述するセルが1つ右へ移動したとき、計算対象セルが2つ右へ移動するような数式にするための工夫が必要ということになります。
そこで、
式①=SUMIF('計算用'!E3:E140,"〇",'計算用'!D3:D140)
という数式を記述しているとのこですが、これを
式➉=SUMIF(OFFSET(計算用!$E$3,0,(COLUMN(A3)-1)*2,138),"〇",OFFSET(計算用!$D$3,0,(COLUMN(A3)-1)*2,138))
に修正します。
解説すると
式➉の中の「(COLUMN(A3)-1)*2」の部分は「0」になります。このため、集計範囲はOFFSET(計算用!$D$3,0,0,138)となり、D3セルから高さ138セル分の範囲(つまり、D3~D140の範囲)という意味になります。
式➉を右隣りへコピーすると
式⑪=SUMIF(OFFSET(計算用!$E$3,0,(COLUMN(B3)-1)*2,138),"〇",OFFSET(計算用!$D$3,0,(COLUMN(B3)-1)*2,138))
となります。
式⑪の中の「COLUMN(B3)-1)*2」の部分は「2」になります。このため、集計範囲はOFFSET(計算用!$D$3,0,2,138)となり、F3セルから高さ138セル分の範囲(つまり、F3~F140の範囲)という意味になります。
従って、この工夫により右隣りにコピーしたときにF列が集計されるようになるというわけです。
    • good
    • 1
この回答へのお礼

大変丁寧に解説頂きありがとうございました。
回答者様の案で実際に作業しました、すぐに思ったものにできました。

お礼日時:2021/11/12 11:29

案① 式①を=SUMIF('計算用'!$E$3:$E$140,"〇",'計算用'!$D$3:$D$140)


とします。
コピーしたら、修正します。コピー先がたくさんあるとやや大変です。

案② ①のセル(列)と③のセル(列)の間に列を挿入します。
 式①を式③にコピーします。
 必要があれば、挿入したセル(列)を削除します。
    • good
    • 0
この回答へのお礼

ご教示頂きありがとうございます。
簡単な方法で私でも理解できました。

お礼日時:2021/11/12 11:28

こんばんは。



他に、もっと良い指定方法があるかも知れませんが、一応下記で可能かと。


式①を、セルのどこに入れるか不明ですが、A1など、1行に入れるなら、
下記の●を1行の2倍の2を、B3など3行に入れるなら6を入れて下さい。
(2か所あるので、同じ様に揃えて入力して下さい。)

=SUMIF(OFFSET(計算用!$E$3:$E$140,ROW()*2-●,0),"〇",OFFSET(計算用!$D$3:$D$140,ROW()*2-●,0))

=OFFSET(基準セル,縦に何行ずらすか, 横に何列ずらすか)
=OFFSET(計算用!$E$3:$E$140,ROW()*2-●,0
縦にオフセットを掛けるため、ROW():関数を入れたセルの行を取得し、
 2倍する、一番上の関数の行を0にするために、帳尻を合わせています。
横にはオフセットを掛けないので、0を指定。省略不可。
    • good
    • 0
この回答へのお礼

私の情報が不足しているなか回答頂きありがとうございました。
私が浅学のためこの方法ではうまくいきませんでしたが、
OFFSET、RAW関数を丁寧に解説頂き大変勉強になりました。

お礼日時:2021/11/12 11:32

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