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.

Example 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:

Example 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:

See also: