Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
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ć!