Página 1 de 1
Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 08:31
por jardeltf
Bom dia! Estou em dúvida em como pegar as iniciais de um nome em uma célula e jogar para outra (os nomes e sobrenome estarão separador por espaço). Ex:
A1= Anderson Silva; A2 (deve exibir)= A.S. (Pode aparecer sem ponto)
outro exemplo:
A1= Pedro henrique gomes vieira santos néspole filho = P.h.g.v.s.n.f.
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 09:27
por Deciog
Jardel
Pode ser assim
=EXT.TEXTO(D4;1;1)&". "&+EXT.TEXTO(D4;PROCURAR(" ";D4)+1;1)&"."
mas o ideal é postar uma planilha com exemplos
Décio
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 09:41
por jardeltf
Bom dia! Eu não postei uma planilha por achar que dava para entender, mas peço desculpas se não ficou muito claro. Mas o eu quero é: Em uma coluna da planilha terei nomes, na outra quero obter as iniciais desse nome separados por um ponto. Só isso! Só que os nomes podem ter tamanhos variados, a sua fórmula ajuda, só que funciona apenas com 2 nomes, eu preciso que funcione com 1, 2, 3 ou seja lá quantos nomes for. Provavelmente precisarei utilizar vba, mas não sei muito bem utilizá-lo
http://gurudoexcel-forum.s3.amazonaws.c ... 008131.png
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 10:26
por Kledison
Bom dia,
fique atento as regras do fórum.
Regra nº 9:
Não coloque perguntas duplicadas. Posts de natureza duplicada serão excluídos ou bloqueados.
O seu tópico mais recente foi excluído.
Att
Moderador
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 10:29
por Deciog
Jardel
Quando pedi uma planilha de modelo, é para que possamos ver todas as possibilidade de sua necessidade, olha esta planilha, ela corrige varias situações, espero que servi ok
Décio
Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 10:50
por Parkeless
Bom dia!
Acredito que o Decio já tenha sanado sua necessidade; mas como já bolei de forma diferente, estou postando como meio alternativo rs.
Fiz via function (VBA):
Código: Selecionar todosFunction GetIniciais(Valor As String, Optional Tipo = 0)
Dim ArrayValores
Dim i As Long
ArrayValores = Split(Valor, " ")
For i = 0 To UBound(ArrayValores)
GetIniciais = Trim(GetIniciais & " " & UCase(Left(ArrayValores(i), 1)))
Next i
'Se tipo = 0, colocar pontos
If Tipo = 0 Then
GetIniciais = Application.WorksheetFunction.Substitute(GetIniciais, " ", ". ")
GetIniciais = GetIniciais & "."
End If
End Function
Para usar, vá na planilha, aperte Alt + F11, abrirá o VBE. Vá em Inserir > Modulo, e cole o código acima lá.
Então feche o VBE; de volta na planilha, insira a fórmula: =GetIniciais(A2)
Se quiser que não apareça os pontos, insira: =GetIniciais(A2;1)
A planilha deve ser salva no formato .xlsm para funcionar.
Estou anexando um exemplo da aplicação.
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 10:54
por jardeltf
Bom dia! É que só depois visualizei que existia um campo para vba, por isso tinha colocado essa pergunta lá e tinha finalizado essa aqui, por considerar que provavelmente lá deveria ser o local correto da pergunta. Obrigado!
Iniciais de vários nomes
Enviado: 23 Mai 2016 às 11:47
por jardeltf
Bom dia! Eu preciso pegar as inicias de vários nomes que estejam na mesma célula para e colocá-las separadas por um ponto. Exemplo de como deverá funcionar:
http://gurudoexcel-forum.s3.amazonaws.c ... 014641.png
PS: Eu sei que já utilizei um tópico para isso, mas não sabia como reativá-lo. Além disso, só estou abrindo este tópico porque a pessoa que me pediu ajuda só me falou agora que pode-se ter mais de um nome na mesma célula. Só que estes estarão sempre separados por quebra de linha, como exposto na imagem acima.
Iniciais de vários nomes
Enviado: 23 Mai 2016 às 12:05
por Parkeless
Jardel,
Essa quebra de linha, é feita através de CTRL + Enter?
Consegue anexar uma planilha com um exemplo? Acredito que dê para fazer com VBA, mas preciso saber exatamente qual caracter está sendo utilizado nessa quebra.
Re: Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 12:36
por Kledison
Olá,
quando você finalizar um tópico e posteriormente surgir dúvidas referente ao mesmo assunto, entre em contato com o Administrador/Moderadores solicitando o destrancamento do tópico, evite criar tópicos com o mesmo assunto.
Antes de marcar resolvido, verifique se suas dúvidas foram realmente sanadas.
Eu fundi o seu tópico antigo com o novo que você criou.
Att
Moderador
Re: Iniciais de vários nomes
Enviado: 23 Mai 2016 às 13:13
por jardeltf
Parkeless escreveu:Jardel,
Essa quebra de linha, é feita através de CTRL + Enter?
Consegue anexar uma planilha com um exemplo? Acredito que dê para fazer com VBA, mas preciso saber exatamente qual caracter está sendo utilizado nessa quebra.
A quebra é dada por alt + enter e o exemplo de como fica a tabela pode ser vista nessa imagem:
http://gurudoexcel-forum.s3.amazonaws.c ... 014641.png
Pegar iniciais de um nome
Enviado: 23 Mai 2016 às 13:45
por Parkeless
Jardel,
Segue código adaptado:
Código: Selecionar todosFunction GetIniciais(Valor As String, Optional Tipo = 0)
Dim ArrayValores
Dim i As Long
Dim j As Long
Dim ArrayNomes
ArrayNomes = Split(Valor, Chr(10))
For j = 0 To UBound(ArrayNomes)
ArrayValores = Split(ArrayNomes(j), " ")
For i = 0 To UBound(ArrayValores)
GetIniciais = Trim(GetIniciais & " " & UCase(Left(ArrayValores(i), 1)))
Next i
If j < UBound(ArrayNomes) Then: GetIniciais = GetIniciais & Chr(10)
Next j
'Se tipo = 0, colocar pontos
If Tipo = 0 Then
GetIniciais = Application.WorksheetFunction.Substitute(GetIniciais, " ", ". ")
If UBound(ArrayNomes) > 0 Then: GetIniciais = Application.WorksheetFunction.Substitute(GetIniciais, Chr(10) & ". ", "." & Chr(10))
GetIniciais = GetIniciais & "."
Else
If UBound(ArrayNomes) > 0 Then: GetIniciais = Application.WorksheetFunction.Substitute(GetIniciais, Chr(10) & " ", Chr(10))
End If
End Function
Para utilizar, siga as instruções que passei anteriormente (na primeira versão desse código).
Obs.: As quebras de linha só vão acontecer se o campo "Quebrar Linhas Automaticamente" estiver ativo, como o exemplo abaixo:
Testei o código com a quebra CTRL + Enter, e funcionou. Se der errado aí, provavelmente é porque o caracter de quebra é diferente do que eu considerei.
Se for o caso, realmente precisarei que você anexe a planilha ou um modelo dela; só um print não ajuda.
Re: Pegar iniciais de um nome
Enviado: 25 Mai 2016 às 07:36
por jardeltf
Bom dia! Muito obrigado pela ajuda! Realmente sanou o meu problema. Só uma dúvida. Eu tenho uma planilha com uns 900 nomes que utilizo a fórmula fornecida aqui, só que se eu tentar procurar as iniciais utilizando o pesquisar do excel não consigo encontrá-las, apesar de está vendo-as. Exemplo: possuo a sigla A.S.C. (gerada pela fórmula de vba) em um linha e jogo no excel-> procurar-> A.S.C. e ele não acha. Estou anexando uma planilha como exemplo. A minha dúvida é: se eu gero algo com vba eu não consigo localizá-los não? Obrigado!
Pegar iniciais de um nome
Enviado: 25 Mai 2016 às 09:15
por Parkeless
Jardel,
Para procurar o resultado da fórmula, não a fórmula em si, você tem que selecionar a opção "Buscar Valores" na tela de busca.
Isso vale para qualquer função do Excel, não apenas as personalizadas...
Re: Pegar iniciais de um nome
Enviado: 25 Mai 2016 às 13:37
por jardeltf
Boa tarde! muito obrigado pela ajuda e pela paciência!