Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Praca ze tabelami krzyżowymi w skrypcie ładowania danych

Tabela krzyżowa to często spotykany typ tabeli. Stanowi ona macierz wartości między dwiema ortogonalnymi listami danych nagłówka. Jeśli chcesz utworzyć asocjację między tymi danymi a innymi tabelami danych, zwykle nie jest to optymalny format danych.

W tym temacie opisano sposób cofania przestawienia danych w formacie tabeli krzyżowej, czyli transponowania jej części na wiersze za pomocą prefiksu crosstable w instrukcji LOAD w skrypcie ładowania danych.

Cofanie przestawiania tabeli krzyżowej z jedną kolumną kwalifikującą

Na początku tabeli krzyżowej często znajduje się kilka kolumn kwalifikujących, które należy odczytywać bezpośrednio. W tym przypadku mamy jedną kolumnę kwalifikującą Year oraz macierz danych sprzedaży dla poszczególnych miesięcy.

Tabela krzyżowa z jedną kolumną kwalifikującą
YearJanFebMarAprMayJun
2008456578127822
2009112322224585
2010655622791256
2011452432785515
2012455635786882

Zwykłe załadowanie takiej tabeli do Qlik Sense spowoduje utworzenie jednego pola dla kolumny Year i jednego pola dla każdego z miesięcy. Zazwyczaj nie takie działanie jest oczekiwane. Wygodniej byłoby wygenerować trzy pola:

  • Kolumnę kwalifikującą, w tym przypadku Year, zaznaczoną w powyższej tabeli na zielono.
  • Pole atrybutu, w tym przypadku reprezentowane przez nazwy miesięcy Jan - Jun zaznaczone na żółto. Polu można nadać nazwę Month.
  • Wartości macierzy danych, zaznaczone na niebiesko. W tym przypadku reprezentują one dane sprzedaży, można im nadać nazwę Sales.

Efekt ten można osiągnąć, dodając prefiks crosstable do instrukcji LOAD lub SELECT, na przykład:

crosstable (Month, Sales) LOAD * from ex1.xlsx;

Spowoduje to utworzenie w programie Qlik Sense następującej tabeli:

Tabela z prefiksem crosstable dodanym do instrukcji LOAD lub SELECT
YearMonthSales
2008Jan45
2008Feb65
2008Mar78
2008Apr12
2008Maj78
2008Jun22
2009Jan11
2009Feb23
.........

Cofanie przestawiania tabeli krzyżowej z dwiema kolumnami kwalifikującymi

W tym przypadku pierwsze dwie kolumny od lewej to kolumny kwalifikujące, po których następują kolumny macierzy.

Tabela krzyżowa z dwiema kolumnami kwalifikującymi
SalesmanYearJanFebMarAprMayJun
A2008456578127822
A2009112322224585
A2010655622791256
A2011452432785515
A2012455635786882
B2008577790249034
B2009233534345797
B2010776834912468
B2011573644906727
B2012576847908094

Liczbę kolumn kwalifikujących można podać jako trzeci parametr prefiksu crosstable w następujący sposób:

crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;

W programie Qlik Sense zwrócony zostanie następujący wynik:

Tabela z kolumnami kwalifikującymi podanymi jako trzeci parametr prefiksu crosstable
SalesmanYearMonthSales
A2008Jan45
A2008Feb65
A2008Mar78
A2008Apr12
A2008Maj78
A2008Jun22
A2009Jan11
A2009Feb23
............

Dowiedz się więcej

 

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!