,Werken met kruistabellen in het load-script voor gegevens

Een kruistabel is een veel voorkomend type tabel die bestaat uit een matrix van waarden tussen twee rechthoekige lijsten met koptekstgegevens. De kruistabel bevat vaak niet de optimale opmaak voor het koppelen van gegevens met andere gegevenstabellen.

In dit onderwerp wordt beschreven hoe u de draaiing van een kruistabel ongedaan kunt maken, door delen ervan naar rijen te transponeren met behulp van het crosstable-prefix naar een LOAD-opdracht in het load-script voor gegevens.

Draaien van een kruistabel met één kwalificerende kolom ongedaan maken

Een kruistabel wordt meestal voorafgegaan door een aantal kwalificerende kolommen die op een simpele manier moeten worden gelezen. In dit geval is er één kwalificerende kolom, Year, en een matrix van verkoopgegevens per maand.

Kruistabel met één kwalificerende kolom
Year Jan Feb Mar Apr May Jun
2008 45 65 78 12 78 22
2009 11 23 22 22 45 85
2010 65 56 22 79 12 56
2011 45 24 32 78 55 15
2012 45 56 35 78 68 82

Als u deze tabel gewoon in Qlik Sense laadt, resulteert dat in een veld voor Year en een veld voor elk van de maanden. Dat is meestal niet wat u wilt. U zou waarschijnlijk liever drie velden laten genereren:

  • De kwalificerende kolom, in dit geval Year, groen gemarkeerd in de bovenstaande tabel.
  • Het kenmerkveld, in dit geval vertegenwoordigd door de namen van de maanden Jan - Jun, die geel zijn gemarkeerd. Voor dit veld is de naam Month geschikt.
  • De gegevensmatrixwaarden, die blauw zijn gemarkeerd. In dit geval vertegenwoordigen zij verkoopgegevens, dus is de naam Sales geschikt.

Dit kan worden bereikt door het prefix crosstable toe te voegen aan de LOAD- of SELECT-opdracht, bijvoorbeeld:

crosstable (Month, Sales) LOAD * from ex1.xlsx;

Hiermee wordt de volgende tabel gemaakt in Qlik Sense:

Tabel met het prefix crosstable toegevoegd aan de LOAD- of SELECT-opdracht
Year Month Sales
2008 Jan 45
2008 Feb 65
2008 Mar 78
2008 Apr 12
2008 May 78
2008 Jun 22
2009 Jan 11
2009 Feb 23
... ... ...

Draaien van een kruistabel met twee kwalificerende kolommen ongedaan maken

In dit geval zijn er twee kwalificerende kolommen links, gevolgd door de matrixkolommen.

Kruistabel met twee kwalificerende kolommen
Salesman Year Jan Feb Mar Apr May Jun
A 2008 45 65 78 12 78 22
A 2009 11 23 22 22 45 85
A 2010 65 56 22 79 12 56
A 2011 45 24 32 78 55 15
A 2012 45 56 35 78 68 82
B 2008 57 77 90 24 90 34
B 2009 23 35 34 34 57 97
B 2010 77 68 34 91 24 68
B 2011 57 36 44 90 67 27
B 2012 57 68 47 90 80 94

Het aantal kwalificerende kolommen kan als volgt worden opgegeven als een derde parameter voor het prefix crosstable:

crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;

Dit leidt tot het volgende resultaat in Qlik Sense:

Tabel met kwalificerende kolommen, opgegeven als een derde parameter voor het prefix crosstable
Salesman Year Month Sales
A 2008 Jan 45
A 2008 Feb 65
A 2008 Mar 78
A 2008 Apr 12
A 2008 May 78
A 2008 Jun 22
A 2009 Jan 11
A 2009 Feb 23
... ... ... ...

See also: