Arbeta med korstabeller i dataladdningsskriptet

En korstabell är en vanlig tabelltyp, som består av en datamatris mellan två ortogonala listor av rubrikdata. Det brukar inte vara det optimala dataformatet om du vill associera data till andra datatabeller.

I detta avsnitt beskrivs hur du kan ta bort pivoteringen av en korstabell med hjälp av crosstable-prefixet på en LOAD-sats i dataladdningsskriptet.

Ta bort pivoteringen av en korstabell med en kvalificerande kolumn

En korstabell föregås ofta av ett antal kvalificerande kolumner som ska läsas på ett enkelt sätt. I det här fallet finns det en kvalificerande kolumn, Year, och en matris med försäljningsdata per månad.

Korstabell med en kvalificerande kolumn
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

Om denna tabell läses in i Qlik Sense på vanligt sätt, blir resultatet ett fält för Year och ett fält för varje månad. Detta är oftast inte det resultat man vill ha. Du vill förmodligen att tre fält ska skapas:

  • Den kvalificerande kolumnen, i det här fallet Year, markeras med grönt i tabellen ovan.
  • Attributfältet, i det här fallet representerat av månadsnamnen Jan - Jun gulmarkeras. Det här fältet ges lämpligen namnet Month.
  • Datamatrisvärdena, markerade med blått. I det här fallet symboliserar de försäljningsdata så det är lämpligt att välja namnet Sales.

För att åstadkomma detta kan du låta prefixet crosstable föregå LOAD- eller SELECT-satsen. Exempel:

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

Detta skapar följande tabell i Qlik Sense:

Tabell med prefixet crosstable har lagts till LOAD- eller SELECT-satsen
Year Month Sales
2008 Jan 45
2008 Feb 65
2008 Mar 78
2008 Apr 12
2008 Maj 78
2008 Jun 22
2009 Jan 11
2009 Feb 23
... ... ...

Ta bort pivoteringen av en korstabell med två kvalificerande kolumner

Här föregås matriskolumnerna av två kvalificerande kolumner.

Korstabell med två kvalificerande kolumner
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

Antalet kvalificerande kolumner kan sättas som tredje parameter till crosstable-prefixet på följande sätt:

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

Detta leder till följande resultat i Qlik Sense:

Tabell med kvalificerande kolumner angiven som tredje parameter till crosstable-prefixet
Salesman Year Month Sales
A 2008 Jan 45
A 2008 Feb 65
A 2008 Mar 78
A 2008 Apr 12
A 2008 Maj 78
A 2008 Jun 22
A 2009 Jan 11
A 2009 Feb 23
... ... ... ...

See also: