Exempel på användning av en variabel i ett uttryck
I Qlik Sense är variabler namngivna enheter som innehåller ett datavärde. När en variabel används i ett uttryck ersätts den av sitt värde eller av variabelns definition.
Exempel:
Variabeln x innehåller textsträngen Sum(Sales).
I ett diagram definierar du uttrycket $(x)/12. Resultatet blir exakt detsamma som med diagramuttrycket Sum(Sales)/12.
Men om du ändrar värdet på variabeln x till exempelvis Sum(Budget) beräknas data i diagrammet omedelbart om med uttrycket tolkat som Sum(Budget)/12.
Hur namn tolkas
Det rekommenderas inte att du ger en variabel samma namn som ett fält eller en funktion i Qlik Sense. Om du gör detta måste du dock veta hur dessa kan användas i ett uttryck.
Exempel:
Strängen XXX representerar ett fält, en variabel, en funktion eller ett mått. XXX kommer att tolkas som någon av dessa, beroende på hur du skapar uttrycket.
Uttryck | XXX tolkas som |
---|---|
XXX | mått, variabel eller fält |
$(XXX) | variabel |
Antal(XXX) | fält eller variabel |
XXX() | funktion |
När du namnger ett element, undvik att tilldela samma namn till mer än ett fält, variabel eller mått. Det finns en strikt prioritetsordning för att lösa konflikter mellan enheter med identiska namn. Denna ordning återspeglas i alla objekt eller sammanhang där dessa enheter används. Denna prioritetsordning är följande:
-
Inuti en aggregering prioriteras ett fält framför en variabel. Måttnamn är inte relevanta i aggregeringar och är inte prioriterade.
-
Utanför en aggregering prioriteras en måttetikett före en variabel, som i sin tur prioriteras före ett fält.
-
Utanför en aggregering kan ett mått dessutom återanvändas genom att referera till dess etikett, såvida inte etiketten faktiskt är en beräknad sådan. I det läget sjunker uttrycket i betydelse för att minska risken för självhänvisning, och i det här fallet kommer namnet alltid att först tolkas som ett måttnamn, därefter som ett fältnamn och för det tredje som ett variabelnamn.
Beräkning med variabler
Det finns flera sätt att använda variabler med beräknade värden i Qlik Sense. Resultatet beror på hur du definierar den och hur du anropar den i ett uttryck.
Det här exemplet kräver att följande data laddas in i Skriptredigeraren:
Nu ska vi definiera två variabler från variabeldialogen:
- Namn vSales Definition'Sum(Sales)'
- Namn vSales2 Definition'=Sum(Sales)'
I den andra variabeln lägger vi till ett likhetstecken framför uttrycket. Nu beräknas variabeln innan den expanderas och innan uttrycket utvärderas.
Om du använder variabeln vSales som den är, exempelvis i ett mått, blir resultatet strängen Sum(Sales). Med andra ord görs ingen beräkning.
Om du lägger till en dollarteckenexpansion och anropar $(vSales) i uttrycket, expanderas variabeln, och summan av Sales visas.
Om du i stället anropar $(vSales2) beräknas variabeln innan den expanderas. Detta innebär att resultatet som visas är totalsumman för Sales. Skillnaden mellan att använda =$(vSales) och =$(vSales2) som måttuttryck visas i diagrammet nedan. Resultat:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Som du ser resulterar $(vSales) i delsumman för ett dimensionsvärde, medan $(vSales2) resulterar i totalsumman.