• ベストアンサー

値が変わるまでの合計を算出したい(Excel)

項目1  項目2  A    10 A    20 B    20 A    20 次の"B"までの合計=30 「項目1」の値が、"A"から"B"に変わるまでの、「項目2」の合計(次の"B"までの合計)を自動で抽出するには、どのような方法があるでしょうか? 出来れば「小計機能」以外での対応を教えていただけると助かります。 離れたセルに結果を算出するような、都合の良い関数とかないでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

添付図参照 B1: =SUMPRODUCT(OFFSET(B2,,,MATCH(FALSE,A2:A19=A$2,0)-1))

tatsuponics
質問者

お礼

ありがとうございます。 完璧です。イメージしていた通りの値を算出することができました。 関数の意味は分かりませんが・・・笑 本当に助かりました。

その他の回答 (4)

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

この課題は、結構むつかしい問題と思う。 質問者は、既出の回答で判りましたと言っているようだが、質問者の現在のエクセル力を越えていると思う。そもそも質問の課題の特徴が十分文章で表現で来てない。 Aは第2行、第3行のほかに第5行にも出ているようだし。BもA列で続いた行があれば、その合計を出したいのだろうな。 「A列の連続した行で、同じ値が続いていれば、その同じ値の行のB列合計を出したい」という表現になるのかな。 ーー A列の項目1の値(AやBやC・・)が連続して出現している行の合計を出したいのだろう。 VBAなどでやれば、たやすいが(参考下記)、関数でやると、どこへ答えを持ってくるか (どのセルに関数を入れるか)も含め難しいと思う。 >離れたセルに結果を算出するような ってどういうことかな? >小計機能」以外での対応を教えていただけると助かります こういう注文を付けて、考えられるのは、エクセルのスキルが、中級以上になってからだと思う。いつのことやら。1つのやり方(操作などでも)で、満足すべき。エクセルは基本的にまず、「操作の学び」と思う.関数はその次。 (参考 注) 標準モジュールに Sub test01() s = 0 r = 0 lr = Range("A10000").End(xlUp).Row MsgBox lr '--- For i = 2 To lr If Cells(i - 1, "A") = Cells(i, "A") Then '前行と同じ場合 s = s + Cells(i, "B") 'sに足し込み k = k + 1 '続き件数に+1 Else '上行と変わった場合 If k >= 2 Or i = 1 Then '今までの続き1件は対象外 Cells(i - 1, "C") = s 'sをC列に書き出し End If k = 1 s = 0 s = s + Cells(i, "B") '自身をとりあえず加算 End If Next i End: Cells(i - 1, "C") = s '最終分C列に書き出し End Sub ーー データ例 A列  B列   C列(結果) 項目1 項目2 結果 A 10 A 20   30 B 15 A 5 A 15 A 10   30 C 20 B 25 B 5   30 A 15 ーー C列が結果。

tatsuponics
質問者

お礼

imogasiさん ありがとうございます。 おっしゃる通り、まだまだExcel初心者です。VBAなんて全然扱えません・・・汗。 いろいろ勉強させていただきます。まずは基本ですね。 頑張ります。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

[No.2お礼]へのコメント、 「関数の意味」も分らないのに、出来たと欣喜雀躍して戴けるとは望外の仕合せにござりまする。

tatsuponics
質問者

お礼

いや~、どれだけ考えても、全然検討もつかなかったので、本当にうれしかったです。 もっと関数の勉強いたします・・・汗。 感謝、感謝~☆

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.3

if関数でいけますよ。 「項目1」と書かれた表題がA1、「項目2」がB1として、C3セルに『=IF(A3=A2,B3+B2,"!")』と入力し、必要なだけ下にコピーします。  項目1が継続する限り項目2を加算していき、項目1が変化すると「!」が出ます。  あとは条件付き書式なりフィルタなり何なりで対応可能です。

tatsuponics
質問者

お礼

ありがとうございます。 列の追加が出来ないため、C3セルに追加ができないのですが、ちゃんと算出できました。 参考にさせていただきます。

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.1

AからBに変わるのが1回だけなら方法はありますが、多分そうではないですよね? もう少し条件を詳しく書いていただくのがいいと思います。

tatsuponics
質問者

お礼

ありがとうございます。 無事、解決することができました。

tatsuponics
質問者

補足

sknbsknb2さん 返答ありがとうございます。 もう少し条件を追加させていただきます。 ・項目1はA,B,Cの3種類です。 ・最初は必ずAとは限りません。項目1の値が変化するまでの項目2の合計を算出したいです。 ※算出するのは、一番上の行から 項目1が変化するまでの1回の値(合計)だけでいいです。 ・B,Cは含まれない可能性もあります。 かなりややこしい条件になってしまいましたが、ご教授頂けると助かります。 どうぞよろしくお願いいたします。 以上

関連するQ&A