Arbeta med dimensioner
När du skapar ett star-schema har du dimensions- och faktatabeller. Faktatabeller innehåller information om händelser som säljorder, leveransdatum, återförsäljare och leverantörer. Dimensionstabeller lagrar information om affärsenheter, som produkter eller tid, och kopplas tillbaka till faktatabeller via en relation.
Du kan använda hierarkier som en källa för att hjälpa dig att hitta information i dimensionstabeller. Dessa hierarkier formas via naturlig segment i dina data. Du kan till exempel ha en hierarki med datum där datumen kan segmenteras i år, månader, veckor och dagar. Hierarkier är användbara eftersom du kan öka detaljnivån till specifik information i dina data istället för att bara se data på översiktlig nivå.
Hierarkier
När du skapar visuella objekt anger Power BI automatiskt värden för datumtypen som en hierarki (om tabellen inte har markerats som en datumtabell).
I den föregående kolumnen Date visas datumet i ökande detaljgrad i år, kvartal, månader och dagar. Du kan också skapa hierarkier manuellt.
Anta till exempel en situation där du vill skapa ett liggande stapeldiagram: Total Sales by Category and Subcategory (Försäljning totalt per kategori och underkategori). Du kan utföra uppgiften genom att skapa en hierarki i tabellen Product för kategorier och underkategorier. För att skapa en hierarki går du till fönstret Fält i Power BI och högerklickar sedan på den kolumn som du vill ha hierarkin för. Välj Ny hierarki, som på följande bild.
Dra och släpp sedan underkategorikolumnen i den här nya hierarkin som du har skapat. Kolumnen läggs till som en undernivå på hierarkin.
Nu kan du skapa det visuella objektet genom att välja ett liggande stapeldiagram i fönstret Visualiseringar. Lägg till hierarkin Category Name i fältet Axel och Total Sales i fältet Värden.
Du kan öka detaljnivån för det visuella objektet så att både kategori och underkategori visas, beroende på vad du vill se. Hierarkier gör så att du kan visa ökande datanivåer i en enda vy.
Nu när du har lärt dig om hierarkier kan du ta ett steg till och undersöka hierarkier för över-/underordnad och deras roll i flera relationer mellan faktatabeller och dimensionstabeller.
Hierarki för över-/underordnad
I följande exempel har du tabellen Employee som innehåller viktig information om anställda, deras chefer och ID:n. När du tittar på tabellen märker du att Roy F upprepas flera gångar i kolumnen Manager. Som bilden visar kan flera anställda ha samma chef, vilket anger en hierarki mellan chefer och anställda.
Kolumnen Manager bestämmer hierarkin och är därför överordnad, medan de underordnade är de anställda. I det här exemplet vill du kunna se alla nivåer i den här hierarkin. Power BI visar som standard inte alla nivåer i hierarkin, så det är ditt ansvar att se till att alla nivåer i hierarkin visas eller att du ”plattar ut” den så att du kan se mer datakornighet.
Platta ut hierarkin för över-/underordnad
Processen att visa flera underordnade nivåer baserat på en överordnad på toppnivå kallas för att platta ut hierarkin. I den här processen skapar du flera kolumner i en tabell för att visa den hierarkiska sökvägen för den överordnade till den underordnade i samma post. Du använder PATH(), en enkel DAX-funktion som returnerar en textversion för chefssökvägen för varje anställd och PATHITEM() för att avgränsa sökvägen till varje nivå i chefshierarkin.
Viktigt
Vi har inte gått igenom DAX än men det kommer i en annan modul. Den här funktionen ingår i det här avsnittet eftersom här förklaras hierarkier. Om användning av DAX i det här syftet är förvirrande kan du gå till DAX-modulen och sedan komma till det här avsnittet efteråt.
När du är i tabellen går du till fliken Modellering och väljer Ny kolumn. I det resulterande formelfältet anger du följande funktion, som skapar textsökvägen mellan den anställda och chefen. Åtgärden skapar en beräknad kolumn i DAX.
Path = PATH(Employee[Employee ID], Employee[Manager ID])
Den färdiga sökvägen mellan den anställda och chefen visas i den nya kolumnen, som du ser i följande skärmbild.
Om du tittar på Roger M är ID-sökvägen 1010 | 1011 | 1013, vilket betyder att en nivå över Roger M (ID 1013) finns hans chef, Pam H (ID 1011), och en nivå över Pam H finns hennes chef Roy F (ID 1010). På den här raden finns Roger M längst ned i hierarkin, på den underordnade nivån, och Roy F är högst upp i hierarkin, på överordnad nivå. Den här sökvägen skapas för varje anställd. För att platta ut hierarkin kan du separera varje nivå med hjälp av funktionen PATHITEM.
Om du vill visa alla tre nivåer i hierarkin separat kan du skapa fyra kolumner på samma sätt som du har gjort tidigare, genom att ange följande ekvationer. Du använder funktionen PATHITEM för att hämta värdet som finns i motsvarande nivå i hierarkin.
- Nivå 1 = PATHITEM(Employee[Path],1)
- Nivå 2 = PATHITEM(Employee[Path],2)
- Nivå 3 = PATHITEM(Employee[Path],3)
När du är klar har du varje hierarkinivå i tabellen. Roy F är högst upp i hierarkin och, när du går igenom nivå 2-3 märker du att cheferna och de anställda mappas med varandra.
Nu kan du skapa en hierarki i fönstret Fält, som du gjorde tidigare. Högerklicka på Nivå 1 eftersom det här är den första hierarkinivån och välj sedan Ny hierarki. Dra och släpp sedan Nivå 2 och Nivå 3 i den här hierarkin.
Nu har du plattat ut en hierarki så att du kan visa individuella nivåer.
Tidigare har du övervägt dimensioner som bara har en relation med en faktatabell. Men situationer uppstår där dimensionstabellen har flera relationer med en faktatabell.
Dimensioner med olika roller
Dimensioner med olika roller har flera giltiga relationer med faktatabeller, vilket betyder att samma dimension kan användas för att filtrera flera kolumner eller tabeller med data. Det innebär att du kan filtrera data på olika sätt beroende på vilken information du behöver hämta. Det här ämnet är komplext, så det introduceras bara i det här avsnittet. Arbete med dimensioner med olika roller kräver komplexa DAX-funktioner som diskuteras i senare avsnitt.
I det föregående visuella objektet visas tabellerna Calendar, Sales och Order. Calendar är dimensionstabellen, medan Sales och Order är faktatabeller. Dimensionstabellen har två relationer: en med Sales och en med Order. Det här exemplet beskriver en dimension med olika roller eftersom tabellen Calendar kan användas till att gruppera data i både Sales och Order. Om du skulle vilja skapa ett visuellt objekt där tabellen Calendar refererar till tabellerna Order och Sales skulle tabellen Calendar fungera som en dimension med olika roller.