P A T H

Como agregar linhas e concatenar strings em um único campo

O que você vai aprender?

Nessa dica iremos ver como agregar linhas de campos do tipo string e concatenar esses valores em um único campo.

Para isso, usaremos a base Exemplo – Superloja disponível no Tableau.

Introdução

A base de dados que vamos utilizar será uma base de pedidos, onde teremos informações como o nome do cliente, a categoria da compra e o ID do pedido:

Podemos ver que cada compra pertence a uma categoria e subcategoria. Nosso objetivo será criar um campo que irá concatenar todas as subcategorias que cada cliente já comprou, separado por vírgulas, seguindo esse formato:

Com isso em mente, vamos começar nosso fluxo!

Passo 01: Isolar linhas únicas de clientes e subcategorias

Neste exemplo, sempre serão geradas 16 colunas de índices de subcategorias. No entanto, se utilizarmos uma base de dados real, que é atualizada diariamente, esse número pode variar. Por exemplo, se algum cliente adquirir 20 subcategorias, serão criadas 20 colunas ao invés de 16. Se você tiver certeza de que o número de colunas geradas será sempre o mesmo, pode pular essa etapa. Mas para lidar com essa variação, é necessário criar uma tabela de apoio que normalize o número total de colunas, facilitando a concatenação dos valores e a posterior remoção dessas colunas de índice.

 

Para isso, podemos criar uma planilha no Excel com colunas numeradas de 1 até um valor razoável, que represente o limite superior do número de subcategorias que um cliente pode adquirir. No nosso caso, utilizaremos o número 50, pois é altamente improvável que esse limite seja ultrapassado. Essa tabela de apoio terá 50 colunas e uma única linha preenchida com um “-” em cada coluna, servindo como referência para ajustar e normalizar os dados:

 

Passo 02: Criar um índice para cada subcategoria

Vamos precisar criar um índice numérico para cada subcategoria de cada cliente, para isso, vamos utilizar um cálculo de classificar. Clicamos em ‘…’ na coluna subcategoria, depois em “Criar campo calculado” e em “Classificar”. Vamos agrupar nossa classificação por Nome do cliente, para o índice reiniciar a cada novo cliente, como podemos ver abaixo:

Passo 03: Dinamizar colunas de Índice 

Vamos precisar dinamizar essas linhas de Índice para coluna, para isso vamos trazer uma ferramenta de Dinamizar, trocar para “Linhas para colunas” e levar a coluna “Indice” para a parte de cima “Campo que dinamizará linhas em colunas” e a coluna “Subcategoria” para a parte de baixo “Campo para agregar para novas colunas”. Troque a agregação da Subcategoria para “Máximo”:

Podemos observar que agora temos 16 colunas, criadas a partir da nossa coluna de Índice, o que indica que o máximo de subcategorias adquiridas por um cliente foi 16. É importante destacar que nem todos os clientes compraram as 16 subcategorias; por exemplo, se um cliente adquiriu 15 subcategorias, a coluna “16” permanecerá vazia, resultando em valores nulos em várias das novas colunas.

Passo 04: Criar uma base de apoio para normalizar o número de subcategorias dos clientes e uni-la com o fluxo (opcional)

Neste exemplo, sempre serão geradas 16 colunas de índices de subcategorias. No entanto, se utilizarmos uma base de dados real, que é atualizada diariamente, esse número pode variar. Por exemplo, se algum cliente adquirir 20 subcategorias, serão criadas 20 colunas ao invés de 16. Se você tiver certeza de que o número de colunas geradas será sempre o mesmo, pode pular essa etapa. Mas para lidar com essa variação, é necessário criar uma tabela de apoio que normalize o número total de colunas, facilitando a concatenação dos valores e a posterior remoção dessas colunas de índice.

 

Para isso, podemos criar uma planilha no Excel com colunas numeradas de 1 até um valor razoável, que represente o limite superior do número de subcategorias que um cliente pode adquirir. No nosso caso, utilizaremos o número 50, pois é altamente improvável que esse limite seja ultrapassado. Essa tabela de apoio terá 50 colunas e uma única linha preenchida com um “-” em cada coluna, servindo como referência para ajustar e normalizar os dados:

Vamos unir essa base com o resto do fluxo:

Passo 05: Concatenar colunas de índice

Chegamos na reta final do nosso fluxo! Vamos finalmente concatenar os valores, agora que estão todos nas mesmas linhas. Por causa do passo anterior, sabemos que é necessário concatenar as 50 colunas resultantes da união. Mesmo que o número de subcategorias de um cliente não chegue a 50, é importante concatenar todas as colunas para garantir que nenhuma subcategoria seja omitida. Então, vamos precisar criar um longo campo calculado concatenando todas as colunas:

O número de linhas do cálculo varia conforme a quantidade de colunas da base de apoio. Na imagem acima, utilizamos “…” para resumir a fórmula, mas, no cálculo real, todas as colunas de 1 a 50 foram concatenadas.  Pode copiar o texto do cálculo abaixo:

TRIM(

  IIF(ISNULL([1]), ”, [1] + ‘, ‘) +

  IIF(ISNULL([2]), ”, [2] + ‘, ‘) +

  IIF(ISNULL([3]), ”, [3] + ‘, ‘) +

  IIF(ISNULL([4]), ”, [4] + ‘, ‘)

 // IIF(ISNULL([N]), ”, [N] + ‘, ‘)

)

Com isso, teremos essa coluna resultante, podemos ver que ela já está na formatação que desejamos, agora só precisamos fazer alguns ajustes:

Passo 06: Ajustes finais e incorporar coluna concatenada de volta na base original

Temos nossa coluna de subcategorias concatenadas, agora vamos fazer um pequeno ajuste de formatação e limpar os campos que não precisamos mais.

  1. Podemos ver que temos uma linha com apenas vírgulas na subcategoria concatenada, vamos excluí-la, ela é apenas uma sujeira que restou da base de apoio.
  2. Vamos manter apenas as colunas “Nome do Cliente” e “Subcategorias concatenada”.
  3. Podemos ver que a “Subcategorias concatenada” sempre termina com uma vírgula, por causa da forma que realizamos a concatenação. Por isso vamos fazer um último cálculo nesse campo para sempre cortar o último caractere. Pode copiar o texto do cálculo abaixo:

LEFT([Subcategorias concatenadas], LEN([Subcategorias concatenadas]) – 1)

 

Com isso, a base ficará assim:

Por último, precisamos juntar essa coluna com nossa base original utilizando uma etapa de União de Colunas e usando Nome do Cliente como chave da união.

E no final, assim ficará nosso fluxo e base:

14 de Agosto de 2025

Pronto! Agora você já sabe como agregar linhas e concatenar strings em um único campo.

Language