Free Trial

Base de conhecimento

Como criar um ID único dinâmico e agrupado por colunas

Thableaus
17 - Castor
17 - Castor
Created

A ferramenta RecordID é muito útil para dar um ID único a cada linha do seu conjunto de dados. Ela simplesmente adiciona uma sequência numérica, baseada num valor inicial numérico (que pode ser um inteiro, ou até uma string). Ela é extremamente fácil de configurar e além de dar uma chave única para cada registro, ela pode ser utilizada para mescla de dados, reorganização posicional do conjunto, ordenação, etc.

 

Thableaus_0-1640100259989.pngThableaus_1-1640100260014.png

 

 

 

 

Porém, quando se quer classificar grupos de registros dentro de um conjunto de dados, o RecordID não é suficiente. Aí que entram duas ferramentas que podem ser empregadas para contornar o problema de maneira bem simples: Tile Tool (Ferramenta bloco) e Multi-Row fórmula (Fórmula de múltiplas linhas).

Vamos trazer um exemplo e explorar possíveis soluções para o caso identificado.

 

Temos um conjunto de dados em com todas as rodadas do Campeonato Brasileiro, entre 2000 e 2019. Neste conjunto, os campos representam dados de cada partida, como a data, horário, time mandante, time vencedor, etc.

E se por acaso, quiséssemos saber qual foi a 100ª partida desde 2000 em cada estádio? Infelizmente o RecordID não funcionaria, pois faria uma sequência de todas as partidas. Queremos dividir os IDs por estádio, e filtrar um a um também seria um processo moroso e desnecessário. Vamos então pela primeira alternativa – a Tile tool!

Thableaus_2-1640100260070.pngThableaus_3-1640100260095.png

 

 

A maneira mais fácil de criar este ID seria utilizando a opção “Unique Value” (Valor único). Para cada valor único da coluna Arena (neste caso, o estádio), será criado um identificador numérico, e se esse valor se repetir, será criada uma sequência numérica. Estes dois campos são denominados no Alteryx como Tile_Num e Tile_SequenceNum, respectivamente. Ao se fazer isso, o conjunto de dados é automaticamente ordenado de A a Z, pelo campo selecionado (Arena).

 

Thableaus_4-1640100260192.png

 

Após a criação dos IDs, bastaria filtrar o campo Tile_SequenceNum = 100 para encontrar a centésima partida em cada estádio. Bem tranquilo, não? Isso foi facilitado pois o campo de Data foi o critério utilizado na sequência, visto que os registros já vem pré-ordenados por Data.

 

Thableaus_5-1640100260290.png

 

Com a Tile Tool, é possível criar mais grupos internos – por exemplo, se eu quisesse saber a 100ª partida do Fluminense no Maracanã como mandante, bastava selecionar a coluna “Clube 1” na configuração da ferramenta.

 

Thableaus_6-1640100260327.png

 

Por sinal, o Flu bateu o Juventude por 3x2

 

Agora e se quisermos fazer com a Multi-Row Formula? Sem problemas! Também dá, porém com um pouco mais de trabalhinho. Vamos lá!

 

Thableaus_7-1640100260505.png

 

Primeiramente, precisamos ter certeza que estamos com os dados devidamente ordenados e classificados. Neste caso, vamos utilizar a ferramenta “Sort” para colocar os registros por Arena (estádio) e Data.

 

Thableaus_8-1640100260748.png

 

Ao adicionar a ferramenta Multi-Row, precisamos configurá-la e criar a expressão lógica para comparar as linhas próximas. Neste caso, teríamos que agrupar por Arena, pois queremos criar um ID único para cada Arena nova que aparece no conjunto de dados. A expressão criada leva em consideração a linha anterior – caso o ID ainda não exista (ou seja, igual a 0), começaremos pelo número 1. A partir daí, cria-se a sequência, adicionando sempre 1 ao anterior, até que se encontre uma nova Arena (faz-se o reset da sequência).

 

Thableaus_9-1640100260998.png

 

Caso não queira utilizar o “Group By” e não queira agrupar por nenhum campo, você pode também inserir a condição de comparação entre grupos dentro da expressão. Se a linha anterior da Arena for diferente da atual, começamos a sequência no número 1. Caso contrário (seja igual), adicionamos 1 a linha anterior e seguimos a sequência.

 

E aí, me diz, qual das opções mais gostou ou mais utiliza? Você tem alguma maneira alternativa de fazer isso? Caso tenha, compartilhe conosco por aqui!

 

Um abraço e até a próxima,

Comentários

Boa dica, nunca tinha usado o Tile, nem sabia para oque ele servia, haha'

Estou começando agora com o Alteryx e é muito bom pegar um conteúdo assim mastigadinho. Obrigadão!

Contribudores
Rótulos