【お知らせ】カテゴリの見直しについて

お願いします。

図のようにA列に項目、B列に数値があります。
A列にある各項目の最終行(色が付いてるところ)の数値だけを合計したいです。

重複してる項目は連続で並んでます、数は不規則で、重複していないところもあります。
空白セルはありません。

自分で考えたのはC列のように作業列でフラグをたてて、1のフラグがたったところを以下の式で合計しました。
=SUMIF(C2:C11,1,B2:B11)
合計:80

この作業列を用意せずに一発で値を出す方法はないでしょうか?
関数の詳しい方にお知恵を拝借したく、どうぞよろしくお願い致します!

※図はExcel2016です。

「列内で重複した各項目の最終行の数値のみを」の質問画像

質問者からの補足コメント

  • 皆さんありがとうございました。
    ベストアンサーは最初に回答を頂いたenunokokoroさんにつけさせて頂きます。
    tom04さんもありがとうございました。

      補足日時:2018/04/15 20:56

A 回答 (4件)

こちら↓のようなものでもよいのでしょうか?


 =SUMPRODUCT((B2:B11)*(NOT(EXACT(A2:A11,A3:A12))))
https://study387.com/excel-check-duplication/
「列内で重複した各項目の最終行の数値のみを」の回答画像3
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

なるほどー!
SUMPRODUCTを利用することは考えたのですが、その先が発想できませんでした。
EXACTで一致しないところをNOTでTRUEに返して合計するようにしてるとは、全然思いつきませんでした!

簡潔な式で分かりやすく、大変参考になりました。
ありがとうございました!

希望の回答は得られましたが、この後もいろいろな考え方の回答を頂けるかもしれないので、質問はこのまま置かせて頂きます。
また機会がありましたらどうぞよろしくお願い致します。
助かりました!

お礼日時:2018/04/14 22:21

こんばんは!



横からお邪魔します。
No.3さんと似たような感じになりますが・・・

=SUMPRODUCT((A2:A100<>A3:A101)*B2:B100)

でも大丈夫だと思います。m(_ _)m
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

すごい!
ここまでシンプルに削れるんですね。
確かに「<>」で比較してTRUEなら合計できますね。
いやー、さすがです。
感服しました!

こちらのサイトをたびたび拝見していると、本当に詳しい方がいるなーっと思ってましたが、tom04さんはその内の一人でした。
特に回答の仕方が上から目線ではなくいつも優しい回答ですよね。
これからも参考にさせて頂きます。
ありがとうございました!

お礼日時:2018/04/15 08:41

》 なぜ…と問われても・・・その必要があるから


作業列が別シートにあっても駄目よ、ダメ、ダメですか?
    • good
    • 0
この回答へのお礼

質問ありがとうございます。

駄目よ~ダメダメ!でございます。

すみませんwww

お礼日時:2018/04/14 16:31

マクロ(VBA)を使えば出来ますが使っても良いのでしょうか?



また直接の回答ではありませんが、なぜ作業列を使ってはいけないのでしょうか?
C2 セルに「=IF(A2=A3,0,B2)」の式を入れて必要な分コピーして C列の合計を求めれば毎回 C列の式を変更する必要が無くなり手間もかからないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

マクロではなく関数でお願いします。
C列には、図の数式バーを見て頂ければ関数が入力されてることが確認できると思います。
毎回変更せずともフラグがたつようになっています。

ご提案頂いた式では、式の作りは違ってきますが考え方は一緒ですね。
この工程を経ずに一発で合計値を出したい、というのが要望です。

なぜ作業列を使ってはいけないのかと問われても・・・その必要があるからです・・・

お礼日時:2018/04/14 11:45

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


人気Q&Aランキング