🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

718閲覧

条件が一致したときのみ合計する方法

kansai5963

総合スコア23

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/03/22 03:35

編集2021/03/22 07:03

前提・実現したいこと

EXCELのVBAにて2条件が一致したときに合計を表示する方法を探しております。

1111 aaa 100 1
2222 bbb 100 1
3333 ccc 100 1
4444 ddd 100 1
5555 eee 100 1
1111 aaa 200 2
2222 bbb 200 2
3333 ccc 200 2
4444 ddd 200 2
5555 eee 200 2
1111 aaa 300 1
2222 bbb 300 1
3333 ccc 300 1
4444 ddd 300 1
5555 eee 300 1

出したい表示

aaa  400
bbb  400
ccc  400
ddd  400
eee  400

四列目が1の時に一列目のナンバーをキーとして二列目の商品名と三列目の合計を表示させたいです。

発生している問題・エラーメッセージ

計算結果が出てこない。

該当のソースコード

ソースコード

試したこと

SUMIF 複数条件にて検索しましたが、これといったものが見つかりませんでした。
sumifsも試しましたが、一列目のナンバーをキーとしてというところで引っかかっております。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/03/22 03:47

VBA全く詳しくないですけど複数条件で合計するならSUMIFS関数使えば良いのでは?
mai1210

2021/03/22 05:33

左から列がA・B・C・Dだとして、これで出ませんでしょうか。 =SUMIFS(C:C,D:D,"1",A:A,"1111") 条件を満たしたらC列を合計する/条件1:D列が「1」の場合/条件2:A列が「1111」の場合(ここはセルを参照すれば良いかと)
sazi

2021/03/22 06:10

質問のサンプルでは、四列目が1の時に一列目のナンバーが同じものが複数ありますが、これはサンプルとして誤りですか? 誤りでないなら、一列目のナンバーが同じものは同じ結果としたいという事でしょうか?
kansai5963

2021/03/22 06:27

sazi様 ご指摘の通り一列目をキーとして同じものの合計を表示したいのです。
kansai5963

2021/03/22 06:28

mai1210様 ご連絡いただいた方法ですと「1111」のみの合計が表示されます。 他の「2222」から「5555」まで(実際は600行ほどありますが)の合計も表示させたいのです。
mai1210

2021/03/22 06:46

「1111」のところを書き換えるか、該当のセルを参照するようにしていただければ、「2222」の合計も「5555」の合計も出ると思いますが… 2222の合計 =SUMIFS(C:C,D:D,"1",A:A,"2222") ・ ・ 5555の合計 =SUMIFS(C:C,D:D,"1",A:A,"5555") もしくは、「1111」~「5555」まで全部足しちゃっていいんでしょうか? 4列目が「1」だったら3列目をすべて合計 =SUMIFS(C:C,D:D,"1")
kansai5963

2021/03/22 07:04

質問が紛らわしくすいません。 実現したいことを修正しました。 一列目をキーとして二列目の項目ごとに集計したいのです。
sazi

2021/03/22 07:29

編集された内容では、四列目が1のデータを二列目の項目で集計しただけのように見えますけど、一列目も条件ならそれが分かるような結果にして下さい。 ※結果に一列目は現れてないので、どんな条件なのかさっぱり分かりません。
guest

回答2

0

ピボットテーブルで出せるかと思います。フィルターで列Dを1のみに絞ってください。

イメージ説明

一列目と二列目が紐付いている(必ず1111=aaaになる)なら、行欄の列Aは削除で良いと思います。(その場合は結局、列Bをキーとして集計しているだけなので「列Aをキーとして」という質問自体がおかしいことになりますが。。)

イメージ説明

投稿2021/03/22 07:26

編集2021/03/22 07:29
mai1210

総合スコア272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

自己解決しました。
教えていただきありがとうございました。

投稿2021/03/22 07:40

kansai5963

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/03/22 08:11

自己解決したならば第三者が理解出来る解決方法を記載してください。 これでは何の回答にもなっていません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問