[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複データの合計』(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)
(WWF)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.