Dicas de Excel - Extraindo somente os Nomes

Anônima
2017-12-01T13:01:53+00:00

Bom dia!

Esta vai ser a primeira de uma série de dicas  que pretendo postar na comunidade Microsoft.

Espero que elas ajudem os usuários da comunidade.

Vamos lá:

Suponha que você tenha várias linhas na coluna A em uma planilha com nomes de pessoas mais alguns números e outros caracteres, como mostrado nos dois exemplos a seguir:

76951 21/9/1953 JOSÉ ANTONIO PIRES 02,00 00,53 37,50 40,03 47

76951 21/9/1953 josé antONIO PIRES 02,00 00,53 37,50 40,03 48

E você precise extrair somente os nomes de pessoas para as células na coluna B.

Uma possível solução para o respectivo problema seria a seguinte:

1-Crie uma tabela ajustada e resumida de códigos numéricos do conjunto de caracteres de computador (veja a figura abaixo) em uma área vazia da sua planilha. (por exemplo D1:E13). Vale lembrar, que a referida tabela pode ser ajustada as suas necessidades (incluir ou excluir caracteres válidos para os nomes).

2-Crie um intervalo nomeado TabCodigo somente para os dados da respectiva tabela (região D3:E13).

3-Supondo que os dados de origemestão a partir da célula****A2 na planilha (veja a figura anterior), crie a seguinte fórmula matricial na célula B2:

=EXT.TEXTO(ESQUERDA(A2;MÁXIMO(SE(ÉNÚM(1/PROC(CÓDIGO(EXT.TEXTO(MAIÚSCULA(A2)&REPT(" ";100);LIN($1:$100);1));TabCodigo));LIN($1:$100))));

MÍNIMO(SE(ÉNÚM(1/PROC(CÓDIGO(EXT.TEXTO(MAIÚSCULA(A2)&REPT(" ";100);LIN($1:$100);1));TabCodigo));LIN($1:$100)));100)

Observação importante: para entrar com a respectiva fórmula você deve pressionar Ctrl+Shif+Enter e não somente Enter. Caso você utilize somente o Enter  para entrar com a fórmula, obterá o erro #VALOR!

4-Copie a fórmula para as demais células da coluna B e veja o resultado.

Até a próxima,

Markmzz

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

4 respostas

Classificar por: Mais útil
  1. Anônima
    2017-12-15T17:48:45+00:00

    Perfeito. 

    Fico no aguardo, este tema muito me interessa.

    Forte abraço,

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2017-12-15T17:36:18+00:00

    Boa tarde Paulo,

    Se o padrão citado por você for o mesmo em todas as células do intervalo, seria uma solução mais simples e sem a necessidade da Fórmula Matricial.

    O meu objetivo com a Fórmula Matricial do respectivo exemplo é mostrar uma série de recursos do Excel que são pouco conhecidos e utilizados.

    Assim que tiver mais tempo, devo postar uma explicação detalhada (passo-a-passo) da Fórmula Matricial utilizada por mim.

    Markmzz

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2017-12-15T16:05:40+00:00

    Boa tarde Markmzz,

    Caso a estrutura semelhante entre os itens sejam os mesmos, detectei as seguintes regras entre as 2 linhas de exemplo:

    76951 21/9/1953 JOSÉ ANTONIO PIRES 02,00 00,53 37,50 40,03 47

    76951 21/9/1953 josé antONIO PIRES 02,00 00,53 37,50 40,03 48

    2 espaços antes do nome (entre o código inicial e início do nome);

    Teremos vírgula apenas após o nome, exatamente 4 caracteres depois do nome;

    Caso estes itens citados forem regras em todas as linhas poderíamos usar a seguinte solução de funções aninhadas.

    =EXT.TEXTO(A2;LOCALIZAR(" ";SUBSTITUIR(A2;" ";"|";1))+1;LOCALIZAR(",";A2)-LOCALIZAR(" ";SUBSTITUIR(A2;" ";"|";1))-3)

    Não precisaríamos então usar funções matrizes,

    O que achou ?

    Aguardo comentários,

    Abraços,

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2017-12-02T07:04:42+00:00

    Bom dia!

    Criei uma nova versão (com uma pequena alteração na tabela de códigos e na fórmula).

    Nova fórmula:

    =EXT.TEXTO(ESQUERDA(A2;MÁXIMO(SE(ÉNÚM(PROC(CÓDIGO(EXT.TEXTO(MAIÚSCULA(A2)&REPT(" ";100);LIN($1:$100);1));TabCodigo));LIN($1:$100))));

    MÍNIMO(SE(ÉNÚM(PROC(CÓDIGO(EXT.TEXTO(MAIÚSCULA(A2)&REPT(" ";100);LIN($1:$100);1));TabCodigo));LIN($1:$100)));100)

    Markmzz

    Esta resposta foi útil?

    0 comentários Sem comentários