Obtendo a função CHAR para retornar vários caracteres no Excel 2011

1

Estou usando o Office 2011 no Mac.

Estou tentando escrever uma fórmula para remover caracteres minúsculos (e idealmente espaços também, mas isso é menos importante) do texto em uma célula. O objetivo é converter nomes em iniciais; assim, "Jane" se tornaria "J", "DeLacy" se tornaria "DL", "Mary-Anne" se tornaria "M-A" e "Anna Elise" se tornaria "AE".

Até agora eu tenho isso (assumindo que o nome está em B2), para descartar caracteres minúsculos:

=SUBSTITUTE(B2,CHAR(ROW(97:122)),"")

No entanto, isso apenas remove "a" (então "Jane" se torna "Jne"). O problema parece ser que a função CHAR está retornando apenas o primeiro caractere em vez do intervalo especificado:

=CHAR(ROW(97:122))

retorna "a".

O mesmo acontece

=CHAR(ROW(INDIRECT("97:122")))

Como posso obtê-lo para retornar todo o intervalo para que todos os caracteres minúsculos sejam removidos?

    
por Rhiannon 07.04.2015 / 12:06

1 resposta

0

Considere o uso de um pequeno U ser D efinado F unção (UDF) :

Public Function LowerKiller(sIn As String) As String
    Dim L As Long, LL As Long
    Dim sCh As String, temp As String
    For L = 1 To Len(sIn)
        sCh = Mid(sIn, L, 1)
        If sCh Like "[a-z]" Or sCh = " " Then
        Else
            temp = temp & sCh
        End If
    Next L
    LowerKiller = temp
End Function
    
por 07.04.2015 / 14:19