Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
  • Avatar do usuário
  • Avatar do usuário
Por jardeltf
#10884
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.
Avatar do usuário
Por Deciog
Avatar
#10888
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
Por jardeltf
#10892
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
Avatar do usuário
Por Kledison
Avatar
#10895
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
Avatar do usuário
Por Deciog
Avatar
#10897
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
Avatar do usuário
Por Parkeless
Posts Avatar
#10899
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 todos
Function 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.
Por jardeltf
#10900
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!
Por jardeltf
#10902
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.
Avatar do usuário
Por Parkeless
Posts Avatar
#10904
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.
Avatar do usuário
Por Kledison
Avatar
#10907
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
Por jardeltf
#10912
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
Avatar do usuário
Por Parkeless
Posts Avatar
#10914
Jardel,

Segue código adaptado:
Código: Selecionar todos
Function 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:

Imagem

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.
Por jardeltf
#10998
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!
Avatar do usuário
Por Parkeless
Posts Avatar
#11001
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.

Imagem

Isso vale para qualquer função do Excel, não apenas as personalizadas...
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord