Przeskocz do zawartości głównej

Używanie prefiksu Crosstable

Tabela krzyżowa to często spotykany typ tabeli. Stanowi ona macierz wartości między dwiema ortogonalnymi listami danych nagłówka. W przypadku danych w tabeli krzyżowej można użyć prefiksu Crosstable, aby przetransformować je i utworzyć żądane pola.

Prefiks Crosstable

W poniższej tabeli Product każda kolumna odpowiada jednemu miesiącowi, wiersz jednemu produktowi.

Tabela produktów
Produkt Jan 2014 Feb 2014 Mar 2014 Apr 2014 May 2014 Jun 2014
A 100 98 100 83 103 82
B 284 279 297 305 294 292
C 50 53 50 54 49 51

Po załadowaniu tabeli wynikowo powstaje tabela z jednym polem dla Product i jednym polem dla każdego miesiąca.

Tabela Product z polem Product i jednym polem dla każdego miesiąca
Tabela Product z polem Product i jednym polem dla każdego miesiąca.

Jeśli chcesz przeanalizować te dane, znacznie wygodniej jest dysponować wszystkimi liczbami w jednym polu i wszystkimi miesiącami w innym. W tym przypadku jest to tabela trzykolumnowa z jedną kolumną dla każdej kategorii (Product, Month, Sales).

Tabela Product z polami Product, Month i Sales
Tabela Product z polami Product, Month i Sales.

Użycie prefiksu Crosstable spowoduje przekształcenie danych w tabelę zawierającą jedną kolumnę dla kategorii Month i jedną dla kategorii Sales. Działanie prefiksu można też opisać jako przekształcenie nazw pól w wartości pól.

  1. Utwórz nową aplikację i nazwij ją Advanced Scripting Tutorial.
  2. Dodaj nową sekcję skryptu w edytorze ładowania danych.
  3. Sekcji nadaj nazwę Product.
  4. W sekcji DataFiles dostępnej po prawej stronie kliknij przycisk Wybierz dane.

  5. Prześlij, a następnie wybierz plik Product.xlsx.
  6. Wybierz tabelę Product w oknie Wybierz dane z.
  7. WskazówkaUpewnij się, że w obszarze Nazwy pól zaznaczona jest opcja Osadz. naz. pól, aby podczas ładowania danych uwzględniać również nazwy pól tabeli.
  8. Kliknij polecenie Wstaw skrypt.
  9. Skrypt powinien wyglądać następująco:

    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. Kliknij polecenie Ładuj dane.
  11. Otwórz przeglądarkę modelu danych. Model danych wygląda następująco:
  12. Tabela Product z polem Product i jednym polem dla każdego miesiąca
    Tabela Product z polem Product i jednym polem dla każdego miesiąca.

  13. Kliknij kartę Product w Edytorze ładowania danych.
  14. Wprowadź następujące dane powyżej instrukcji LOAD:
  15. CrossTable(Month, Sales)

  16. Kliknij polecenie Ładuj dane.
  17. Otwórz przeglądarkę modelu danych. Model danych wygląda następująco:
  18. Tabela Product z polami Product, Month i Sales
    Tabela Product z polami Product, Month i Sales.

    Należy pamiętać, że dane wejściowe zazwyczaj zawierają tylko jedną kolumnę jako pole kwalifikatora; jako klucz wewnętrzny (Product w powyższym przykładzie). Takich pól może jednak być kilka. W takim przypadku wszystkie pola kwalifikujące muszą być wymienione przed polami atrybutów w instrukcji LOAD, a liczbę pól kwalifikujących należy określić trzecim parametrem prefiksu Crosstable. Poprzedni LOAD ani prefiks nie może występować przed słowem kluczowym Crosstable. Jednak można użyć opcji automatycznego konkatenowania.

    W tabeli w Qlik Sense dane wyglądają następująco:

    Tabela przedstawia dane załadowane przy użyciu prefiksu Crosstable

    Tabela przedstawiająca dane załadowane przy użyciu prefiksu Crosstable.

    Teraz na podstawie danych można na przykład utworzyć wykres słupkowy:

    Wykres słupkowy przedstawiający dane załadowane przy użyciu prefiksu Crosstable

    Wykres słupkowy przedstawiający dane załadowane przy użyciu prefiksu Crosstable.
InformacjaAby dowiedzieć się więcej na temat funkcji Crosstable, zapoznaj się z tym artykułem na blogu Qlik Community: The Crosstable Load (Ładowanie tabeli krzyżowej). Działania są omawiane w kontekście rozwiązania QlikView. Logika jednak odnosi się również do Qlik Sense.

Interpretacja liczbowa nie zadziała w przypadku pól atrybutów. Oznacza to, że miesiące podane jako nagłówki kolumn nie będą automatycznie interpretowane. Można to obejść, stosując prefiks Crosstable w celu utworzenia tabeli tymczasowej i uruchomienia drugiego przejścia w celu przeprowadzenia interpretacji zgodnie z poniższym przykładem.

Należy pamiętać, że jest to tylko przykład. Nie istnieją żadne ćwiczenia dodatkowe, które należy wykonać w 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;

Opróżnianie pamięci podręcznej

Można usunąć utworzone tabele, aby wyczyścić pamięć podręczną. Po załadowaniu danych do pamięci tymczasowej należy ją opróżnić, gdy przechowywane w niej dane nie są już potrzebne. Na przykład:

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

Możesz również opróżnić pola. Na przykład:

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

Jak widać, słowa kluczowe TABLE i FIELD mogą występować w liczbie pojedynczej i mnogiej.