dポイントプレゼントキャンペーン実施中!

初めての質問です。失礼があったらすみません。

Excel2003を使用していますが、『特定の文字を含む行の数字を拾って足し合わせていく』というマクロを組みたいと考えています。

例えば、

パンダ 200
コアラ 210
ねずみ 300
パンダ 400
ねずみ 100

といった表であれば、『パンダ』を特定の文字列として指定し、
自動的にパンダの文字列を含む数字「200」と「400」を足し合わせた結果が出力されるようなマクロを組みたいです。

マクロほぼ初心者ですので、コピペで使用できるようなマクロを教えていただけると嬉しいです。よろしくお願いします。

A 回答 (2件)

こんばんは!


VBAでないので参考にならなかったら無視してください。

↓の画像でE2セルに
=IF(D2="","",SUMIF(A2:A100,"*"&D2&"*",B2:B100))
という数式を入れています。
これでD2セルに検索したい文字列の1文字でも入力すれば
それを含むB列の合計が表示されるはずです。

以上、参考になれば良いのですが
最初に書いたように的外れなら読み流してくださいね。m(__)m
「Exel2003で特定の文字列を含む行の」の回答画像1
    • good
    • 0
この回答へのお礼

tom04さん

非常にお早い返事ありがとうございます!
いえいえVBAでなくともまったく問題ないです。
むしろ関数だけでできた方が何倍も嬉しいです。

勝手にこれはマクロくまなきゃできないだろうと思い込んで質問してしまいました。
非常に分かりやすく教えていただきありがとうございました。
おかげさまで仕事が思っていたより早く終わりました。

お礼日時:2010/03/15 21:32

「マクロを組みたい」ということですので、SUMIF関数を使いましょう、という回答では的外れになるのでしょうか。


とっくにご存じかもしれませんが、一応書いてみます。

たとえば、「パンダ」「コアラ」の列がA列、数字がB列だとします。
そしてC・D列にその合計結果を表示する表を作成するとします。

上のパンダの例だと、C1 D1には「パンダ 600」と表示したいことになりますね。


そうするとD1セルに

=SUMIF(A:A,C1,B:B)

と入力することになります。
これは、「A列のなかで、C1(この場合パンダ)と一致するものについて、Bを合計する」
という意味になります。
オートフィルでD2以降にコピーして完成です。
    • good
    • 0
この回答へのお礼

terayama1935さん

お返事ありがとうございます。
お恥ずかしながらSUMIF関数も知りませんでした。

マクロどころか関数ひとつで解決する問題だったのですね。
非常に明確に、簡単な式を教えてくださり助かりました。

ありがとうございました。

お礼日時:2010/03/15 21:35

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