Trabalhando com tabelas cruzadas no script de carregamento de dados
Uma guia cruzada é um tipo comum de tabela que apresenta uma matriz de valores entre duas listas retangulares de dados de cabeçalho. Geralmente não é o formato de dados ideal se você quiser associar os dados a outras tabelas de dados.
Este tópico descreve como você pode não girar uma guia cruzada, ou seja, transpor partes dela em linhas, usando o prefixo crosstable para um comando LOAD no script de carregamento de dados.
Não girando uma guia cruzada com uma coluna de qualificação
Uma guia cruzada frequentemente é precedida de várias colunas de qualificação, que devem ser lidas de modo direto. Neste caso, há uma coluna de qualificação, Year, e uma matriz de dados de vendas por mês.
Year | Jan | Feb | Mar | Apr | May | Jun |
---|---|---|---|---|---|---|
2008 | 45 | 65 | 78 | 12 | 78 | 22 |
2009 | 11 | 23 | 22 | 22 | 45 | 85 |
2010 | 65 | 56 | 22 | 79 | 12 | 56 |
2011 | 45 | 24 | 32 | 78 | 55 | 15 |
2012 | 45 | 56 | 35 | 78 | 68 | 82 |
Se essa tabela for simplesmente carregada no Qlik Sense, o resultado será um campo para Year e um campo para cada um dos meses. Geralmente, esse resultado não é o desejado. Você provavelmente preferiria ter três campos gerados:
- A coluna de qualificação, neste casoYear, marcada com a cor verde na tabela acima.
- O campo de atributo, neste caso representado pelos nomes mêsJan - Jun marcados em amarelo. Este campo pode ser adequadamente denominadoMonth.
- Os valores da matriz de dados, marcados em azul. Neste caso, eles representam dados de vendas, de modo que este pode ser adequadamente denominadoSales.
Para isso, é preciso incluir o prefixo crosstable na declaração LOAD ou SELECT.
crosstable (Month, Sales) LOAD * from ex1.xlsx;
Isso cria a seguinte tabela no Qlik Sense:
Year | Month | Sales |
---|---|---|
2008 | Jan | 45 |
2008 | Fev | 65 |
2008 | Mar | 78 |
2008 | Abr | 12 |
2008 | Maio | 78 |
2008 | Jun | 22 |
2009 | Jan | 11 |
2009 | Fev | 23 |
... | ... | ... |
Não girando uma guia cruzada com duas colunas de qualificação
Nesse caso, há duas colunas de qualificação à esquerda, seguidas pelas colunas da matriz.
Salesman | Year | Jan | Feb | Mar | Apr | May | Jun |
---|---|---|---|---|---|---|---|
A | 2008 | 45 | 65 | 78 | 12 | 78 | 22 |
A | 2009 | 11 | 23 | 22 | 22 | 45 | 85 |
A | 2010 | 65 | 56 | 22 | 79 | 12 | 56 |
A | 2011 | 45 | 24 | 32 | 78 | 55 | 15 |
A | 2012 | 45 | 56 | 35 | 78 | 68 | 82 |
B | 2008 | 57 | 77 | 90 | 24 | 90 | 34 |
B | 2009 | 23 | 35 | 34 | 34 | 57 | 97 |
B | 2010 | 77 | 68 | 34 | 91 | 24 | 68 |
B | 2011 | 57 | 36 | 44 | 90 | 67 | 27 |
B | 2012 | 57 | 68 | 47 | 90 | 80 | 94 |
O número de colunas de qualificação pode ser indicado como um terceiro parâmetro para o prefixo crosstable, da seguinte maneira:
crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;
Isso cria o seguinte resultado no Qlik Sense:
Vendedor | Year | Month | Sales |
---|---|---|---|
A | 2008 | Jan | 45 |
A | 2008 | Fev | 65 |
A | 2008 | Mar | 78 |
A | 2008 | Abr | 12 |
A | 2008 | Maio | 78 |
A | 2008 | Jun | 22 |
A | 2009 | Jan | 11 |
A | 2009 | Fev | 23 |
... | ... | ... | ... |