Como listo todos os valores em 3 colunas diferentes em uma nova coluna?

0

Eu tenho três colunas separadas com valores em uma planilha do Excel. Agora quero criar uma nova coluna que concatene todos os valores dessas colunas. Quando adiciono novos valores a uma dessas três colunas, quero que a coluna resumida seja atualizada automaticamente. Como faço isso?

Table1

ColumnA  ColumnB  ColumnC
VALUE1   VALUE4   VALUE7
VALUE2   VALUE5   VALUE8
VALUE3   VALUE6   VALUE9
         VALUE10

Resultado gerado:

Table2

VALUE1
VALUE2
VALUE3
VALUE4
VALUE5
VALUE6
VALUE10
VALUE7
VALUE8
VALUE9
    
por Benedikt Buchert 02.12.2016 / 13:06

2 respostas

2

Insira a seguinte Macro de eventos na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim inpt As Range, i As Long, K As Long, N As Long
    Dim j As Long

    Set inpt = Range("A:C")
    If Intersect(Target, inpt) Is Nothing Then Exit Sub
    Application.EnableEvents = False
        Range("D:D").Clear
        K = 1
        For i = 1 To 3
            N = Cells(Rows.Count, i).End(xlUp).Row
            For j = 1 To N
                Cells(K, 4).Value = Cells(j, i).Value
                K = K + 1
            Next j
        Next i
    Application.EnableEvents = True
End Sub

Ele monitorará as alterações nas colunas A por meio de C e atualizará a coluna D de acordo.

Porserumcódigodeplanilha,émuitofácildeinstalareusarautomaticamente:

  1. cliquecomobotãodireitodomousenonomedaguiapróximoàparteinferiordajaneladoExcel
  2. selecioneExibircódigo-issoabreumajaneladoVBE
  3. coleomaterialefecheajaneladoVBE

Sevocêtiveralgumadúvida,tenteprimeiroemumaplanilhadeteste.

Sevocêsalvarapastadetrabalho,amacroserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

Pararemoveramacro:

  1. abrirasjanelasdoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

Parasabermaissobremacrosemgeral,consulte:

link

e

link

Para saber mais sobre macros de eventos (código da planilha), consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 02.12.2016 / 15:42
2

Eu tenho uma resposta que não requer codificação.

  • suponho que você queira colocar a lista combinada (concatenada) na coluna D da mesma folha. Se você quiser em outro lugar, isso é uma mudança trivial.
  • Minha solução requer duas "colunas auxiliares"; por exemplo, Colunas E e F na mesma planilha. Se você quiser em outro lugar, essa é uma mudança trivial.
  • Eu suponho que você não estará colocando espaços em branco nas três primeiras colunas (ou seja, em os dados, antes do último valor), e você deseja que essas colunas sejam simplesmente concatenadas e não classificadas ou deduzidas. Se eu entendi mal, isso é uma grande mudança.
  • Eu suponho que cada coluna tenha pelo menos um valor; ou seja, que A1 , B1 e C1 não estão em branco. Se essa suposição não é válida, esta solução pode (provavelmente) ser adaptada para isso.

Solução:

  • Insira =IF(E1<0, "", OFFSET($A$1, F1, E1)) na célula D1 .
  • Arraste / preencha a célula D1 para baixo em D2 .
  • Insira 0 nas células E1 e F1 .
  • Enter %código% na célula =IF(E1<0, E1, IF(OFFSET($A$1, F1+1, E1)<>"", E1, IF(E1<2, E1+1, -1))) .
  • Insira E2 na célula =IF(E1<0, 0, IF(OFFSET($A$1, F1+1, E1)<>"", F1+1, 0)) .
  • Selecione as células F2 e arraste / preencha o ponto como você espera que a lista combinada seja. (Claro que você sempre pode estendê-lo mais tarde).

Colunas D2:F2 e E contêm a coluna (0) e o número da linha do valor na coluna F . Por exemplo, D é 0,0 , A1 é 0,2 , A3 é 1,3 etc. Um valor negativo na Coluna B4 indica que você está além do final dos dados. A fórmula na Coluna E é avaliada em branco se o valor D for negativo; caso contrário, ele usa a função E para recuperar o valor indexado pelos números OFFSET() e E .

As fórmulas nas Colunas F e E verificam se o valor anterior de F é negativo e, se estiver, defina a próxima linha como E - então, uma vez que você passou do fim da lista, você passou e você não começa a se amarrar. Caso contrário, se houver um próximo valor na coluna atual, avançamos para esse valor ( -1,0 ). Caso contrário, vamos para o topo da próxima coluna - exceto se a coluna atual for # 2 ( E1,F1+1 ), avançamos para a coluna # -1, porque estamos no final.

Agora você pode adicionar e excluir valores nas Colunas C , A e B , e a lista na Coluna C será atualizada automaticamente. Depois de conseguir isso, você pode ocultar as colunas auxiliares.

    
por 07.12.2016 / 02:15