Jump to content

Pedido de fórmula


Recommended Posts

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.

image.png.72dff05800d9f5c8e8398babdc5c9783.png

 

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!

Link to comment
Share on other sites

@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....

Link to comment
Share on other sites

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.

image.thumb.png.102c9aa7b04dbca14c114ec640163362.png

 

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!

 

 

  • Like 2
Link to comment
Share on other sites

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")

 

 

 

  • Like 2
Link to comment
Share on other sites

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.

image.png.72dff05800d9f5c8e8398babdc5c9783.png

 

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 by Pataca
  • Like 1
Link to comment
Share on other sites

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.

image.png.72dff05800d9f5c8e8398babdc5c9783.png

 

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.

  • Like 1
Link to comment
Share on other sites

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 by TAS
  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...