Ga naar hoofdinhoud Ga naar aanvullende inhoud

Het prefix Crosstable gebruiken

Kruistabellen zijn een veel voorkomend type tabel die bestaat uit een matrix van waarden tussen twee rechthoekige lijsten met veldnaamgegevens. Wanneer u een kruistabel met gegevens hebt, kan het prefix Crosstable worden gebruikt voor het transformeren van de gegevens en het maken van de gewenste velden.

Prefix Crosstable

In de volgende Product-tabel hebt u één kolom per maand en één rij per product.

Tabel Product
ProductJan 2014Feb 2014Mar 2014Apr 2014Mei 2014Jun 2014
A100981008310382
B284279297305294292
C505350544951

Als deze tabel wordt geladen, resulteert dat in een uitvoer van een tabel met één veld voor Product en één veld voor elk van de maanden.

Product-tabel met Product-veld en een veld voor elk van de maanden

Tabel Product met veld Product en een veld voor elk van de maanden.

Als u deze gegevens wilt analyseren, is het veel gemakkelijker als alle getallen in één veld staan en alle maanden in een ander. In dit geval is dat een tabel met drie kolommen waarvan elke kolom een categorie bevat (Product, Month, Sales).

Product-tabel met velden Product, Month en Sales

Tabel Product met velden Product, Maand en Verkoop.

Het prefix Crosstable converteert de gegevens naar een tabel met één kolom voor Month en een andere voor Sales. Een andere manier om het uit te drukken is door te zeggen dat veldnamen worden geconverteerd naar veldwaarden.

  1. Maak een nieuwe app en noem deze Zelfstudie voor geavanceerd scriptgebruik.
  2. Voeg een nieuwe scriptsectie toe in de Editor voor het laden van gegevens.
  3. Geef de sectie Product een naam.
  4. Onder DataFiles in het rechtermenu klikt u op Gegevens selecteren.

  5. Upload en selecteer Product.xlsx.
  6. Selecteer de Product-tabel in het venster Selecteer gegevens uit.
  7. TipSelecteer alle velden en zorg ervoor dat Ingesloten veldnamen onder Veldnamen is geselecteerd om de namen van de tabelvelden mee te nemen bij het laden van de gegevens.
  8. Klik op Script invoegen.
  9. Uw script zou er als volgt moeten uitzien:

    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. Klik op Gegevens laden.
  11. Open de gegevensmodelviewer. Het gegevensmodel ziet er als volgt uit:
  12. Product-tabel met Product-veld en een veld voor elk van de maanden

    Tabel Product met veld Product en een veld voor elk van de maanden.
  13. Klik op het tabblad Product in de editor voor laden van gegevens.
  14. Voer boven de LOAD-opdracht het volgende in:
  15. CrossTable(Month, Sales)

  16. Klik op Gegevens laden.
  17. Open de gegevensmodelviewer. Het gegevensmodel ziet er als volgt uit:
  18. Product-tabel met velden Product, Month en Sales

    Tabel Product met velden Product, Maand en Verkoop.

    Let op: invoergegevens hebben normaal gesproken slechts één kolom als kwalificerend veld, als een interne sleutel (Product in het bovenstaande voorbeeld). Maar u kunt er meerdere hebben. Als dat het geval is, moeten alle kwalificerende velden worden opgesomd vóór de kenmerkvelden in de LOAD-opdracht en moet de derde parameter voor het prefix Crosstable worden gebruikt voor het definiëren van het aantal kwalificerende velden. U kunt geen voorafgaande LOAD of een prefix vóór het trefwoord Crosstable te hebben. U kunt echter gebruik maken van automatisch aaneenschakelen.

    In een tabel in Qlik Sense zien uw gegevens er als volgt uit:

    Tabel toont gegevens geladen met het prefix Crosstable

    Tabel toont gegevens geladen met het prefix Crosstable.

    U kunt nu bijvoorbeeld een staafdiagram maken met behulp van de gegevens:

    Staafdiagram toont gegevens geladen met de prefix Crosstable

    Staafdiagram toont gegevens geladen met de prefix Crosstable.
InformatieZie voor meer informatie over Crosstable deze blogpost in Qlik Community: De crosstable-load. De gedragingen worden besproken in de context van QlikView 12. De logica geldt echter net zo voor Qlik Sense.

De numerieke interpretatie werkt niet voor de kenmerkvelden. Dit betekent dat als u maanden hebt als kolomkoppen, deze niet automatisch worden geïnterpreteerd. Dit kan worden opgelost door gebruik te maken van het prefix Crosstable om een tijdelijke tabel te maken en hierop een tweede bewerking uit te voeren om de interpretaties te maken zoals te zien in het volgende voorbeeld:

Let op: dit is slechts een voorbeeld. Er zijn geen bijbehorende oefeningen in 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;

De geheugencache leegmaken

U kunt tabellen die u maakt verwijderen om de geheugencache leeg te maken. Als u laadt in een tijdelijke tabel zoals in de voorgaande sectie, kunt u deze het beste verwijderen als u deze niet langer nodig hebt. Bijvoorbeeld:

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

U kunt ook velden neerzetten. Bijvoorbeeld:

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

Zoals u kunt zien, zijn de trefwoorden TABLE en FIELD, en kunnen deze in het enkelvoud of meervoud staan.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!