Excel - concatenando células onde o número de referência coincide com [duplicado]

4

Eu tenho uma planilha com muitas linhas. Algumas das linhas compartilham números de referência (contidos, digamos, na coluna A). O que eu gostaria de fazer é, onde uma linha compartilha um número de referência com outra linha, gostaria de concatenar os dados contidos na coluna B de ambas as linhas para uma nova célula na coluna C .

Exemplo:

Col A Col B Col C
12345 Robert < kbd> Robert, David
12345 David Chris
54321 Chris

    
por Lewes Dev 05.03.2013 / 15:52

2 respostas

2

Aqui está a abordagem do VBA. Assumindo o Excel 2007 ou posterior; Primeiros passos serão diferentes se você estiver usando uma versão pré-Ribbon do Excel.

  1. Ativar a guia Desenvolvedor

  2. Clique em "Visual Basic" na guia Desenvolvedor na faixa de opções

  3. Clique com o botão direito do mouse em "VBAProject (seja qual for sua planilha com nome.xls *)" e insira - > Módulo no menu de contexto

  4. Cole este código

    Option Explicit
    
    Function allquixotic(param As Variant, search As Range, values As Range, Optional absolute As Boolean = False) As String
    
    Dim sep As String, retval As String
    Dim i As Integer, rownum As Integer
    Dim look As Range, j As Range
    
    sep = ", "
    retval = ""
    For i = 1 To search.Rows.Count
    Set look = search.Cells(i, 1)
    If absolute Then
            rownum = look.Row
    Else
            rownum = i
    End If
    
    If look.Value = param Then
            If absolute Then
                    Set j = values.Worksheet.Cells(rownum, values.Column)
            Else
                    Set j = values.Cells(i, 1)
            End If
            retval = IIf(retval = "", retval & j.Value, retval & sep & j.Value)
    End If
    
    Next
    
    allquixotic = retval
    
    End Function
    
  5. Use a função de planilha (sinta-se à vontade para renomeá-la) usando uma fórmula como

    =allquixotic(A1,$A$1:$A$15,$B$1:$B$15,true)
    
  6. Use a alça de preenchimento para colocar a fórmula em todas as células

Os parâmetros são os seguintes:

=allquixotic(look_cell, key_range, value_range, absolute)

look_cell : o primeiro parâmetro deve ser uma célula única ou um valor literal . A entrada válida inclui itens como 3 , $6.25 , "Hello" , etc. Esse é o valor que você está tentando encontrar em key_range .

key_range : deve ser um intervalo de células (mais de uma célula); Se absolute for true, você obterá resultados muito estranhos, a menos que seja um intervalo contíguo (todos os valores estão em linhas sequenciais).

value_range : deve ser um intervalo de células (mais de uma célula); Se absolute for true, você obterá resultados muito estranhos, a menos que seja um intervalo contíguo (todos os valores estão em linhas sequenciais).

absolute : se for verdade, usaremos o número de linha absoluto (relativo ao número de linhas na planilha inteira) de cada linha "encontrada" no key_range para determinar qual linha para extrair um valor de value_range on. Se for falso, usaremos números relativos; Por exemplo, se encontrarmos uma correspondência na terceira linha de key_range , extrairemos o valor da terceira linha de value_range . O valor recomendado é FALSE, ou você pode omiti-lo como padrão.

Nota : Esta função não suporta o caso em que os intervalos de chave e valor estão em colunas , mas deve ser bastante fácil adaptá-la a isso.

Além disso, se você especificar várias colunas em key_range ou em value_range, somente a coluna mais à esquerda será usada.

    
por 05.03.2013 / 22:24
-1

Isso funcionaria para você? Defina a fórmula em C2 como

=IF(A2=A3,B2 & ", " & B3,B3)

Ele pressupõe que seus dados sejam classificados em ColA para que os números de referência sejam agrupados.

PERGUNTA: Pode haver mais de 2 nomes com o mesmo número de referência na ColA?

    
por 05.03.2013 / 16:07