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.
Sätt att använda variabler i ett uttryck
En variabel kan användas på två olika sätt, i en direkt referens eller i en dollarteckenexpansion. Om du använder en direkt referens används variabelvärdet i beräkningen. Om du använder en dollarteckenexpansion ersätts hela dollarteckenexpansionen av variabelvärdet innan uttrycket parsas. Därför kan de två metoderna returnera olika resultat.
Exempel: använda en variabel med dollarteckenexpansion
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.
Exempel: variabel med dollarteckenexpansion i en pivottabell
Anta att du har en Pivottabell eller ett Pivot-objekt som innehåller följande:
-
Dimensionerna är Product Type och Product Name.
-
Måtten är Sum(Sales) och Count (distinct InvoiceNumber).
-
Elementen under Kolumner är Värden (standard) och fältet Quarter.
Du kan använda variabler för att främja interaktiv analys. Anta att du också skapar en variabel vUserInteraction med en tom definition. Sedan skapar du två Knapp-diagram på arket, konfigurerade med åtgärden Ange variabelvärde:
-
Visa mer detaljer: Klicka på den här knappen för att sätta vUserInteraction på ='Yes'.
-
Visa färre detaljer: Klicka på den här knappen för att ställa in vUserInteraction på ='No'.
I din pivottabell kan du lägga till fler mått i diagrammet, till exempel Count(Quantity) och Sum(Cost). Konfigurera sedan varje måttkolumn så att de har följande värde för Visa kolumn om:
'$(Reference)'='Yes'
Detta gör att diagrammet kan anpassas till om användaren vill ha ytterligare information eller inte. Om användaren klickar på knappen Visa fler detaljer läggs fler mått till i tabellen. Om inte, eller om de klickar på Visa färre detaljer, tas de extra måtten bort.
Fler exempel: använda variabler i dollarteckenexpansioner
Dollarteckenexpansioner är ett mångsidigt och kraftfullt verktyg i Qlik Sense, med många möjliga användningsområden. För fler exempel, se Dollarteckenexpansioner.
Exempel: direkt referens till en variabel i ett uttryck
Att använda en variabel som en direkt referens är mindre vanligt, men fortfarande användbart. Exempel:
Anta att du har ett fält TransactionSummary i din datamodell som innehåller fritextsammanfattningar av transaktioner. Detta fält kan innehålla kompletterande information om transaktioner. Exempelvis kan en transaktion ha en sammanfattning för att dokumentera att kunden köpte en vara med butikskredit, eller för att dokumentera eventuella problem som uppstod under försäljningen.
I din app kanske du vill använda TransactionSummary, men du vill sätta in data i ett sammanhang utan att påverka datamodellen eller laddningsskriptet, och utan att lagra dem någon annanstans i diagrammet.
Du kan göra följande:
-
Skapa en variabel med namnet vIntroStatement i dialogrutan variabler med följande definition:
='The following summary was provided by the vendor: '
-
Lägg till följande mått till ett Text och bild-diagram:
vIntroStatement & TransactionSummary
Genom att lagra den inledande satsen som en variabel kan du centralt styra användningen av ett värde. Exempelvis kan variabeln vIntroStatement användas i flera diagram och inom ett antal olika mått (det kan t.ex. finnas ett separat diagram som ibland innehåller text som beskriver hur många enheter som såldes under transaktionen). Genom att använda en variabel kan du förenkla processen med att uppdatera uttryck i appen. För att göra en förändring i formuleringen uppdaterar du bara variabeln så återspeglas ändringarna i hela appen.
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.
Överväg som bästa praxis att använda en standardiserad namnkonvention för de variabler som du skapar i en app. Exempelvis kan du se till att alla dina variabelnamn börjar med v. Exempel: vUserText. Detta hjälper till att säkerställa att variabler snabbt identifieras som variabler och särskiljs från mått, fält och funktioner.
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.