• 締切済み

VBAで条件が一致するものの合計

条件が一致するものを合計し、別のシートに値を代入したいです。 日付 商品 個数 金額 1/1 りんご 1個 500円 1/3 みかん 1個 300円 1/3 みかん 2個 600円 1/5 みかん 5個 1500円 1/1 ぶどう 2個 800円 1/2 りんご 2個 1000円 このような表でりんごの合計1500円、みかんの合計2400円 を別のシートの1月の列へ代入したいのですが VBAでできる方法を教えてください。 この表は毎月上書きされるようになっています。

みんなの回答

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

質問の、条件についての表現があいまい。 推測すると(1)年月(2)品名(みかんとか) これらを各々1つ指定する(どう指定するの、2つのセルに入力?)なら (1)Sheet1の全行読んで (2)1月か、みかんか判別し、以外は加算処理しない。 (3)1月分でみかんの場合、加算合計ワーク変数に金額を足しこむ (4)Sheet2の1月の行(列)に書き込む。 VBAを少しはじめれば、疑問でなくなると思う問題だが、質問しているのは、上記では尽くせない点があるのかもしれない(例 最終行の補足の仕方)。それなら補足してください。 上記のどれかの点で、それをVBAコードで実現する仕方が判らない点があれば補足してください。 VBAでピボットテーブルを実行する手もありますよ。 たてに年月、横に品名、縦横交差該当セルに合計金額の表作成ことかな。 それのような質問表現になっていませんよ。 ーー 関数でも複雑だがやっとできる問題と思う。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

無理してVBAを組まなくてもSUMIF関数で出来るんではと思いますが。 "個"とか"円"を除いて数字だけ取り出すのもLeftやLen関数(複雑になればMidやFind関数)で容易に可能ですし。 Ex. E列に数字を抜き出す式を入れて =INT(LEFT(B4,LEN(B4)-1)) 合計用の隣のシートに表示 =SUMIF(Sheet1!B2:E7,"みかん",Sheet1!E2:E7) 関数で簡単に実現出来ることをあえてVBAでする必要はありませんよ。

関連するQ&A