|
サン さん 今晩は。
私は、こんなのを見ると、すぐdictionaryを使いたくなるんです。
標準モジュールに貼り付けて使ってみてください。
Sub 集計3()
Dim vnt, a
Dim i As Long
Dim dic As Object
'
With Sheets("Sheet1")
vnt = .Range("G2", .Range("A65536").End(xlUp)).Value
End With
'
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(vnt, 1)
If Not dic.exists(vnt(i, 1)) Then
ReDim a(6)
a(0) = vnt(i, 1)
a(1) = vnt(i, 2)
a(2) = vnt(i, 3)
a(3) = vnt(i, 4)
Else
a = dic(vnt(i, 1))
End If
a(4) = a(4) + vnt(i, 5)
a(5) = a(5) + vnt(i, 6)
a(6) = a(6) + vnt(i, 7)
dic(vnt(i, 1)) = a
Next i
'-----結果出力
With Sheets("Sheet2")
.Cells.ClearContents
.Range("A1").Resize(, 7).Value = Array("コード", "業種", _
"顧客名", "フリガナ", "売上", "消費税", "合計")
.Range("A2").Resize(dic.Count, 7).Value = Application _
.Transpose(Application.Transpose(dic.items))
.Select
End With
'
Erase vnt
Set dic = Nothing
End Sub
>下記のような売上表を顧客名に別のシートにデータを
>シート1
>コード 業種 顧客名 フリガナ 売上 消費税 合計
>000001 04 ×× ×× 5,000 250 5、250
>000001 42 ×× ×× 5,000 250 5、250
>000002 42 ○○ ×× 1,000 50 1,050
>000002 04 ○○ ×× 1,000 50 1,050
> ・
> ・
> ・
>
>
>シート2
>コード 業種 顧客名 フリガナ 売上 消費税 合計
>000001 ×× ×× 10,000 500 10、500
>000002 ○○ ×× 2,000 100 2、100
> ・
> ・
> ・
>とするのには、どうすれば宜しいでしょうか。
|
|