NandoADM Posted May 9, 2020 Share Posted May 9, 2020 Peço aos amigos forenses que me ajudem... PRECISO JUNTAR ESSES NÚMEROS QUE ESTÃO NA IMAGEM ABAIXO, MAS PRECISA SER NA ORDEM QUE ELES ESTÃO. OBEDECENDO A ORDEM QUE APARECE. 4 16 23 11 17 14 15 19 20 13 3 PODE SER SEPARADO POR ESPAÇO OU TAB. Agradeço muito quem puder pelo menos tentar me ajudar. Spoiler 4 16 23 22 11 17 14 15 19 20 13 3 FOCO e sorte! Quote Link to comment Share on other sites More sharing options...
San Posted May 9, 2020 Share Posted May 9, 2020 @NandoADM Pelo que entendi, ex o numero 4 pertence a uma celula, o 16 esta em outra celula e assim por diante.....minhas perguntas: qual a amplitude dessa matriz em numero de linhas e colunas?as outras celulas estão vazias ou contem alguma formula? pergunto pois acho que somente com uma macro para agrupar esses valores.... Quote Link to comment Share on other sites More sharing options...
San Posted May 9, 2020 Share Posted May 9, 2020 Segue uma dica das boas....uma UDF para fazer esse serviço para vc! UDF está no spoiler Parâmetros para utilização da UDF(formula definida pelo usuário) - 1º criterio = qual delimitador entre valores? use espaço,traço....usei espaço - 2º criterio = ignorar vazios "Falso" - 3º criterio = linhas que quer agrupar " vá selecionando as linhas completas e ele ignorara as celulas vazias" Se tiver o excel 2016 essa formula deve estar embutida. Spoiler Public Function UnirTexto(ByVal Delimitador As String, _ ByVal IgnorarVazios As Boolean, _ ParamArray Celulas() As Variant) As Variant On Error GoTo TratarErro Dim Intervalo As Variant Dim Resultado As String Dim i As Long Dim j As Long Dim k As Long If UBound(Celulas, 1) < LBound(Celulas, 1) Then UnirTexto = VBA.Conversion.CVErr(xlErrValue) Exit Function End If For i = LBound(Celulas, 1) To UBound(Celulas, 1) Step 1 If VBA.Information.IsArray(Celulas(i)) Then Intervalo = Celulas(i) For j = LBound(Intervalo, 1) To UBound(Intervalo, 1) Step 1 For k = LBound(Intervalo, 2) To UBound(Intervalo, 2) Step 1 If Not VBA.Information.IsError(Intervalo(j, k)) Then If Not VBA.Strings.Trim(Intervalo(j, k)) = vbNullString Then Resultado = Resultado & Delimitador & Intervalo(j, k) End If End If Next k Next j Else If Not VBA.Information.IsError(Celulas(i)) Then If Not VBA.Strings.Trim(Celulas(i)) = vbNullString Then Resultado = Resultado & Delimitador & Celulas(i) End If End If End If Next i If VBA.Strings.Len(Resultado) > VBA.Strings.Len(Delimitador) Then Resultado = VBA.Strings.Right(Resultado, VBA.Strings.Len(Resultado) - VBA.Strings.Len(Delimitador)) End If UnirTexto = Resultado Exit Function TratarErro: UnirTexto = VBA.Conversion.CVErr(xlErrValue) End Function Espero ter ajudado! 2 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 10, 2020 Share Posted May 10, 2020 @San eu tbm pensei em função personalizada , mas pelas postagens anteriores ele não gosta de macros acho que a minha é parecida com a sua, mas chamo de concatenar tudo já ignora vazios 2 Quote Link to comment Share on other sites More sharing options...
sorte com estudo ss Posted May 10, 2020 Share Posted May 10, 2020 eu fiz isso no meu estudo logico perai que eu vejo aqui 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 10, 2020 Share Posted May 10, 2020 Function Concatenar_tudo(Ranges As Range, Optional ByVal Separador As String, Optional ByVal Formato As String) ss = Ranges.Value2 If IsArray(ss) Then lt = UBound(ss, 1) ct = UBound(ss, 2) T = ct * lt '- 1 For L = 1 To lt For c = 1 To ct n = ss(L, c) If n <> "" Then If Formato <> "" Then n = Format(n, Formato) If nn < T Then said = said & n & Separador Else said = said & n End If Next Next Concatenar_tudo = said Else If Formato <> "" Then ss = Format(ss, Formato) Concatenar_tudo = ss End If End Function =Concatenar_tudo(T6:AG10;" ") se quiser formatar as dezenas para 2 casas é =Concatenar_tudo(T6:AG10 ; " " ; "00") 2 Quote Link to comment Share on other sites More sharing options...
sorte com estudo ss Posted May 10, 2020 Share Posted May 10, 2020 Omesmo sempre com suas formulas em vba hehehe 3 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 10, 2020 Share Posted May 10, 2020 @sorte com estudo ss bem, para mim funciona, pq não usar? fora que se eu for montar uma formulas para essas questões complexas alem de levar um tempão montado ainda ficam pesando a planilha com vba pelo menos eu consigo montar em questão de minutos e funciona muito bem, 2 Quote Link to comment Share on other sites More sharing options...
sorte com estudo ss Posted May 10, 2020 Share Posted May 10, 2020 Omesmo eu sei que tu manja bem da bodega 1 1 Quote Link to comment Share on other sites More sharing options...
San Posted May 10, 2020 Share Posted May 10, 2020 @Omesmo pelos docs que já li, da versão do 2016 e acima(eu uso 2010)já tem isso como uma formula (unirtexto) embutida no próprio excel 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 10, 2020 Share Posted May 10, 2020 @San tbm uso o 2010 não gostei do 2016 1 Quote Link to comment Share on other sites More sharing options...
Pataca Posted May 10, 2020 Share Posted May 10, 2020 (edited) 7 horas atrás, NandoADM disse: Peço aos amigos forenses que me ajudem... PRECISO JUNTAR ESSES NÚMEROS QUE ESTÃO NA IMAGEM ABAIXO, MAS PRECISA SER NA ORDEM QUE ELES ESTÃO. OBEDECENDO A ORDEM QUE APARECE. 4 16 23 11 17 14 15 19 20 13 3 PODE SER SEPARADO POR ESPAÇO OU TAB. Agradeço muito quem puder pelo menos tentar me ajudar. Mostrar conteúdo oculto 4 16 23 22 11 17 14 15 19 20 13 3 FOCO e sorte! @NandoADM Eu utilizei uma vez , mas os números ficam separados na mesma linha e coluna individualmente,vai depender da versão do Excel que você utiliza. Ex.: vou considerar que sua planilha vai de A1: O14. Digitar na célula Q1 =SEERRO(MENOR($A$1:O$14;COL(A1));" ") . Agora na célula AD1 digitar TRANSPOR(MODO.MULT(A1:O14;Q1:AB1) e CRTL + SHIFT + ENTER. Esta fórmula vai considerar a ordem conforme a sua imagem acima. Vai ficar assim: na célula AD1 = 4 em AE1 =16 e assim por diante e obedecendo a ordem que aparece. Edited May 10, 2020 by Pataca 1 Quote Link to comment Share on other sites More sharing options...
T. Schneider Posted May 10, 2020 Share Posted May 10, 2020 @NandoADMTalvez ajude: =CONCATENAR(A1;" ";B1;" ";C1;" ";D1;" ";E1;" ";F1;" ";... As "aspas" é pra separar as células, ou coloque qualquer outro símbolo. 1 Quote Link to comment Share on other sites More sharing options...
Joh2010 Posted May 10, 2020 Share Posted May 10, 2020 4 horas atrás, NandoADM disse: Peço aos amigos forenses que me ajudem... PRECISO JUNTAR ESSES NÚMEROS QUE ESTÃO NA IMAGEM ABAIXO, MAS PRECISA SER NA ORDEM QUE ELES ESTÃO. OBEDECENDO A ORDEM QUE APARECE. 4 16 23 11 17 14 15 19 20 13 3 PODE SER SEPARADO POR ESPAÇO OU TAB. Agradeço muito quem puder pelo menos tentar me ajudar. Mostrar conteúdo oculto 4 16 23 22 11 17 14 15 19 20 13 3 FOCO e sorte! @NandoADM Só consigo fazendo linha por linha, então se for muitas linhas nem compensa. Se fosse só 14 como essas daí que vc mostrou até daria pra embutir numa fórmula, mas se for mais linhas, esquece. 1 Quote Link to comment Share on other sites More sharing options...
TAS Posted May 10, 2020 Share Posted May 10, 2020 (edited) Olá Nando, As opções apresentadas são ótimas e todas devem ser úteis para a sua solução, mais simples sugiro; Apenas usar o simbolo "&" a cada linha em uma coluna; Com isso depois de totalizar cada linha basta concatenar cada uma das linhas, com o mesmo, smbolo, assim você terá em apenas uma linha toda a sequência, é bastante simples, mas também funciona, e as vezes dependendo do que você quer e como está sua planilha uma coisinha simples, resolve. Pode também usar =CONCAT(. São formas simples mas funcionais, dependendo da versão que usa, estão disponível outras formas. Edited May 10, 2020 by TAS 1 Quote Link to comment Share on other sites More sharing options...
NandoADM Posted May 10, 2020 Author Share Posted May 10, 2020 16 horas atrás, Omesmo disse: Apliquei a função e ficou ótimo... Mutio obrigado. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.