|
▼希椛(ののか) さん:
こんにちは
質問内でお使いの「統合」、まさにエクセル機能の「統合」を使えば
(別のシートになりますが)お望みの統合結果が得られます。
作業的には、「区切り位置」等も併用し、いささかめんどうですが、
これをVBAコードにすることもできます。
以下は、「そうではない」方法での統合です。
セルに直接書き込んでいますので、処理効率が悪ければ、もう少し工夫もできます。
Sub Sample()
Dim dic As Object
Dim c As Range
Dim myKey As Variant
Dim k As Long
Application.ScreenUpdating = False
Set dic = CreateObject("Scripting.Dictionary")
For Each c In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
myKey = Join(WorksheetFunction.Index(c.Resize(, 4).Value, 1, 0), vbTab) 'A〜D
dic(myKey) = dic(myKey) + c.Offset(, 4).Value 'E列の値を足しこみ
Next
Cells.ClearContents
For Each myKey In dic
k = k + 1
Cells(k, 1).Resize(, 4) = Split(myKey, vbTab)
Cells(k, 5).Value = dic(myKey)
Next
Application.ScreenUpdating = True
End Sub
|
|