This UDF is a compromise but does thin the list fairly drastically.
Function RemoveMaxPossible(rngString As Range)
Dim n As Integer
Dim strData As String
Dim arrCompanies() As Variant
strData = Mid(rngString, InStr(1, rngString, " ") + 1)
arrCompanies = Array("GRAHAM", "Grahams", "Graham", "Jewson", "NGB", "P&H", "P & H", "NJB", "Plumbing & Heatn", "Contrac")
For n = 0 To UBound(arrCompanies)
strData = WorksheetFunction.Substitute(strData, arrCompanies(n), "")
Next
If InStr(1, strData, "-") > 0 Then strData = Left(strData, InStr(1, strData, "-") - 1)
If InStr(1, strData, "(") > 0 Then strData = Left(strData, InStr(1, strData, "(") - 1)
If InStr(1, strData, Space(2)) > 0 Then strData = Left(strData, InStr(1, strData, Space(2)) - 1)
RemoveMaxPossible = Trim(strData)
End Function
Add to the array of "company names" as examples are found.
And possibly add if statements to cover other delimiters as they reveal themselves.
The end result should allow you to choose whether the text is an address or a town name.
This is by no means ideal but might help some.
It might help with your geography if nothing else.
Bookmarks