[[20211004133237]] 『【VBA】重複を削除して合計する』(るも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『【VBA】重複を削除して合計する』(るも)

A      B
地域名   売上

A列の地域名の重複を削除し、それごとにB列の売上を合計。
E列に重複をなくした地域名、
F列にその合計結果を表示する場合:
以下のマクロを実行するとネットで見つけたのですが、これを改造して
C列に「売上2」を加えて、
G列に売上2の合計を出したい場合はどう直したらよいでしょうか。

Sub 重複データを削除し合計を合算()

Dim myDic As Object
Dim myKey As Variant
Dim myItem As Variant
Dim myList As Variant
Dim i As Long

    Set myDic = CreateObject("Scripting.Dictionary")

    'A列,B列のデータを配列に格納
    myList = Range("A2", Range("A" & Rows.Count). _
                     End(xlUp)).Resize(, 2).Value

    '連想配列にデータを格納
    For i = 1 To UBound(myList, 1)

        '地域名が空欄かチェック
        If Not myList(i, 1) = Empty Then
            If Not myDic.exists(myList(i, 1)) Then

                '重複しない地域名を取得
                myDic.Add Key:=myList(i, 1), Item:=myList(i, 2)
            Else

                '売上金額を加算
                myDic(myList(i, 1)) = myDic(myList(i, 1)) + myList(i, 2)
            End If
        End If
    Next

    '[地域名] 重複していないリストを格納
    myKey = myDic.keys

    '[売上]   地域名の合計を格納
    myItem = myDic.items

    'リストを出力
    For i = 0 To UBound(myKey)
        Cells(i + 2, 5).Value = myKey(i)
        Cells(i + 2, 6).Value = myItem(i)
    Next

    '開放
    Set myDic = Nothing

End Sub

< 使用 Excel:Excel2013、使用 OS:unknown >


申し上げにくいですが、
コードで対応するよりも、
「ピボットテーブル」の利用を考えたほうがいいのではないですか?
そのほうが汎用的にですよ。
修正があるたびに詰まっているよりも、
上記のほうが各種の書籍もありますし、
ネット上にもたくさん情報もありますから、ご自分で対応できそうです。
# もちろんコードでも可能なんですが、余り根本的な対応ではない気がします。

(γ) 2021/10/04(月) 14:49


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

自身の作業であればご指摘いただきましたような作業で足りるのですが、
今回は自分以外の人も業務効率化の観点から
ボタン一つでできるシートの作成を目指しています。

恐縮ですが、コードのご教示をいただきたく改めてお願い申し上げます。

(るも) 2021/10/04(月) 15:24


ピボットも一度作ってしまえば、データの更新だけです(それすら自動化できます)。

# 出掛けますので、他の方の回答をお待ち下さい。
(γ) 2021/10/04(月) 16:11


ご参考。

https://teratail.com/questions/308503

(きまぐれ) 2021/10/04(月) 16:34


 統合なんて機能もありますよ。

 これ2行で、ほとんど済みそう。

 Sub 統合()
     Columns("E:G").ClearContents

     Range("E1").Consolidate Sources:=Columns("A:C").Address(, , xlR1C1, True), Function:=xlSum, _
         TopRow:=True, LeftColumn:=True, CreateLinks:=False
 End Sub

(半平太) 2021/10/04(月) 20:33


γ様、きまぐれ様、半平太様
ありがとうございます。
トライしてみます。
(るも) 2021/10/05(火) 11:19

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.