Arbeta med variabler i Dataimport

En variabel i Qlik Sense är en behållare som lagrar ett statiskt värde eller en beräkning, till exempel ett numeriskt eller ett alfanumeriskt värde. När du använder variabeln i appen kan alla förändringar som görs för variabeln tillämpas överallt där variabeln används. Du kan definiera variabler med hjälp av variabelöversikten eller i skript med hjälp av Skriptredigeraren. Du ställer in värdet för en variabel med Let eller Set uttalanden i dataladdningsskriptet.

Tips: Du kan även arbeta med Qlik Sense-variablerna från variabelöversikten när du redigerar ett ark. Använda variabler i uttryck

Översikt

Om det första tecknet i ett variabelvärde är ett likhetstecken ”=” kommer Qlik Sense att försöka utvärdera värdet som en formel (Qlik Sense-uttryck) och därefter visa eller returnera resultatet snarare än visa den faktiska formeln.

När variabeln används ersätts den av sitt värde. Variabler kan användas för dollarteckenexpansion eller i olika kontrollsatser i skriptet. Det är väldigt praktiskt om samma sträng förekommer flera gånger i skriptet, t.ex. en sökväg.

Vissa speciella systemvariabler ställs dock in av Qlik Sense i början av skriptexekveringen oavsett vilket värde de tidigare hade i layouten.

Definiera en variabel

När en variabel definieras används följande syntax:

set variablename = string

eller

let variable = expression

används. Kommandot Set tilldelar texten till höger om lika med-tecknet till variabeln, medan kommandot Let utvärderar uttrycket.

Variabler är skiftlägeskänsliga.

Observera: Det rekommenderas inte att du ger en variabel samma namn som ett fält eller en funktion i Qlik Sense.

Examples:  

set HidePrefix = $ ; // variabeln får tecknet "$" som värde.

let vToday = Num(Today()); // returnerar serienumret för dagens datum.

Ta bort en variabel

Om du tar bort en variabel från skriptet och laddar data igen stannar variabeln kvar i appen. Om du vill ta bort variabeln helt från appen måste du även ta bort variabeln från variabelöversikten.

Mer information finns i Ta bort en variabel.

Ladda ett variabelvärde som ett fältvärde

Om du vill ladda ett variabelvärde som ett fältvärde i en LOAD -sats och resultatet av dollarexpansionen är text i stället för tal eller ett uttryck måste du bifoga den utvidgade variabeln inom enkla citattecken.

Example:  

Detta exempel laddar systemvariablen som innehåller listan över skriptfel till en tabell. Lägg märke till att expansionen av ScriptErrorCount i If-satsen inte kräver citattecken, men att expansionen av ScriptErrorList kräver citattecken.

IF $(ScriptErrorCount) >= 1 THEN
LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1; END IF

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.

I detta exempel läser vi in data inline:

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

Nu ska vi definiera två variabler:

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=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:

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.