Formatera beräkningar i Tableau

I den här artikeln beskrivs hur du skapar och formaterar beräkningar i Tableau. Här anges de grundläggande komponenterna i beräkningar och syntaxen för var och en förklaras.

Byggstenar för beräkningar

Det finns fyra grundläggande komponenter för beräkningar i Tableau:

  • Funktioner: Satser som används för att omvandla värden eller medlemmar i ett fält.
    • Funktioner kräver argument eller specifik information. Argument kan vara fält, litteraler, parametrar eller kapslade funktioner, beroende på funktionen.
  • Fält: Dimensioner eller mätvärden från datakällan.
  • Operatorer: Symboler som betecknar en åtgärd.
  • Litterala uttryck: Konstanta värden som är hårdkodade, till exempel ”Högt” eller ”1 500”.

Tänk på att alla beräkningar inte behöver innehålla alla fyra komponenter. Vidare kan beräkningar innehålla:

  • Parametrar: Platshållarvariabler som kan infogas i beräkningar och ersätta konstanta värden. Mer information om parametrar finns i Skapa parametrar.
  • Kommentarer: Anmärkningar om en beräkning eller delar av en beräkning. Ingår inte i själva beräkningen.

Mer information om hur du använder och formaterar var och en av dessa komponenter i en beräkning finns i nedanstående avsnitt.

Beräkningsexempel

Titta till exempel på följande beräkning, där 14 dagar läggs till för ett datum ([Initial Visit]). En sådan här beräkning kan vara användbar för att automatiskt hitta datumet för en uppföljning om två veckor.

DATEADD('day', 14, [Initial Visit)

Komponenterna i den här beräkningen kan delas upp enligt följande:

  • Funktion: DATEADD, vilken kräver tre argument.
    • del av datum ('day')
    • intervall (14)
    • datum ([Initial Visit])
  • Fält: [Initial Visit]
  • Operatorer: ej tillämpligt
  • Litterala uttryck:
    • Stränglitteral: 'day'
    • Nummerlitteral: 14

I det här exemplet skulle den hårdkodade konstanten 14 kunna ersättas med en parameter, vilket skulle tillåta användaren att välja hur många dagar bort som han eller hon vill ha ett uppföljningsmöte.

DATEADD('day', [How many days out?], [Initial Visit)

En snabb överblick: beräkningssyntax

KomponenterSyntaxExempel

Funktioner

Exempel på hur du formaterar alla funktioner i Tableau finns i Tableau-funktioner (i bokstavsordning)(Länken öppnas i ett nytt fönster) eller Tableau-funktioner (efter kategori).

SUM(expression)

Fält

Ett fält i en beräkning omges ofta av hakparenteser [ ].

Mer information finns i Fältsyntax.

[Category]

Operatorer

+, -, *, /, %, ==, =, >, <, >=, <=, !=, <>, ^, AND, OR, NOT, ( ).

Avsnittet Operatorsyntax innehåller mer information om vilka typer av operatorer du kan använda i Tableau-beräkningar samt om den ordning i vilken de utförs i en formel.

[Price]*(1-[discount])

Litterala uttryck

Numeriska literaler skrivs som siffror.

Strängliteraler skrivs med citattecken.

Datumliteraler skrivs med symbolen #.

Booleska literaler skrivs antingen som Sant eller Falskt.

Null-literaler skrivs som null.

Mer information finns i Syntax för litterala uttryck.

1.3567

"Unprofitable"

#August 22, 2005#

true

Null

Parametrar

En parameter i en beräkning omges av hakparenteser [ ], som ett fält. Mer information finns i Skapa parametrar.

[Bin Size]

Kommentarer

Du lämnar en kommentar i en beräkning genom att skriva två snedstreck //. Mer information finns i Lägga till kommentarer till en beräkning.

Du kan lägga till kommentarer som tar upp flera rader genom att skriva /* före kommentaren och */ efter kommentaren.

SUM([Sales]) / SUM([Profit])

/*John's calculation

To be used for profit ratio

Do not edit*/

Beräkningssyntax i detalj

Se följande avsnitt för att läsa mer om de olika komponenterna i Tableau-beräkningar och om hur du formaterar dem så att de fungerar i Tableau.

Funktionssyntax

Funktioner är huvudkomponenterna i en beräkning och kan användas för en rad olika syften.

Varje funktion i Tableau måste följa en viss syntax. Följande beräkning använder till exempel två funktioner, LEN och LEFT, samt flera logiska operatorer (IF, THEN, ELSE, END och > ).

IF LEN([Name])> 5 THEN LEFT([Name],5) ELSE [Name] END

  • LEN tar ett enda argument, t.ex. LEN([Name]), som returnerar antalet tecken (det vill säga längden) för varje värde i fältet Namn.
  • LEFT tar två argument, ett fält och ett nummer, t.ex. LEFT([Name], 5), som returnerar de fem första tecknen från varje värde i fältet Namn med början från vänster.
  • De logiska operatorerna IF, THEN, ELSE och END arbetar tillsammans för att skapa ett logiskt test.

Den här beräkningen utvärderar ett namns längd och om det består av fler än fem tecken returneras endast de fem första tecknen. Annars returneras hela namnet.

I beräkningsredigeraren är funktioner blå.

Använda beräkningsredigerarens referensruta

Du kan när som helst kontrollera hur du använder och formaterar en viss funktion. Öppna listan över funktioner i Tableau:

  1. Välj Analys > Skapa beräknat fält.
  2. Klicka på utökningsikonen (triangeln) på höger sida av beräkningsredigeraren.

    En lista över funktioner visas. När du väljer en funktion i listan uppdateras delen längst till höger med information om funktionens syntax (1) och beskrivning (2) samt med ett eller flera exempel (3).

Använda flera funktioner i en beräkning

Du kan använda mer än en funktion i en beräkning. Exempel:

ZN(SUM([Order Quantity])) - WINDOW_AVG(SUM([Order Quantity]))

Det finns tre funktioner i beräkningen: ZN, SUM och WINDOW_AVG. Funktionen ZN och funktionen WINDOW_AVG separeras med minusoperatorn (-).

En funktion kan även vara del av en annan funktion (dvs. kapslad), som delen ZN(SUM([Order Quantity])) i ovanstående exempel. I det här fallet beräknas SUM för Orderkvantitet före funktionen ZN eftersom den står inom parentes. Mer information om varför det fungerar på det viset finns i Parenteser.

Fältsyntax

Fält kan infogas i dina beräkningar. Ofta anger en funktions syntax var i beräkningen ett fält ska infogas. Exempel: SUM(expression).

Fältnamn ska omges av hakparenteser [ ] i en beräkning om fältnamnet innehåller ett blanksteg eller om det inte är unikt. Till exempel [Försäljning Kategorier]

Den typ av funktion du använder styr vilken typ av fält du använder. Med funktionen SUM till exempel kan du infoga ett numeriskt fält, men du kan inte infoga ett datumfält. Mer information finns i Förstå datatyper i beräkningar.

Vilka fält du väljer att inkludera i beräkningen beror också på syftet med beräkningen. Om du till exempel vill beräkna vinstkvot använder du fälten Försäljning och Vinst från datakällan:

SUM([Sales])/SUM([Profit])

Gör något av följande för att lägga till ett fält i en beräkning:

  • Dra det från rutan Data eller från vyn och släpp det i beräkningsredigeraren.
  • I beräkningsredigeraren anger du fältnamnet. Obs! Beräkningsredigeraren försöker att fylla i fältnamnen automatiskt.

Fält är orangefärgade i Tableau-beräkningar.

Operatorsyntax

För att skapa beräkningar måste du förstå de operatorer som stöds av Tableau. I det här avsnittet beskrivs de grundläggande operatorerna samt den ordning i vilken de utförs.

Operatorer är svartfärgade i Tableau-beräkningar.

+ (tillägg)

Operatorn + innebär addition vid tillämpning på siffror och sammanfogning vid tillämpning på strängar. Vid tillämpning på datum kan den användas för att lägga till ett antal dagar till ett datum.

Exempel:

  • 7 + 3
  • Profit + Sales
  • 'abc' + 'def' = 'abcdef'
  • #April 15, 2024# + 15 = #April 30, 2024#

- (subraktion)

Operatorn - innebär subtraktion vid tillämpning på siffror och negation vid tillämpning på ett uttryck. Vid tillämpning på datum kan den användas för att dra bort ett antal dagar från ett datum. Därmed kan den även användas för att räkna ut skillnaden i dagar mellan två datum.

Exempel:

  • 7 - 3
  • Profit - Sales
  • -(7+3) = -10
  • #April 16, 2024# - 15 = #April 1, 2024#
  • #April 15, 2024# - #April 8, 2024# = 7

* (multiplicering)

Operatorn * innebär numerisk multiplicering.

Exempel: 5 * 4 = 20

/ (division)

Operatorn / innebär numerisk division.

Exempel: 20 / 4 = 5

% (modulo)

Operatorn % returnerar resten vid division. Moduloräkning kan endast utföras på heltal.

Exempel: 9 % 2 = 1. (Eftersom 2 går i 9 fyra gånger med en rest på 1.)

==, =, >, <, >=, <=, !=, <> (jämförelser)

Dessa är grundläggande jämförelseoperatorer som kan användas i uttryck. Betydelser:

  • == eller = (lika med)
  • > (större än)
  • < (mindre än)
  • >= (större än eller lika med)
  • <= (mindre än eller lika med)
  • != eller <> (inte lika med)

Varje operator jämför två tal, datum eller strängar och returnerar antingen SANT, FALSKT eller NULL.

^ (upphöja)

Den här symbolen motsvarar funktionen POWER. Numret upphöjs till den angivna siffran.

Exempel: 6^3 = 216

AND

Det här är en logisk operator. Ett uttryck eller ett booleskt resultat måste synas på vardera sida.

Exempel: IIF(Profit =100 AND Sales =1000, "High", "Low")

Mer information finns under AND i Logiska funktioner.

OR

Det här är en logisk operator. Ett uttryck eller ett booleskt resultat måste synas på vardera sida.

Exempel: IIF(Profit =100 OR Sales =1000, "High", "Low")

Mer information finns under OR i Logiska funktioner.

NOT

Det här är en logisk operator. Kan användas för att upphäva ett annat booleskt värde eller ett uttryck. Exempel:

IIF(NOT(Sales = Profit),"Not Equal","Equal")

Andra operatorer

CASE, ELSE, ELSEIF, IF, THEN, WHEN och END är också operatorer som används för Logiska funktioner.

Operatorprioritet

Alla operatorer i en beräkning utvärderas i en specifik ordning. Till exempel är 2*1+2 lika med 4 och inte 6, då multiplikationen utförs före additionen (operatorn * utvärderas alltid före operatorn +).

Om två operatorer har samma prioritet (som addition och subtraktion (+ och -)) utvärderas de från vänster till höger i beräkningen.

Parenteser kan användas för att ändra prioritetsordningen. Mer information finns i avsnittet Parenteser.

PrioritetOperator
1- (dra bort)
2^ (upphöja)
3*, /, %
4+, -
5==, =, >, <, >=, <=, !=, <>
6NOT
7AND
8OR

Parenteser

Parenteser kan användas efter behov för att framtvinga en prioritetsordning. Operatorer som visas inom parentes utvärderas före operatorerna utanför parentesen. Utvärderingen börjar på den innersta parentesen och rör sig utåt.

Till exempel är (1 + (2 * 2 + 1) * (3 * 6 / 3)) = 31 eftersom operatorerna inom de innersta parenteserna beräknas först. Beräkningen utförs i följande ordning:

  1. (2 * 2 + 1) = 5
  2. (3 * 6 / 3) = 6
  3. (1 + 5 * 6) = 31

Syntax för litterala uttryck

I det här avsnittet beskrivs syntaxen för litterala uttryck i Tableau-beräkningar. Ett litteralt uttryck betecknar ett konstant värde som representeras ”som det är”. När du använder funktioner kommer du ibland att vilja använda litterala uttryck för att representera nummer, strängar, datum och så vidare.

Till exempel kan det hända att du har en funktion där indata är ett datum. I stället för att skriva ”1 maj 2005”, vilket skulle tolkas som en sträng, skriver du #1 maj 2005#. Detta är detsamma som att använda en datumfunktion för att omvandla argumentet från en sträng till ett datum (se Datumfunktioner).

Du kan använda numeriska literaler, strängliteraler, datumliteraler, booleska literaler och null-literaler i Tableau-beräkningar. Nedan beskrivs de olika typerna och hur du formaterar dem.

Litterala uttryck är svart- och gråfärgade i Tableau-beräkningar.

Numeriska literaler

Numeriska literaler skrivs som siffror. Till exempel anger du nummer ett som en numerisk literal genom att skriva 1. Om du vill ange numret 0,25 som en numerisk literal skriver du 0.25.

Strängliteraler

En stränglitteral kan skrivas med antingen ’enkla’ eller "dubbla" raka citattecken.

Om din sträng innehåller enkla eller dubbla citattecken ska du använda det andra alternativet för de yttersta stränglitteralerna.

Till exempel anger du strängen "cat" som en stränglitteral genom att skriva '"cat"'. För 'cat', ange "'cat'". Om du vill ange strängen She's my friend som en stränglitteral använder du dubbla citattecken för litteralerna, som i "She's my friend."

Datumliteraler

Datumliteraler kännetecknas av nummertecknet (#). Du anger datumet ”22 augusti 2005” som en datumlitteral genom att skriva det ISO-formaterade datumet #2005-08-22#.

Booleska literaler

Booleska literaler skrivs antingen som Sant eller Falskt. Du anger ”true” som en boolesk litteral genom att skriva true.

Null-literaler

Null-literaler skrivs som Null. Du anger ”Null” som en null-litteral genom att skriva Null.

Lägga till parametrar till en beräkning

Parametrar är platshållarvariabler som kan infogas i beräkningar och ersätta konstanta värden. När du använder en parameter i en beräkning kan du sedan exponera en parameterkontroll i en vy eller instrumentpanel för att låta användare ändra värdet på ett dynamiskt sätt.

Mer information finns i Använda en parameter.

Parametrar är lilafärgade i Tableau-beräkningar.

Lägga till kommentarer till en beräkning

Du kan lägga till kommentarer till en beräkning för att göra anmärkningar om beräkningen eller delar av den. Kommentarer inkluderas inte i själva beräkningen.

Du lägger till en kommentar till en beräkning genom att skriva två snedstreck (//).

Exempel:

SUM([Sales])/SUM([Profit]) //My calculation

I det här exemplet är //My calculation en kommentar.

En kommentar börjar med två snedstreck (//) och fortsätter till slutet av raden. För att gå vidare med beräkningen måste du starta en ny rad.

Du kan skriva en kommentar som tar upp flera rader genom att inleda kommentaren med ett snedstreck följt av en asterisk (/*) och avsluta kommentaren med en asterisk följd av ett snedstreck (*/). Exempel:

SUM([Sales])/SUM([Profit])
/* This calculation is
used for profit ratio.
Do not edit */

Kommentarer är gråfärgade i Tableau-beräkningar.

Förstå datatyper i beräkningar

Om du skapar beräknade fält måste du veta hur du använder och kombinerar olika datatyper(Länken öppnas i ett nytt fönster) i beräkningar. Många funktioner som är tillgängliga när du definierar en beräkning fungerar endast när de tillämpas på specifika datatyper.

Till exempel kan funktionen DATEPART() endast acceptera datatypen datum/datum och tid som ett argument. Du kan ange DATEPART('year',#2024-04-15#) och förvänta dig ett giltigt resultat: 2024. Du kan inte ange DATEPART('year',"Tom Sawyer") och förvänta dig ett giltigt resultat. Faktum är att det här exemplet returnerar ett fel, eftersom ”Tom Sawyer” är en sträng och inte datum/datum och tid.

Obs! Även om Tableau försöker att validera alla beräkningar går det inte att hitta alla datatypfel förrän frågan körs mot databasen. Dessa problem visas som feldialoger vid tidpunkten för frågan i stället för i beräkningsdialogen.

De datatyper som stöds av Tableau beskrivs nedan. Se Typkonvertering för att läsa mer om omvandling från en datatyp till en annan.

Sträng

En sekvens av noll eller fler tecken. Till exempel är ”Wisconsin”, ”ID-44400” och ”Tom Sawyer” strängar. Strängar kännetecknas av enkla eller dubbla citattecken. Citattecken kan inkluderas i en sträng genom att upprepa dem. Till exempel 'O''Hanrahan'.

Datum/datum och tid

Ett datum eller datum och tid. Exempel: ”January 23, 1972” eller ”January 23, 1972 12:32:00 AM”. Om du vill att ett datum som har angetts i långt format ska tolkas som datum/datum och tid placerar du symbolen # på båda sidor om det. Till exempel behandlas ”January 23, 1972” som en sträng, men #January 23, 1972# behandlas som datum/datum och tid.

Nummer

Numeriska värden i Tableau kan vara antingen heltal eller flyttalsnummer.

Med flyttalsnummer kan det hända att resultaten från vissa aggregeringar inte alltid är de förväntade. Till exempel kanske du märker att funktionen SUM returnerar ett värde som -1.42e-14 för ett fält med tal där du vet att summan bör vara exakt 0. Detta sker därför att flyttalsstandarden IEEE 754 (Institute of Electrical and Electronics Engineers) kräver att talen lagras i binärt format, vilket innebär att talen ibland avrundas ned till en extrem precisionsnivå. Du kan eliminera denna potentiella distraktion genom att formatera talet så att färre decimaler visas. Mer information finns under ROUND i Nummerfunktioner som är tillgängliga i Tableau.

Åtgärder som testar flyttalsvärden för jämlikhet kan bete sig oförutsägbart av samma anledning. Sådana jämförelser kan ske när du använder LOD-uttryck som dimensioner, i kategorifiltrering, när du skapar ad hoc-grupper, när du skapar IN/UT-uppsättningar eller vid användning med kombinerade data.

Obs! Det största 64-bitarsheltalet är 9 223 372 036 854 775 807. När du ansluter till en ny datakälla kan alla kolumner vars datatyp är inställd på Nummer (heltal) rymma värden upp till den här gränsen. Vid större värden visar Tableau ”Null”, eftersom Nummer (heltal) inte använder flyttal. När datatypen är inställd på Nummer (decimaltal) ryms större värden.

Booleskt

Ett fält som innehåller värdet TRUE eller FALSE. Ett okänt värde visas när resultatet av en jämförelse är okänt. Till exempel leder uttrycket 7 > Null till okänt. Okända booleska värden omvandlas automatiskt till Null.

Se även

Om beräkningar i Tableau

Skapa ett enkelt beräknat fält

Komma igång med beräkningar i Tableau

Tack för din feedback!Din feedback har skickats in. Tack!