# 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

Tabela ProductProduct z polem ProductProduct i jednym polem dla każdego miesiąca ![Tabela Product z polem Product i jednym polem dla każdego miesiąca.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-data-model-before.png)

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

Tabela ProductProduct z polami ProductProduct, MonthMonth i SalesSales ![Tabela Product z polami Product, Month i Sales.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-data-model-after.png)

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.

Wykonaj następujące czynności:

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.

   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.

7. Kliknij Dodaj.

   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);	
   ```

8. Kliknij polecenie Ładuj dane.

9. Otwórz przeglądarkę modelu danych. Model danych wygląda następująco:

   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

   Tabela ProductProduct z polem ProductProduct i jednym polem dla każdego miesiąca ![Tabela Product z polem Product i jednym polem dla każdego miesiąca.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-data-model-before.png)

10. Kliknij kartę Product w Edytorze ładowania danych.

11. Wprowadź następujące dane powyżej instrukcji LOAD:

    ```
    CrossTable(Month, Sales)
    ```

12. Kliknij polecenie Ładuj dane.

13. Otwórz przeglądarkę modelu danych. Model danych wygląda następująco:

    Tabela Product z polami Product, Month i Sales

    Tabela Product z polami Product, Month i Sales

    Tabela ProductProduct z polami ProductProduct, MonthMonth i SalesSales ![Tabela Product z polami Product, Month i Sales.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-data-model-after.png)

    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 przedstawia dane załadowane przy użyciu prefiksu Crosstable

    Tabela przedstawia dane załadowane przy użyciu prefiksu CrosstableCrosstable![Tabela przedstawiająca dane załadowane przy użyciu prefiksu Crosstable.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-sense-table.png)

    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

    Wykres słupkowy przedstawiający dane załadowane przy użyciu prefiksu CrosstableCrosstable![Wykres słupkowy przedstawiający dane załadowane przy użyciu prefiksu Crosstable.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-crosstable-sense-chart.png)

InformacjaAby dowiedzieć się więcej na temat funkcji Crosstable, zapoznaj się z tym wpisem na blogu Qlik Community: [The Crosstable Load](https://community.qlik.com/t5/Qlik-Design-Blog/The-Crosstable-Load/ba-p/1468083). 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.