Gå till huvudinnehåll Gå till ytterligare innehåll

Använda prefixet Crosstable

Korstabeller är en vanlig tabelltyp, som består av en datamatris med värden mellan två ortogonala listor av rubrikdata. När du har en korstabell med data kan du använda prefixet Crosstable för att omvandla data och skapa önskade fält.

Prefixet Crosstable

I följande Product-tabell har du en kolumn per månad och en rad per produkt.

Produkttabell
ProduktJan 2014Feb 2014Mars 2014Apr 2014Maj 2014Jun 2014
A100981008310382
B284279297305294292
C505350544951

När du laddar tabellen får du en tabell med ett fält för Product och ett fält för varje månad.

Product-tabellen med fältet Product och ett fält för varje månad

Product-tabell med fältet Product och ett fält för varje månad.

Om du vill analysera dessa data är det mycket enklare att ha alla tal i ett fält och alla månader i ett annat. I detta fall handlar det om en tabell med tre kolumner och en kolumn för varje kategori (Product, Month, Sales).

Product tabell med fälten Product, Month och Sales

Product-tabell med fälten Product, Month och Sales.

Crosstable-prefixet omvandlar data till en tabell med en kolumn för Month och en annan för Sales. Ett annat sätt att uttrycka det på är att säga att det tar fältnamn och omvandlar dem till fältvärden.

  1. Skapa en ny app och kalla den för Introduktionskurs om avancerade skript.
  2. Lägg till ett nytt skriptavsnitt i Skriptredigeraren.
  3. Ge delavsnittet namnet Product.
  4. Klicka på Välj data under DataFiles i menyn till höger.

  5. Ladda upp och välj sedan Product.xlsx.
  6. Välj tabellen Product i fönstret Välj data från.
  7. Anteckning om tipsSe till att Inbäddade fältnamn under Fältnamn har valts för att inkludera namnen på tabellfälten när du laddar data.
  8. Klicka på Infoga skript.
  9. Ditt skript bör se ut så här:

    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. Klicka på Ladda data.
  11. Öppna datamodellvyn. Datamodellen ser ut så här:
  12. Product-tabellen med fältet Product och ett fält för varje månad

    Product-tabell med fältet Product och ett fält för varje månad.
  13. Klicka på fliken Product i Skriptredigeraren.
  14. Ange följande över LOAD-satsen:
  15. CrossTable(Month, Sales)

  16. Klicka på Ladda data.
  17. Öppna datamodellvyn. Datamodellen ser ut så här:
  18. Product tabell med fälten Product, Month och Sales

    Product-tabell med fälten Product, Month och Sales.

    Observera att indata normalt bara har en kolumn som kvalificerande fält; som en intern nyckel (Product i exemplet ovan). Det går dock att ha flera. I sådana fall måste alla kvalificerande fält räknas upp före attributfälten i LOAD-satsen, och Crosstable-prefixets tredje parameter måste användas för att definiera antalet kvalificerande fält. Det går inte att ha en föregående LOAD eller ett prefix framför Crosstable-nyckelordet. Det går dock att använda automatisk konkatenering.

    I en tabell i Qlik Sense ser dina data ut så här:

    Tabellen visar data som har laddats med prefixet Crosstable

    Tabellen visar data som har laddats med prefixet Crosstable.

    Nu kan du till exempel skapa ett stapeldiagram med hjälp av dessa data:

    Stapeldiagrammet visar data som laddats med Crosstable-prefixet

    Stapeldiagrammet visar data som laddats med prefixet Crosstable.
Anteckning om informationMer information om Crosstable finns i det här blogginlägget i Qlik Community: Korstabelladdning. Beteenden diskuteras i ett sammanhang som avser QlikView. Logiken gäller dock i samma utsträckning för Qlik Sense.

Numerisk tolkning fungerar inte för attributfälten. Detta innebär att om du har månader som kolumnrubriker kommer dessa inte att tolkas automatiskt. Du kan avhjälpa problemet genom att använda Crosstable-prefixet för att skapa en tillfällig tabell och köra ett andra pass på den så att tolkningarna blir som i följande exempel.

Observera att detta bara är ett exempel. Det finns inga övningar för dessa data att göra i 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;

Rensa minnescachen

Du kan ta bort tabeller som du skapar för att rensa cacheminnet. Om du läser in till en tillfällig tabell som i föregående avsnitt bör du ta bort den när den inte behövs längre. Exempel:

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

Du kan även släppa fält. Exempel:

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

Som du kan se kan nyckelorden TABLE och FIELD vara singular eller plural.

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!