,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.
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:
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.
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:
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 |
... | ... | ... | ... |