Q:

Remove entire row based on duplicate in cell without the one with a specific cell value

Quick example of the data I have in column A:

xxxNew
xxxUpdate
yyyNew
yyyUpdate
zzzNew
aaaNew
bbbNew

And this is my desired output:

xxxUpdate
yyyUpdate
zzzNew
aaaNew
bbbNew

I'd like to search for duplicates without New and Update as part of the cell value and then delete the row with New to just have the Update value. However, there are values which don't have Update at all and I need to keep them. There can be multiple values with xxx"Update" but only one with zzz"New".
So far I just managed to delete all the rows that contain New but this is too much.

A:

This will work but only if no single 'New' row has a higher row # than an 'Update' row does.  This is because (1) the macro goes from highest to lowest row # and (2) only the first 'Update' row encountered is saved in the dictionary.  After that all lower rows that have a 'New' or 'Update' with the same key are deleted.  As such it might not be as robust as you need it to be - but it's a starting point:
Option Explicit

Sub deleteDuplicateNew()

  With Sheets(1)
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    Dim val As String, str As String
    Dim lastRow As Integer, r As Integer
    lastRow = .Range("A" & .Rows.Count).End(xlUp).row

    For r = lastRow To 1 Step -1:
      val = .Cells(r, "A").Value
      If InStr(1, val, "New") Then
        str = Replace(val, "New", "")
        If dict.Exists(str) Then
           .Cells(r, "A").EntireRow.Delete
        End If
      ElseIf InStr(1, val, "Update") Then
        str = Replace(val, "Update", "")
        If dict.Exists(str) Then
          .Cells(r, "A").EntireRow.Delete
        Else
          dict(str) = True
        End If
      End If
    Next

  End With
End Sub

