こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

項目1  項目2 
A    10
A    20
B    20
A    20

次の"B"までの合計=30

「項目1」の値が、"A"から"B"に変わるまでの、「項目2」の合計(次の"B"までの合計)を自動で抽出するには、どのような方法があるでしょうか?

出来れば「小計機能」以外での対応を教えていただけると助かります。
離れたセルに結果を算出するような、都合の良い関数とかないでしょうか?

宜しくお願いいたします。

投稿日時 - 2020-01-21 08:42:58

QNo.9703944

困ってます

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

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

投稿日時 - 2020-01-21 16:23:58

お礼

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

投稿日時 - 2020-01-21 21:07:55

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.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結果
A10
A20  30
B15
A5
A15
A10  30
C20
B25
B5  30
A15
ーー
C列が結果。

投稿日時 - 2020-01-22 11:28:27

お礼

imogasiさん
ありがとうございます。

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

頑張ります。

投稿日時 - 2020-01-22 12:11:35

ANo.4

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

投稿日時 - 2020-01-21 22:02:06

お礼

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

投稿日時 - 2020-01-22 08:20:50

ANo.3

if関数でいけますよ。
「項目1」と書かれた表題がA1、「項目2」がB1として、C3セルに『=IF(A3=A2,B3+B2,"!")』と入力し、必要なだけ下にコピーします。

 項目1が継続する限り項目2を加算していき、項目1が変化すると「!」が出ます。
 あとは条件付き書式なりフィルタなり何なりで対応可能です。

投稿日時 - 2020-01-21 20:17:02

お礼

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

投稿日時 - 2020-01-21 21:02:32

ANo.1

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

投稿日時 - 2020-01-21 12:09:02

補足

sknbsknb2さん
返答ありがとうございます。

もう少し条件を追加させていただきます。

・項目1はA,B,Cの3種類です。
・最初は必ずAとは限りません。項目1の値が変化するまでの項目2の合計を算出したいです。
※算出するのは、一番上の行から 項目1が変化するまでの1回の値(合計)だけでいいです。
・B,Cは含まれない可能性もあります。

かなりややこしい条件になってしまいましたが、ご教授頂けると助かります。

どうぞよろしくお願いいたします。

以上

投稿日時 - 2020-01-21 13:07:55

お礼

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

投稿日時 - 2020-01-21 21:10:46

あなたにオススメの質問