Välja rätt beräkningstyp
Vilken typ av beräkning du väljer beror på analysbehovet, vilken fråga du vill besvara samt layouten av visualiseringen.
Vilken beräkning är rätt för din analys?
Det är inte alltid lätt att välja beräkningstyp för en analys. Innan du bestämmer dig bör du tänka över följande frågor och exempel.
Obs! Det här innehållet publicerades ursprungligen på Tableaus blogg. Du kan läsa det i inlägget A Handy Guide to Choosing the Right Calculation for Your Question(Länken öppnas i ett nytt fönster).
Grundläggande uttryck eller tabellberäkning?
Har du redan alla datavärden du behöver för visualiseringen?
- Om svaret är Ja: Du kan använda en tabellberäkning.
- Om svaret är Nej: Använd en grundläggande beräkning.
Exempel:
Titta på de två följande visualiseringarna. Visualiseringen till vänster är ett stapeldiagram som visar den totala försäljningen per land/region. Visualiseringen till höger visar också försäljning per land/region, men försäljningen har delats upp.
Hur beräknar man den 90:e percentilen för försäljning i var och en av dessa visualiseringar?
Stapeldiagrammet till vänster aggregeras av SUM. Därför finns det inte tillräckligt med detaljer i den här vyn för att använda en tabellberäkning. Du kan använda ett uttryck för grundläggande aggregering för att beräkna den 90:e percentilen för försäljning i varje land med hjälp av följande formel:
PERCENTILE([Sales], .90)
Detta ger ett värde för den 90:e percentilen per land som en etikett för varje stapel.
Diagrammet till höger innehåller emellertid ett datavärde för varje säljorder. En större distribution och utstickare visas. Det finns tillräckligt med detaljer i vyn för att använda en tabellberäkning.
Du kan beräkna den 90:e percentilen för försäljning i varje land med hjälp av ett distributionsband (motsvarar en tabellberäkning). Det finns mer sammanhang i den här visualiseringen.
Båda beräkningarna uppnår samma värde, men insikterna du får skiljer sig åt baserat på detaljnivån (mängden data) i visualiseringen.
Grundläggande uttryck eller LOD-uttryck (detaljnivå)?
Om du inte har alla data du behöver för visualiseringen måste beräkningen genomföras till datakällan. Detta innebär att du måste använda en grundläggande beräkning eller ett LOD-uttryck (detaljnivå).
Om du svarade Nej på fråga 1 ska du fråga dig själv följande:
Fråga 2:
Stämmer detaljnivån på din fråga överens med detaljnivån på visualiseringen eller detaljnivån på datakällan?
- Om svaret är Ja: Använd ett grundläggande uttryck.
- Om svaret är Nej: Använd ett LOD-uttryck (detaljnivå).
Exempel
Titta på följande visualisering. I visualiseringen visas den 90:e percentilen för försäljning för alla ordrar i varje land.
I det här exemplet används datakällan Sample – Superstore, som medföljer Tableau. Om du är bekant med datakällan Sample – Superstore kanske du vet att det finns en rad data per Order-ID. Därför är detaljnivån på datakällan Order-ID. Detaljnivån på visualisering är dock Land.
Om du vill veta vad den 90:e percentilen för försäljning är för ordrar i varje land på detaljnivån Order-ID kan du använda följande LOD-uttryck:
{INCLUDE [Order ID] : SUM([Sales])}
Du kan sedan ändra fältet så att det aggregeras till den 90:e percentilen i vyn.
Det gör du genom att klicka på listrutan för fältet och välja Mätvärde > Percentil > 90.
I följande diagram visas hur LOD-uttrycket fungerar i det här fallet:
- Data börjar fullständigt aggregerade vid SUM(Försäljning) och går sedan nedåt till detaljnivån Land: SUM(Försäljning) vid Land.
- LOD-beräkningen tillämpas och detaljnivån för data ökas: SUM(Försäljning) vid Land + Order-ID.
- > LOD-beräkningen aggregeras till den 90:e percentilen: PCT90(SUM(Försäljning) vid Land + Order-ID).
Resultatet är följande:
Tabellberäkning eller LOD-uttryck (detaljnivå)?
När du väljer mellan en tabellberäkning och en LOD-beräkning liknar processen den när du väljer mellan en tabellberäkning och ett grundläggande uttryck. Fråga dig själv följande:
Har du redan alla datavärden du behöver för visualiseringen?
- Om svaret är Ja: Använd en tabellberäkning.
- Om svaret är Nej, fråga dig själv följande: Stämmer detaljnivån på frågan överens med detaljnivån på visualiseringen eller detaljnivån på datakällan? Om svaret är Nej: Använd en LOD-beräkning.
Endast tabellberäkningar
Det finns vissa scenarier som kräver en tabellberäkning. Några av dessa scenarier är följande:
- Rankning
- Rekursion (t.ex. kumulativa totalsummor)
- Rörlig beräkning (t.ex. glidande medelvärde)
- Radöverskridande beräkningar (t.ex. beräkningar av period kontra period)
Om analysen kräver något av dessa scenarier ska du använda en tabellberäkning.
Exempel
Titta på följande visualisering. I visualiseringen visas det genomsnittliga stängningspriset för flera aktier mellan september 2014 och september 2015.
Om du vill se hur många gånger som stängningspriset översteg det dittills högsta stängningsvärdet måste du använda en tabellberäkning, mer bestämt en rekursiv beräkning.
Varför? För att tabellberäkningar kan ge flera värden för varje del av data (cell, ruta, tabell), medan grundläggande uttryck och LOD-uttryck endast kan ge ett värde för varje del eller gruppering av data.
För att beräkna hur många gånger som stängningspriset översteg det högsta stängningspriset för varje aktie finns det ett antal steg du måste ta.
- Du måste beakta alla tidigare värden för att se om du har nått ett nytt maximalt stängningsvärde. Detta kan du göra med hjälp av en RUNNING_MAX-funktion. Titta till exempel på följande beräkning, som gjorts med hjälp av Dag (över hela tabellen), med titeln Rekord hittills:
RUNNING_MAX(AVG([Close]))
Sedan kan du flagga dagarna då rekordet slogs med hjälp av följande beräkning, gjord med hjälp av Dag (över hela tabellen), med titeln Räkna dagar rekordet slås:
IF AVG([Close]) = [Record to Date]
THEN 1
ELSE 0
ENDSlutligen kan du räkna dessa dagar med hjälp av följande beräkning, som görs med hjälp av Dag (över hela tabellen):
RUNNING_SUM([Count Days Record Broken])
När du lägger till det sista beräknade fältet i vyn i stället för Avg(Stängning) får du något sådant här: