Trabalhando com tabelas cruzadas
Uma tabela cruzada é um tipo comum de tabela que apresenta uma matriz de valores entre duas listas retangulares de dados de cabeçalho. Ela poderia ter a aparência da tabela a seguir.
Exemplo 1:
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 QlikView, o resultado será um campo para Year e um campo para cada um dos meses. Geralmente, esse resultado não é o desejado. Seria melhor você gerar três campos: um para cada categoria de cabeçalho (Year e Month) e um para os valores de dados dentro da matriz.
Para isso, é preciso incluir o prefixo crosstable na declaração LOAD ou SELECT.
crosstable (Month, Sales) LOAD * from ex1.xlsx;
Isso cria o seguinte resultado no QlikView:
A tabela cruzada é frequentemente precedida de várias colunas de qualificação que devem ser lidas de modo direto. Nesse caso, há uma coluna de qualificação, Year:
Exemplo 2:
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 |
Nesse caso, há duas colunas de qualificação à esquerda, seguidas pelas colunas da matriz. 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 QlikView: