戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
VBAで重複データをまとめたいです。

    [192133] VBAで重複データをまとめたいです。-

    ■親トピック/記事引用/メール受信=ON■

    □投稿者/ otsuka -(2020/06/04(18:41))
    □U R L/
      VBAの初心者です。
      A列 | B列 | C列|→結果 D列 | E列 | F列|
      aaa |bbb  | 50 |       aaa |bbb  | 90 |
      ccc |ttt  | 30 |       ccc |ttt  | 50 |
      aaa |bbb  | 40 |       yyy |uuu  | 20 |
      ccc |ttt  | 20 |        ↓ ↓  ↓
      yyy |uuu  | 10 |   まとめる  合計
      yyy |uuu  | 10 |
      
      A・B・C列のデータをD・E・F列に重複したデータを集計したいのですが、
      VBA初心者の為、まったくわかりません。
      A・B列が同じもしだったらC列の値を合計して、
      結果を隣の列に出したいです。
      参考資料はインターネットに有りましたが、一列のみソースコードでした。
      二列・三列ある場合はどの様にしたら良いか、わからず迷走状態です。
      お手数ですが、お力添えいただきたく、よろしくお願いいたします。
      一列が重複している場合のものです。↓↓
      
      Private Sub CommandButton3_Click()
          Dim ws01 As Worksheet                   '変数宣言worksheetのトラック
          Dim HIKAKU As Range                            'rangeセル範囲の選択を宣言
          Dim KEN01, JYUUFUKU, JYUUFUKU_COUNT, i As Long '長整数型のデータ型を宣言
          
          Set ws01 = Worksheets("sheet1")              'ワークシートの設定(元のデータ)
          
          KEN01 = ws01.Cells(Rows.Count, "A").End(xlUp).Row        'A列の最終行を設定する
         
          JYUUFUKU = 2
          JYUUFUKU_COUNT = 0
          
          For i = 2 To KEN01                                      'A列の最終行データまで繰り返す
                                                                                                          'what検索するデータを指定 LookIn検索の対象を指定
              Set HIKAKU = ws01.Columns("D").Find(What:=ws01.Cells(i, "A"), LookIn:=xlFormulas, _
              LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)           'シート1:A列とシート2:A列を比較する
                                                                                                      
                  
                  If HIKAKU Is Nothing Then                               '比較して無い場合は、下記を実行
                      ws01.Cells(JYUUFUKU, "D") = ws01.Cells(i, "A")      '追加する文字を転記する。(コード)
                      ws01.Cells(JYUUFUKU, "E") = ws01.Cells(i, "B")
                      ws01.Cells(JYUUFUKU, "F") = ws01.Cells(i, "C")
                      
                      JYUUFUKU = JYUUFUKU + 1
                  Else
                      ws01.Range("A" & i & ":C" & i).Interior.ColorIndex = 41     '重複する該当セルを青で塗りつぶします。
                      JYUUFUKU_COUNT = JYUUFUKU_COUNT + 1                         '重複件数をカウントする
             
                  End If
          Next i         'A列データの最終行までループ
          
          MsgBox "重複した件数は" & JYUUFUKU_COUNT & "件です。"
          
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [192134] Re[1]: VBAで重複データをまとめたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/06/04(19:13))
    □U R L/

      提示された例では、A列が同じで、B列が異なるものがないのですが?
      だとすると、A列だけで集計しても問題ないのでしょうか。




    [192135] Re[2]: VBAで重複データをまとめたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/06/04(19:46))
    □U R L/

      こんなマクロにすると簡単です

      1)A・B列をD・E列にコピー
      2)D・E列で、「重複の削除」実行
      3)F列に数式挿入 =sumifs(…
      4)F列コピー
      5)F列に形式を選択して貼り付け(値のみ)




    [192136] Re[3]: VBAで重複データをまとめたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ サンダー -(2020/06/04(21:13))
    □U R L/

      項目1、項目2、・・、項目n、と、値があるとすると

      項目に使われない文字で各項目を連結(たとえば ◎)
      「項目1◎項目2◎・・◎項目n」
      この値をキーとするDictionaryに値(Item)を加算していく

      結果
      各項目名はキーをスプリットで分解して
      値はItemの値を





    [192140] Re[4]: VBAで重複データをまとめたいです。-

    迷宮入りorほかあたって見ます・・ / 記事引用/メール受信=OFF■

    □投稿者/ otsuka -(2020/06/05(10:01))
    □U R L/

      ご連絡ありがとうございます。
      ご連絡が遅くなり誠に申し訳ございません。

      マナー様
      A列とB列がの文字が同じだったら、C列にまとめた合計値を出したいです。
      「マクロにすると…」と記載が有りますが、マクロ記録で再生して結果を編集していけば宜しでしょうか?
      お手数ですが、よろしくお願いいたします。
      VBA初心者の為、スイマセン。

      サンダー様
      VBA初心者の為、難しいです。
      具体的にプログラムするとしたら、どのように変更すれば宜しいでしょうか?
      お手数ですが、よろしくお願いいたします。




    [192141] Re[5]: VBAで重複データをまとめたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2020/06/05(13:51))
    □U R L/
      Sub Macro1()
          Application.ScreenUpdating = False '画面ちらつき防止
          
          With Worksheets("Sheet1")
              .Columns("F").ClearContents '事前に更地化
              
              'コピペ
              .Columns("A:B").Copy
              .Range("D1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
              
              '重複排除
              .Range("D:E").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
              
              '数式で集計し、その後に値化
              With .Range("F2", .Cells(.Rows.Count, "D").End(xlUp).Offset(, 2))
                  .FormulaLocal = "=SUMIFS(C:C,A:A,D2,B:B,E2)"
                  .Value = .Value
              End With
              
              .Select
              .Range("D1").Select
          End With
          
          Application.ScreenUpdating = True
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192147] Re[6]: VBAで重複データをまとめたいです。-

    解決!!ありがとうございました! / 記事引用/メール受信=ON■

    □投稿者/ otsuka -(2020/06/08(00:05))
    □U R L/

      ご連絡をいただきありがとうございました。
      解決いたしました。
      半平太様 ご丁寧にありがとうございました。
      ご連絡が遅れて申し訳御座いませんでした。
      またよろしくお願いいたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G