[[20120330185516]] 『重複データの合計』(WWF) ページの最後に飛ぶ

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

 

『重複データの合計』(WWF)

 A列に商品名 B列に個数 がある表で
 A列の商品名が多数重複しています(1000行)
 商品名は その都度 取込みデータで 毎回違います
 重複している商品は すべての合計数を
 重複していない商品は その横の数を
 C,D列 もしくは 別シートに出したのですが
 いろいろHPを調べてみましたが いまいち
 わかりません どなたかよろしくお願いします

    A   B
 1  あ  2
 2 あ  5
 3 い  1
 4 う  2
 5 う  3
 6 う  1
 7 え  5

  ↓↓このようにしたいです
   C    D
 1 あ   7
 2 い   1
 3 う   6
 4 え   5


 お望みの姿とはちょっと違うけど、1行目をタイトル行にしてデータ->集計。
 (2007以降ならデータタブの小計)
 ここで集計して、レベル2で折りたたむ。

 あるいは同じく、1行目をタイトル行にして、Sheet2を選んで、フィルタオプション。
 SHeet1のA列を重複を無視してSheet2のA列に。で、Sheet2のB列にSUMIF関数を。

 (ぶらっと)

 VABでの一案。アップされたサンプル通り、1行目からデータ。C,D列に集計

 Sub Sample()
    Dim c As Range
    Dim dic As Object

    Set dic = CreateObject("Scripting.Dictionary")

    With Sheets("Sheet1")
        For Each c In .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
            dic(c.Value) = dic(c.Value) + Val(c.Offset(, 1).Value)
        Next
        .Columns("C:D").ClearContents
        .Range("C1").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.keys)
        .Range("D1").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.items)
    End With

 End Sub

 (ぶらっと)

 VBA別案。フィルターオプション。↑と同様、1行目からデータ。結果はC,D列。

 Sub Sample2()
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        .Columns("C:D").ClearContents
        .Rows(1).Insert Shift:=xlDown       'フィルターオプション用 タイトル行 挿入
        .Range("A1:B1") = Array("A", "B")
        .Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("C1"), Unique:=True
        .Rows(1).Delete                     'フィルターオプション用 タイトル行 削除
        With .Range("C1", .Range("C" & .Rows.Count).End(xlUp)).Offset(, 1)
            .Formula = "=SUMIF(A:A,C1,B:B)"
            .Value = .Value
        End With
    End With
    Application.ScreenUpdating = True
 End Sub

 (ぶらっと)

 取り込んだデータにタイトル行が有るなら
 ピボットテーブルを使って集計してみるのはどうでしょう。

 (HANA)

ぶらっとさん の VBA一案をそのまま使わせていただきました
ありがとうございました。
 (WWF)

コメント返信:

[ 一覧(最新更新順) ]


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