• ベストアンサー

エクセルの合計(SUM)の設定について

合計(SUM)の設定の仕方について教えて下さい。 SUM=(A1:A10:A19:A28:A37:A46・・・・・・・・・・・・・・・・・・・・・・・) というように、セルを9おきに指定したいのですが、指定するセルの数が多すぎて、間違えて指定してしまう場合があります。 一つ一つセルを指定せずに、作成する方法があったら教えて下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 配列数式ですので、入力完了時、shift+ctrl+enterキーを同時押下して下さい。 =SUM(IF(MOD(ROW(計数範囲),9)=1,計数範囲)) 因みに=MOD(ROW(),9)を空き列に設定して、計数範囲コピーすると1と表示されるセルが、A1,A10,A19・・・となっていると思いますのでお試し下さい。 蛇足ですが、配列数式の例題でよく引用されていますので、SUM(IF(条件,範囲))は、覚えておいても損ではないと思います。

morito_55
質問者

お礼

ありがとうございます。 指定範囲をAM5~AM386で、AM5,AM16,AM27,AM38・・・・・と11おきにする場合、下記の式で良いのでしょうか。 =SUM(IF(MOD(ROW(AM5:AM386),11)=5,AM5:AM386)) うまくいきませんので、ご指導をお願いします。

その他の回答 (5)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.6

no.3です。 >指定範囲をAM5~AM386で、AM5,AM16,AM27,AM38・・・・・と11おきにする場合、下記の式で良いのでしょうか。 >=SUM(IF(MOD(ROW(AM5:AM386),11)=5,AM5:AM386)) 数式は合っています。 「うまくいかない」と記述ありますが抽象的すぎます。具体的に記述して下さい。

  • chablis
  • ベストアンサー率33% (1/3)
回答No.5

No.3です。 あまりお役にたてなくて、すみません。 他の方の回答からヒントを得たのですが、集計したいということは、その主計したい行には、たとえば”小計”とか、他の列で設定されてますよね。 それがいちばん左としてA列だったとします。 =SUM(IF(A5:A386="小計",AM5:AM386)) と入力して、確定するときに、ShiftとCtrlとEnterを押します。 これで、A列に”小計”とある行の和だけを求めることができます。 条件式を別に作ってDSUMを使うより簡単だと思います。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

#1です。 >指定範囲をAM5~AM386で、AM5,AM16,AM27,AM38・・・・・と11おきにする場合、下記の式で良いのでしょうか。 =SUMPRODUCT((MOD(ROW(AM5:AM386),11)=5)*AM5:AM386) その通りです。こちらはそれで正常に計算できますよ。 途中から計算するセルの位置がずれてるとかありませんか? 5~386だと382行で11の倍数ではないですが... もし計算するセルの場所がランダムな場合は別の方法が必要です。 計算する行を指定する列を用意して =SUM(検索列範囲,条件,集計列範囲) になります。 例えばAN5:AN386の計算したい行に1と入力して =SUM(AN5:AN386,1,AM5:AM386) で計算できます。

morito_55
質問者

お礼

何度もありがとうございます。 すみません、私の書き方が間違っていました。 SUM(A1+A10+A19+A28+A37+A46+・・・・・・・・・・・・・・・・・・・・・・) でした。 この場合も同じでしょうか。 上手くいきません・・・。 よろしくお願いします。

  • chablis
  • ベストアンサー率33% (1/3)
回答No.2

SUMIFを使用されてはどうでしょうか。 9行ごとにB列(他の列でもOKです)に特定の値が設定されている場合に有効です。 A列を9行ごとに200行集計したいときに、その集計したい行のB列には10より大きいの数値が必ずあって、他の行のB列には10より大きい数値がない場合、 =SUMIF(B1:B200,">10",A1:A200) これで、B列が10より大きいという条件に合致するA列の和を求められます。 あるいは、テーブル形式になっていて、条件を設定できるのであれば、DSUMを使うことも可能です。 でも、たびたび同じような集計をされるのであれば、VBAでマクロを記述されるのがいちばん早いと思います。

morito_55
質問者

お礼

ありがとうございます。 AM5~AM386で、AM5,AM16,AM27,AM38・・・・・と11おきにしたいのですが、できれば詳しく教えていただきたく思います。 よろしくお願いします。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

A1~A100を9おきならこうなります。 =SUMPRODUCT((MOD(ROW(A1:A100),9)=1)*(A1:A100)) 上記がやってることは ROW(A1:A100)でその行の数値を抜き出し MOD(数値,9)で9で割ったあまりを出して結果が1の行を条件に A列の値を集計しています。 この式でA2,A11,A20....を集計する場合は =SUMPRODUCT((MOD(ROW(A1:A100),9)=2)*(A1:A100)) としてください

morito_55
質問者

お礼

ありがとうございます。 教えていただいた、式を応用して作っているのですが、うまくいきません。 指定範囲をAM5~AM386で、AM5,AM16,AM27,AM38・・・・・と11おきにする場合、下記の式で良いのでしょうか。 =SUMPRODUCT((MOD(ROW(AM5:AM386),11)=5)*AM5:AM386) うまくいきませんので、ご指導をお願いします。