If you want a VBA option then this code will do it:
Option Explicit
Sub DeleteDupes()
Dim workingRow As Long
Dim workingItem As String
Dim i As Long
Dim occurances As Variant
'Skip past header row
workingRow = 1
Do Until Range("A" & workingRow + 1).value = ""
workingRow = workingRow + 1
workingItem = Range("A" & workingRow).value
If Len(Range("C" & workingRow)) = 0 Then
occurances = FncGetOccurances(workingRow, workingItem)
If IsArray(occurances) Then
FncDeleteRange (occurances)
workingRow = workingRow - UBound(occurances)
End If
End If
Loop
End Sub
Private Function FncDeleteRange(value As Variant)
Dim deleteRange As Range
Dim i As Long
For i = 1 To UBound(value)
If i = 1 Then
Set deleteRange = Range("A" & value(i), "C" & value(i))
deleteRange.Select
Else
Union(deleteRange, Range("A" & value(i), "C" & value(i))).Select
End If
Next i
Selection.Delete Shift:=xlUp
End Function
Private Function FncGetOccurances(masterIndex As Long, value As String) As Variant
Dim rowsToReturn As Variant
Dim i As Long
Dim currentCell As Long
Dim itemCount As Long
i = 1
Do While Range("A" & i + 1).value <> ""
i = i + 1
currentCell = Range("A" & i).value
If currentCell = value And _
i <> masterIndex And _
Len(Range("C" & i)) <> 0 Then
itemCount = itemCount + 1
If itemCount = 1 Then
ReDim rowsToReturn(itemCount)
Else
ReDim Preserve rowsToReturn(itemCount)
End If
rowsToReturn(itemCount) = i
End If
Loop
FncGetOccurances = rowsToReturn
End Function