Fórmula do Excel: abreviar nomes ou palavras -

Fórmula genérica

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),ROW(INDIRECT("65:90")),0)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))

Resumo

Para abreviar o texto que contém letras maiúsculas, você pode tentar esta fórmula de matriz com base na função TEXTJOIN, uma nova função disponível no Office 365 e Excel 2019. Você pode usar essa abordagem para criar iniciais de nomes ou para criar acrônimos. Somente letras maiúsculas sobreviverão a esta fórmula, portanto, o texto de origem deve incluir palavras em maiúsculas. Você pode usar a função PROPER para colocar palavras em maiúsculas, se necessário.

No exemplo mostrado, a fórmula em C5 é:

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)),ROW(INDIRECT("65:90")),0)),MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1),""))

Explicação

Trabalhando de dentro para fora, a função MID é usada para converter a string em uma matriz de letras individuais:

MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)

Nesta parte da fórmula, MID, ROW, INDIRECT e LEN são usados ​​para converter uma string em uma matriz ou letras, conforme descrito aqui.

MID retorna uma matriz de todos os caracteres do texto.

("W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e ")

Este array é alimentado na função CODE, que produz um array de códigos ascii numéricos, um para cada letra.

Separadamente, ROW e INDIRECT são usados ​​para criar outra matriz numérica:

ROW(INDIRECT("65:90")

Esta é a parte inteligente. Os números 65 a 90 correspondem aos códigos ascii para todas as letras maiúsculas entre AZ. Este array vai para a função MATCH como o array lookup, e o array original de códigos ascii é fornecido como o valor lookup.

Em seguida, MATCH retorna um número (com base em uma posição) ou o erro # N / A. Os números representam letras maiúsculas, portanto a função ISNUMBER é usada junto com a função IF para filtrar os resultados. Apenas caracteres cujo código ASCII está entre 65 e 90 farão parte do array final, que é então remontado com a função TEXTJOIN para criar a abreviatura ou acrônimo final.

Bons links

Obtenha as iniciais do nome (Chandoo)

Artigos interessantes...