Coluna para uma única linha com cada dado entre parênteses

0

Preciso de ajuda para fazer a conversão a seguir.

Eu quero a mesma coisa assim: Coluna 7151 7152 7153 7154 para uma única linha - > (7151)|(7152)|(7153)|(7154)

    
por user768801 07.09.2017 / 05:51

2 respostas

1

="("&A1&")|("&A2&")|("&A3&")|("&A4&")"

Se o intervalo usado na coluna A contiver muitos dados (ou às vezes mudar), você deve usar o código vba para gerar o resultado.

    
por 07.09.2017 / 07:26
0

Você pode conseguir isso usando uma função personalizada de código VBA.

Na sua planilha do excel, pressione ALT + F11 para abrir o VBA Editor. No menu Arquivo, insira um módulo e clique duas vezes no nome do módulo no painel esquerdo (se necessário) para abrir o editor de código-fonte. Cole o seguinte código nele.

 Function TXTJOIN(argument1 As Range)      'Accept input range

   rowcounter = argument1.Rows.Count
   If rowcounter > 255 Then
        TXTJOIN = CVErr(xlErrValue)  'If row counter > 255 return #VALUE! Error
        Exit Function
   End If
   colcounter = argument1.Columns.Count ' Check the number of columns in the input range

   If colcounter = 1 Then  'Process if it's a single column range

        For Each element In argument1
            result = result & "(" & element & ")" & "|"
        Next element

        TXTJOIN = Left(result, Len(result) - 1)
   Else

        TXTJOIN = CVErr(xlErrValue)  'If it's a multicolumn range, return #VALUE! Error
   End If


End Function

Salve o código e saia. Se você estiver usando o Office 2007 e superior, precisará salvar a pasta de trabalho do Excel como pasta de trabalho do Excel habilitada para macro .xlsm.

Desta forma, criamos uma função personalizada chamada TXTJOIN.

Use isso na sua planilha agora, como mostrado na figura abaixo.

Observe que essa função personalizada é simplificada para funcionar apenas em uma única coluna. Passar um intervalo de várias colunas para ele deve retornar #VALUE! Erro. Isso funcionará somente nesta pasta de trabalho, pois o código existe nesta pasta de trabalho. Além disso, para evitar A: A sendo passado para ele, ele restringe a um máximo de 255 células para concatenar.

    
por 07.09.2017 / 08:02