Ir para conteúdo principal
Usando o prefixo Crosstable

NESTA PÁGINA

Usando o prefixo Crosstable

Tabelas cruzadas são um tipo comum de tabela que apresentam uma matriz de valores entre duas listas retangulares de dados de cabeçalho. Sempre que existir uma tabela cruzada de dados, você poderá usar o prefixo Crosstable para transformar os dados e criar os campos desejados.

Prefixo Crosstable

Na tabela a seguir Product, há uma coluna por mês e uma linha por produto.

Tabela de produtos
Produto Jan 2014 Fev 2014 Mar 2014 Apr 2014 Mai 2014 Jun 2014
A 100 98 100 83 103 82
B 284 279 297 305 294 292
C 50 53 50 54 49 51

Quando você carrega a tabela, a saída é uma tabela com um campo para o Product e um campo para cada um dos meses.

Tabela Product com campo Product, e um campo para cada um dos meses
Product table with Product field, and one field each for the months.

Se desejar analisar esses dados, é muito mais fácil ter todos os números em um campo e todos os meses em outro. Nesse caso, é uma tabela de três colunas com uma coluna para cada categoria. (Product, Month, Sales).

Tabela Product com os campos Product, Month e Sales
Product table with Product, Month, and Sales fields.

O prefixo Crosstable converte os dados para uma tabela com uma coluna para o mês Month e outra para Sales. Outra forma de expressar isso é dizer que ele converte os nomes de campo para valores de campos.

Faça o seguinte:

  1. Crie um novo aplicativo e chame-o Tutorial de uso de scripts avançado.
  2. Adicione uma nova seção de script no Editor de carregamento de dados.
  3. Nomeie a seção Product.
  4. Em DataFiles no menu direito, clique em Selecionar dados.

  5. Carregue e, em seguida, selecione Product.xlsx.
  6. Selecione a tabela Product na janela Selecionar dados de.
  7. Nota de dicaEm Nomes de campos, certifique-se de que Nomes de campos incorporados esteja selecionado para incluir os nomes de campos da tabela ao carregar os dados.
  8. Clique em Inserir script.
  9. Seu script deve ter a seguinte aparência:

    LOAD Product, "Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014", "Jun 2014" FROM [lib://DataFiles/Product.xlsx] (ooxml, embedded labels, table is Product);

  10. Clique em Carregar dados.
  11. Abra o Visualizador do modelo de dados. O modelo de dados tem a seguinte aparência:
  12. Tabela Product com campo Product, e um campo para cada um dos meses
    Product table with Product field, and one field each for the months.

  13. Clique na guia Product no Editor de carregamento de dados.
  14. Digite o seguinte acima do comando LOAD:
  15. CrossTable(Month, Sales)

  16. Clique em Carregar dados.
  17. Abra o Visualizador do modelo de dados. O modelo de dados tem a seguinte aparência:
  18. Tabela Product com os campos Product, Month e Sales
    Product table with Product, Month, and Sales fields.

    Observe que geralmente os dados de entrada têm apenas uma coluna como um campo qualificador; como uma chave interna (Product no exemplo acima). Mas é possível ter várias. Nesse caso, todos os campos qualificadores devem ser listados antes dos campos de atributo no comando LOAD e o terceiro parâmetro do prefixo Crosstable deve ser usado para definir o número de campos qualificadores. Não é possível ter um LOAD anterior ou um prefixo na frente da palavra-chave Crosstable. No entanto, você pode usar a concatenação automática.

    Em uma tabela no Qlik Sense, seus dados têm a seguinte aparência:

    Tabela mostrando dados carregados usando o prefixo Crosstable
    Table showing data loaded using Crosstable prefix.

    Agora você pode, por exemplo, criar um gráfico de barras usando os dados:

    Gráfico de barras mostrando dados carregados usando o prefixo Crosstable
    Bar chart showing data loaded using the Crosstable prefix.

Nota informativaPara saber mais sobre Crosstable, consulte esta postagem de blog no Qlik Community: The Crosstable Load (A carga de crosstable). Os comportamentos são discutidos no contexto do QlikView. No entanto, a lógica se aplica igualmente ao Qlik Sense.

A interpretação numérica não funcionará para os campos de atributo. Isto significa que se existirem meses como cabeçalhos de coluna, eles não serão interpretados automaticamente. A solução alternativa é usar o prefixo Crosstable para criar uma tabela temporária e executar uma segunda passagem por meio dela para fazer as interpretações como mostrado no exemplo a seguir.

Observe que este é apenas um exemplo. Não há exercícios a serem concluídos no Qlik Sense.

tmpData: Crosstable (MonthText, Sales) LOAD Product, [Jan 2014], [Feb 2014], [Mar 2014], [Apr 2014], [May 2014], [Jun 2014] FROM ... Final: LOAD Product, Date(Date#(MonthText,'MMM YYYY'),'MMM YYYY') as Month, Sales Resident tmpData; Drop Table tmpData;

Limpando o cache de memória

Você pode excluir as tabelas criadas para limpar o cache da memória. Ao carregar em uma tabela temporária, como na seção anterior, você deve descartá-la quando ela não for mais necessária. Por exemplo:

DROP TABLE Table1, Table2, Table3, Table4; DROP TABLES Table1, Table2, Table3, Table4;

Você também pode soltar campos. Por exemplo:

DROP FIELD Field1, Field2, Field3, Field4; DROP FIELDS Field1, Field2, Field3, Field4; DROP FIELD Field1 from Table1; DROP FIELDS Field1 from Table1;

Como você pode ver, as palavras-chave TABLE e FIELD podem ser singulares ou plurais.