Requirement:
The user wants to know if it is possible for the linked macro to return each unique record from columns A to D and not just based on column B being unique.
The user has included an example / result below of what they are wanting the macro to do:
| Example: | ||||
| Delivery | Material | Description | SU | Delivery Qty |
| 8000001 | 12345C | 1234 Formula Forty | DR | 3 |
| 8000001 | 222222C | 2222 AIO Cleaner | CS | 12 |
| 8000004 | 222222C | 2222 AIO Cleaner | CS | 12 |
| 8000001 | 12345C | 1234 Formula Forty (2) | DR | 3 |
| 8000001 | 222222C | 2222 AIO Cleaner | CS (2) | 12 |
| 8000001 (2) | 222222C | 2222 AIO Cleaner | CS | 12 |
| 8000001 | 12345C | 1234 Formula Forty | DR | 5 |
| 8000001 | 222222C | 2222 AIO Cleaner | CS | 21 |
| 8000004 | 222222C | 2222 AIO Cleaner | CS | 9 |
| Result: | ||||
| Delivery | Material | Description | SU | Delivery Qty |
| 8000001 | 12345C | 1234 Formula Forty | DR | 8 |
| 8000001 | 222222C | 2222 AIO Cleaner | CS | 33 |
| 8000004 | 222222C | 2222 AIO Cleaner | CS | 21 |
| 8000001 | 12345C | 1234 Formula Forty (2) | DR | 3 |
| 8000001 | 222222C | 2222 AIO Cleaner | CS (2) | 12 |
| 8000001 (2) | 222222C | 2222 AIO Cleaner | CS | 12 |
Solution:
Try this for results on sheet2.
Sub nSum()
Dim Rng As Range, Dn As Range, n As Long, Txt As String, Ac As Long
Set Rng = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
ReDim ray(1 To Rng.Count, 1 To 5)
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
Txt = Join(Application.Transpose(Application.Transpose(Dn.Resize(, 4))), ",")
If Not .Exists(Txt) Then
n = n + 1
For Ac = 1 To 5: ray(n, Ac) = Dn.Offset(, Ac - 1): Next Ac
.Add Txt, n
Else
ray(.Item(Txt), 5) = ray(.Item(Txt), 5) + Dn.Offset(, 4)
End If
Next
n = .Count
End With
With Sheets("Sheet2").Range("A1").Resize(n, 5)
.Value = ray
.Borders.Weight = 2
.Columns.AutoFit
End With
End Sub
Obtained from the OzGrid Help Forum.
Solution provided by MickG.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
| How to copy a sheet and rename from a list, ignore duplicates |
| How to use IndexMatch formula that ignores duplicates |
| How to find sequence of a column with duplicates |
| How to compare two workbooks with multiple sheets and highlighting duplicates |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.