You could use a macro like:
Sub Merge_DeleteDuplicateRows()
Application.ScreenUpdating = False
Dim LRow As Long, i As Long, j As Long, k As Long
With ActiveSheet
LRow = .Range("A" & .Cells.SpecialCells(xlCellTypeLastCell).Row).End(xlUp).Row
For i = 14 To LRow
For j = LRow To i + 1 Step -1
If .Range("A" & i).Value = .Range("A" & j).Value Then
For k = 4 To 9
If .Cells(j, k).Value <> 0 Then .Cells(i, k).Value = .Cells(j, k).Value + .Cells(i, k).Value
Next
.Range("A" & j).EntireRow.Delete
LRow = LRow - 1
End If
Next
Next
End With
Application.ScreenUpdating = True
End Sub
However, I also note that your original post had multiple entries for Carl Carlisle, with different therapists, but the data you wanted merged didn't indicate which therapist's records should be updated. As coded, the above macro will merge & delete the last of those lines also. To avoid that, some extra code would be required, for testing whether there's anything in the therapist column and to avoid both sets of records being updated. For proper control, you'd need to indicate the therapist details for every one of the merge row candidates, so they too can be assigned to the correct therapists. That said, the following code additions after 'For j = LRow To i + 1 Step -1' will prevent duplications and the merging of the therapist records:
If .Range("A" & i).Value = .Range("A" & i + 1).Value Then Exit For
If .Range("B" & j).Value <> "" Then Exit For
Using ' i + 1' populates the last therapist record, whilst ' i - 1' populates the first therapist record.
Bookmarks