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

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
ProduktJan 2014Feb 2014Mar 2014Apr 2014May 2014Jun 2014
A100981008310382
B284279297305294292
C505350544951

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.

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ć, co możemy poprawić!