• ベストアンサー

エクセルでちょっと変わった合計の求め方

エクセルで以下のような事は簡単にできるでしょうか。       A   B   C  ・  ・  ・   1   3   0   2   2   1   2   1   3   1   2   1   4    5   3   2   0   6   3   1   0   7   1   2   1   8   9   3   2   2   ・   ・   ・ 12013  1   2   3 12014  2   1   3 12015  2   1   4 12016 12017 合計 合計 合計 12018 合計 合計 合計 12019 合計 合計 合計 12015行より上は入力された数字です。ここで、 Aの12017には、A1+A5+A9+・・・・+A12013、の合計 Bの12017には、B1+B5+B9+・・・・+B12013、の合計 Cの12017には、C1+C5+C9+・・・・+C12013、の合計 Aの12018には、A2+A6+A10+・・・・+A12014、の合計 Bの12018には、B2+B6+B10+・・・・+B12014、の合計      ・      ・ と、いうようにする場合、Aの12017にどのような数式を入れたらよいでしょうか? (=A1+A5+A9+A13+・・・・+A12013、なんて入力してられないので) Aの12017に数式がはいればBの12017以降はそれをコピーすればできると思いますので。 マクロは使った事ががありませんので関数とか利用した数式でできないでしょうか。 ちなみに簡素化のため列3X行3の入力された数字のかたまりで表示しましたが実際はもっと大きな かたまりです。また入力された数字の最後が何万何千何百何十何行になるかは データによって異なっています。

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

  • ベストアンサー
  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.6

こんばんは どこか空いている列(仮にD列)を作業列にしては如何でしょうか? D1に =MOD(ROW(),4) 下方向にフィルコピー 11行目までのデータでしか検証していませんが 例として A13に =SUMIF($D$1:$D$11,MOD(ROW(),4),A$1:A$11) C列、15行目までそれぞれフィルコピー ($の位置に注意して下さい) 注) 対応する行を間違わないようにご注意下さい。

kanbatu
質問者

お礼

ご回答ありがとうございました。 丁寧に式を書いていただきありがとうございました。教えていただいた方法でできました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.10

私も配列数式でやる方法の、代表例なので、お勧めします。 しかしVBAにもぴったりのやさしい問題です。 Sub test01() t = 0 For i = 1 To 1215 Step 4 '4とび t = t + cell(i, "A") Next i Cells(1217, "A") = t 'A1217のセルへセット End Sub 類推によってA列がB列になる場合 Cells(i,”B”)や A2から始まる場合は、i=1のところをi=2とスタート行によって変えてください

kanbatu
質問者

お礼

ご回答ありがとうございます。 マクロ・・ですよね。覚えないといけないと思いつつもなかなか出来ないのですが、確かに等ピッチで 足していく、という作業はやさしい例なので教えて頂いた式を使って勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.9

以下の方法は以下がでしょうか。 ・A12017は、{=SUM(IF(MOD(ROW(A$1:A$12015),4)=1,A$1:A$12015))} ・A12018は、{=SUM(IF(MOD(ROW(A$1:A$12015),4)=2,A$1:A$12015))} ・横方向にコピーして下さい。 ※{}は、関数入力完了時、shift+crtl+enterすると付加されます。

kanbatu
質問者

お礼

ご回答ありがとうございます。 SUMとIFを使った方法ですか。MODとかあってぱっと見ではわからないのですが検証してみます。 ひょっとすると一番私にあっているやり方かもしれません・・・ (本当は関数の使い方やマクロを覚えないといけないのですが)

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんにちは。 それは、こういうことかな? A1+A5+A9.... =SUMPRODUCT((MOD(A$1:A$12015,4)=1)*A$1:A$12015) A2+A6+A10..... =SUMPRODUCT((MOD(A$1:A$12015,4)=2)*A$1:A$12015) 後は、必要に従って、フィルハンドルでドラッグ・コピーしてください。ただ、こういう計算は、ExcelのVersion が影響することがあります。Excel 2000を含むそれ以下の場合は、一旦、#5さんや#7さんの方法で検算したほうが無難のようです。後は、VBAのユーザー定義関数がありますが、多少、計算スピードがSUMPRODUCTと比較すると遅くなります。

kanbatu
質問者

お礼

ご回答ありがとうございます。 ご回答今見ました。今回はSUMIFで対応したのですが、SUMPRODUCTですか、簡単そうですね。 私はピッチサマリーみたいな関数がひょっとしてないかと思っていたのですが・・・。  =ピッチサマリー(開始行,足していくピッチ,終了行) こんな関数あったら便利ではないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
回答No.7

A1:A12013の範囲のうち、 偶数行の和を求めるのは: =sumproduct(A1:A12013,row(A1:A12013)-even(row(A1:A12013))+1) 奇数行は上記のevenをoddに書き換えるだけ。 > 最後が何万何千何百何十何行になるかは > データによって異なっています。 そうなら、合計欄は表の最初に作るのが基本。所詮Excelでは 65000ちょいしか扱えないけど。

kanbatu
質問者

お礼

ご回答ありがとうございます。 ご回答今見ました。すでに回答いただいたSUMIFで今回は対応しました。 SUMPRODUCTという関数を使うのですね。同様のデータ整理はまだまだ続くのでまた試してみます。 >合計欄は表の最初に作るのが基本 そのとおりですね、形を変えてみます。

全文を見る
すると、全ての回答が全文表示されます。
noname#12223
noname#12223
回答No.5

こんばんは(^^。 私もあんまりEXCEL詳しくはないんですが、私なら↓にします。 (1)一番左の列は、上から単純に1,2,3,4,・・・・ (2)隣の列に、=mod(すぐ左のセル、4) (3)合計は、=sumif((2)の列,"=0",合計したい列) 素人強引法(笑

kanbatu
質問者

お礼

ご回答ありがとうございました。 一行追加してSUMIFを使う方法でできました。

全文を見る
すると、全ての回答が全文表示されます。
noname#135138
noname#135138
回答No.4

ちょっと式を間違いました SUM(A1:A12013) でした。 これは A1 から A12013 の間にあるセルの数値を合計します。 参考URLも参考にしてみてください。

参考URL:
http://pc21.nikkeibp.co.jp/tech/excel36/01/
kanbatu
質問者

お礼

ご回答ありがとうございました。 質問の最初に飛ばし飛ばしで足していく、って書いておいた方が良かったですね。

全文を見る
すると、全ての回答が全文表示されます。
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.3

質問のままで加工を加えないなら単純式を入れるしかありませんが 計算式の長さに制限があり大きなもの出来ません。 加工する方法としては、a列に1列挿入して 質問の12017行で計算対象となる行に例えば1を、12018は2とします。 後は計算するセルでDSUM関数を使えば出来ます。 >>また入力された数字の最後が何万何千何百何十何行になるかは Excelは65536行までしかありません。また、列は225列です。 この内3割も消費すれば重くて使いものになりません。 大量のデータを計算するならAccessを視野に入ることです。

kanbatu
質問者

お礼

ご回答ありがとうございます。 DSUM関数でもできると思いますが、今回は理解し易かったSUMIFを使う方法で対応しました。 (使い方は検索しましたが、簡単に理解できませんでして・・・) 確かにファイルは重いです。データを作るまでに作業をするシートもあるので70Mにもなっている ものもあります。

全文を見る
すると、全ての回答が全文表示されます。
  • mryokko
  • ベストアンサー率20% (69/337)
回答No.2

あまりに基本的なことなので間違っていたらごめんなさい。 =sum(a1:a12017)で求められるはずですよ。その他も応用(というほどでもないけど)でできます。

kanbatu
質問者

お礼

ご回答ありがとうございました。 質問文に飛ばし飛ばし足していく、って一言入れておくべきでした。

全文を見る
すると、全ての回答が全文表示されます。
noname#135138
noname#135138
回答No.1

ただ合計するだけなら SUM(A1:A12017) でどうでしょうか

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル・単純に合計を出す・・

    表を作っています。 例えばセルを A1~A3,A4~A6,A7~A9 と結合させてそれぞれ数値を入力してます。 B列は結合無しでそれぞれ数値を入力しています。 A+Bの合計をC列に計算させます。 C1に関数を入力して、C2以降はコピーします。 単純に(A1+B1)にすると C1は正しく合計してくれるのですが コピーしたC2は(A2+B1)となってしまい Aが0として計算されてしまいます。 (A$1)と、してしまうと当然ですが C4以降の計算が狂います。 C4は結合されたA4~A6を見てほしいのです。 実際に作っている表は、もっと数が多いので 1つづつ計算では・・・ 何かよい方法はないでしょうか? よろしくお願いします。

  • EXCEL 2003で条件に合った合計を求めたい

    ______A ____B____ C_____D 1___111___ 1 ___10___ 60 2___111___ 2 ___10 3___222___ 2 ___10 4___333___ 1 ___10 5___333___ 2 ___10 6___333___ 3 ___10 7___444___ 1 ___10 8___444___ 3 ___10 9___555___ 1 ___10 Excel 2003環境において、上記A1:C9を対象に関数で下記条件を元に数式をD1に入力して値を求めたいです。 条件: A列の同じ値のセルを一つのグループとし、かつその中で、B列で1から始まる連番となっているグループを対象にC列のセルを合計する。 上記のセル範囲で条件に合う行は1,2,4,5,6,9行目で答えは60になります。 SUMPRODUCT関数やIF関数を併用してみましたが、うまく作ることができませんでした。 なんとか作業列やVBAを用いずに一つの数式で済ませたいです。 よろしくお願いします。

  • エクセルで合計を求めるために

    エクセルで合計の数値を求めたいです 状況としては A列に数字が入力されています B列に入力があったものだけの合計をC1に表示させたいです 例としては A列 B列 100  1 150 200 250  山   この場合の合計をC1に100+250=350 B列の入力内容は状況によって変わります 現在はC1=IF(A1="","",B1)という関数を別の箇所に作って、それの合計を出させていますが、出来れば別の箇所に計算式を作らずにすむ方法を教えてください。お願いします

  • エクセル 列の数値の合計の表示について、

    エクセル 列の数値の合計の表示について、 ごく基本的なことだと思いますが、教えてください。 例えばA列に上から順に数値を入れていき、その合計をB列に表示させるとします。 私のやり方はB列の計算式を=B1+A2としてこのコピーを、数値の数だけ下に下げることで目的を達しました。 すでにA列に数値が何個も入力している場合はこれで良いのですが・・。 ここから質問なのですが、例えばA列に現在10個数値がありB列に順番にその合計が出ているとします。 次にA列11行目に新規に数値を入力した時に、自動的にその合計がB列に出るようにしたいのです。 予めB列の数式のコピーを11行目以降に延ばしておくと、10行目の合計の数値が延ばした行まで並ぶので困っています。 よろしくお願いします。

  • エクセルの条件付き合計の出し方

    たとえば下のようにABC列がありB列に数字があるときC3の*にはA1とA2の合計を、C5にはA2とA4の合計を、C6にはA2とA4の合計C9にはA7とA8の合計を出す方法すなわち、Bに数字があるとき、A列の1行上と2行上を合計する式お願いします。     A B C   1 1       2 3       3 7 2 *   4 6 5 9 3 * 6 4 7 * 7 6 8 8 9 5 6 *

  • Excelで表のある日以前の値を合計する sumif?

    こんにちは。 ExcelでA列の1行目に2010/1/1から31行目に2010/1/31まで、日付が並んでいます。 B列の1行目に1から31行目に31まで、1ずつ増える数字が並んでいます。 セルC1に2010/1/10と入力した場合に、セルD1に55と返すような数式を書きたいと思っています。 要するに、セルC1から以前の日をA列で見つけて、同じ行のB列の値を合計したいのです。 sumifを使ってみましたが、うまくいきません。 ご指導、お願いいたします。

  • エクセル 条件付きの合計を速くできないか

    エクセルで以下の処理を行うと、時間が5分以上かかり、 もう少し早くできる方法があるなら教えてください。 A列は01から最大99まで、B列はAから最大ZZまで、C列は000から最大999まで、D列はランダムな数字、E列は○か×か△のデータが入っています。 例えば、ある行は、 03 BC 000 654 ○ また、ある行は、 34 C 009 76598 × です。 そして求めたいのは、D列の合計です。 01でAで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 同様に 01でBで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 同じことを繰り返し、最後に 99でZZで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 合計を求める関数は、SUMPRODUCT関数を使いました。

  • (エクセル)数値だけ合計したい

    複数のセルに入力されている数値だけを抽出し、合計したいと思います。   A     B    C    D    E    F    G 1 合計金額 金額1  金額1理由 金額2  金額2理由 金額3  金額3理由 2      1000円   菓子  3 1500円  1000円   菓子   500円   飲料 4 1520円  1000円   菓子   500円   飲料   20円   消費税 以上のようにA列に合計金額を計算させる数式を考えています。 (ルール) ・B列とC列、D列とE列、F列とG列はセットです。例えば、B列には入力されているが、C列は空白ということはない ・B列とC列→D列とE列→F列とG列の順に入力されていく ・2行目、3行目のように、常に金額が3つとも入力されているとは限らない ・金額が入力されているB列、D列、F列には、「○○円」と「円」も一緒に入力されている (やりたいこと) A列に合計金額を反映させないのですが、以下のように規制したいです (1)2行目のように、金額が1つだけの場合(B列とC列しか入力されていない場合)は、合計金額は空白セルにする (2)3行目、4行目のように、金額が2つ以上の場合(D列とE列や、F列とG列にも入力されている場合)は、合計金額を反映させる (3)合計金額は「○○円」と「円」も一緒に反映させる (考えたこと) B列の金額とB列+D列+F列の合計を比較し、同じならA列は空白、違う場合はB列+D列+F列の合計をA列に反映させるようIF関数を使えばいいのではないか、と考えました。 そこで、まずB列+D列+F列の合計を出す関数を作ってみたのですが、うまくいきませんでした。 =SUM(SUBSTITUTE(B2,"円","")*1,SUBSTITUTE(D2,"円","")*1,SUBSTITUTE(F2,"円","")*1) とすると、金額が3つとも入力されていればいいですが、一つでも空白セルがあると、#VALUE!とエラーになってしまいます。 SUMPRODUCTを使用してできるかと思いましたが、同じ結果でした。 どうすれば、思っているようになるのでしょうか。 ご存知の方がいましたら教えてください。 よろしくお願いします。

  • エクセルで2つの条件に合うセルの合計

    エクセルで2つの条件に合うセルの合計 こんにちは。 例えば、以下のようにシート上にあるとします。 1 上 100 2 上 200 1 下 150 2 下 500 1 下 30 A列は1か2の数字 B列は上か下の文字 C列は数字 このシートでA列が1でかつ、B列が下の場合のC列を合計したいのですが、SUMIF関数でできるのでしょうか?他の関数でもかまいません。自分で関数を作るのはなしでお願いします。 (動作が重くなるので) ちなみに、上記の場合は、3行目と5行目が該当しますので、150+30=180となります。 -- エクセル2003

  • エクセルの関数でセルの合計を求めたい(条件付) 

    関数で   A B C  1 ○ 1 2 × × 3 ○ 3 4 × × 5 × × 6 ○ 2    ※ ×は空白です。 A行がが○だった時、B列の数字と一つ下の○の行のB列の数字の合計をC行に求めたいと思っています。 例えばC1には4、C3には5と言った感じです。 IF関数をネストしようと思ったのですが、×が10個以上続く場合がありネストできませんでした。 お知恵を拝借させてください。 よろしくお願いします。 関数では難しい場合はVBAでも結構です。

このQ&Aのポイント
  • 土日に加えて平日1日休みなら何曜日を休むか悩むこともあります。母と過ごすことも大切ですが、自分の時間も欲しいと思うこともあります。また、毎週休みを変えることもあまり好まれない場合もあります。一つの曜日を選んで休むことを考えましょう。
  • 木曜日に休みを設定したものの、毎週同じ曜日だと疲れることや、金曜日が1日余ってしまうことが気になっています。また、病院も木曜日が休みのところが多いため、微妙になってきました。平日休みを考える際には、母と過ごすこと、自分の自由な時間を持つことなどを考慮して最適な曜日を選ぶことが重要です。
  • 平日休みの選択では、母と過ごすことも大切ですが、自分の時間も大切です。毎週同じ曜日だと疲れることや、金曜日が1日余ること、病院の休みの関係などを考慮して最適な曜日を選ぶことがポイントです。また、毎週休みを変えることはあまり好まれないため、一つの曜日を選んで休むことを考えましょう。
回答を見る

専門家に質問してみよう