substituir vários caracteres em lugares diferentes em uma cadeia de caracteres Excel 2007

0
=SUBSTITUTE(AD!H35,"&","")

A fórmula acima substitui um "e" comercial em uma célula em que tenho o texto

Handy Person / Driver & Car

dando

Handy Person / Driver Car

Como eu também removo a barra "/"?

Eu já vi isso feito com fórmulas substitutas aninhadas, mas provavelmente eu preciso remover ainda mais caracteres no futuro. Eu prefiro usar uma solução mais elegante. Talvez até mesmo substituir uma classe inteira de caracteres não-alfanuméricos seja outra solução?

    
por conspirisi 09.03.2011 / 15:27

2 respostas

1

Eu não sei de nenhuma função de planilha que seja mais elegante que os SUBSTITUTOS aninhados, infelizmente. Se você quiser usar uma função definida pelo usuário do VBA, esta pode começar.

Public Function CleanAlpha(Target As Range) As String

    Dim rCell As Range
    Dim sReturn As String
    Dim i As Long

    'Only act on first cell
    Set rCell = Target.Cells(1)

    'loop through each character
    For i = 1 To Len(rCell.Value)
        Select Case Asc(Mid$(rCell.Value, i, 1))
            Case 65 To 90, 97 To 122 'letters
                sReturn = sReturn & Mid$(rCell.Value, i, 1)
            Case 32 'spaces
                sReturn = sReturn & Mid$(rCell.Value, i, 1)
        End Select
    Next i

    CleanAlpha = Trim(sReturn)

End Function

Use em uma planilha como

=TRIM(cleanalpha(A1))
    
por 09.03.2011 / 19:50
1
=SUBSTITUTE(SUBSTITUTE(AD!H35,"&","")," /","")

Tente com isso.

    
por 17.03.2011 / 11:11