Arbeid med dimensjoner
Når du bygger et stjerneskjema, får du dimensjonstabeller og faktatabeller. Faktatabeller inneholder informasjon om hendelser, for eksempel salgsordrer, forsendelsesdatoer, forhandlere og leverandører. Dimensjonstabeller lagrer detaljer om forretningsenheter, for eksempel produkter eller tidspunkt, og er koblet tilbake til faktatabeller gjennom en relasjon.
Du kan bruke hierarkier som én kilde for å hjelpe deg med å finne detaljer i dimensjonstabeller. Disse hierarkiene dannes gjennom naturlige segmenter i dataene. Du kan for eksempel ha et hierarki med datoer der datoene kan segmenteres i år, måneder, uker og dager. Hierarkier er nyttige fordi de gir deg mulighet til å drille ned til bestemte data, i stedet for bare å se dataene på et høyt nivå.
Hierarkier
Når du bygger visualobjekter, fyller Power BI automatisk inn verdier for datotypen som et hierarki (hvis tabellen ikke er merket som en datotabell).
I den forrige Dato-kolonnen vises datoen med mer detaljert informasjon som inkluderer år, kvartaler, måneder og dager. Du kan også opprette hierarkier manuelt.
Se for eksempel for deg en situasjon der du vil opprette et stablet liggende stolpediagram for Totalt salg etter kategori og underkategori. Du kan gjennomføre denne oppgaven ved å opprette et hierarki i Produkt-tabellen for kategorier og underkategorier. For å opprette et nytt hierarki går du til Felter-ruten i Power BI, og deretter høyreklikker du på kolonnen som du vil bruke hierarkiet på. Velg Nytt hierarki som vist i figuren nedenfor.
Deretter drar og slipper du underkategori-kolonnen i dette nye hierarkiet du har opprettet. Denne kolonnen legges til som et undernivå i hierarkiet.
Nå kan du bygge visualobjektet ved å velge et stablet liggende stolpediagram i Visualiseringer-ruten. Legg til Hierarkiets kategorinavn i Akse-feltet, og Totalt salg i Verdier-feltet.
Du kan drille ned i visualobjektet for å vise både Kategori og Underkategori, avhengig av hva du ønsker å se. Med hierarkier kan du vise økende nivåer med data i én enkelt visning.
Nå som du har blitt bedre kjent med hierarkier, kan du ta skrittet videre og undersøke underordningshierarkier og rollen deres i flere relasjoner mellom faktatabeller og dimensjonstabeller.
Underordningshierarki
I eksemplet nedenfor har du en Ansatt-tabell i databasen som gir deg viktig informasjon om de ansatte, sjefene deres og ID-ene deres. Når du ser på denne tabellen, legger du merke til at Roy F gjentas flere ganger i kolonnen Sjef. Som bildet viser, kan flere ansatte ha samme leder, noe som indikerer et hierarki mellom ledere og ansatte.
Leder-kolonnen fastslår hierarkiet og er derfor overordnet, mens de «underordnede» er de ansatte. I dette eksemplet ønsker du å se alle nivåene i dette hierarkiet. Power BI viser deg ikke alle nivåene i hierarkiet som standard, så det er ansvaret ditt å sørge for at du ser alle nivåene for dette hierarkiet, eller «flate det ut» slik at du kan se mer data på detaljnivå.
Flate ut underordningshierarki
Prosessen med å vise flere underordnede nivåer basert på et overordnet toppnivå, omtales som å flate ut hierarkiet. I denne prosessen skal du opprette flere kolonner i en tabell for å vise den hierarkiske banen fra den overordnede til den underordnede i samme post. Du skal bruke PATH(), en enkel DAX-funksjon som returnerer en tekstversjon av lederbanen for hver ansatt, og PATHITEM() for å dele denne banen inn i hvert nivå av lederhierarkier.
Viktig
Vi har ennå ikke tatt for oss DAX, men det skal vi gjøre i en senere modul. Denne funksjonen er inkludert i denne inndelingen fordi den forklarer hierarkier. Hvis du syns det er forvirrende å bruke DAX i denne kapasiteten, kan du ta en titt DAX-modulen, og deretter komme tilbake til denne inndelingen etterpå.
Når du er i tabellen, går du til Modellering-fanen og velger Ny kolonne. I formellinjen som vises skriver du inn følgende funksjon, og da opprettes tekstbanen mellom den ansatte og lederen. Denne handlingen oppretter en beregnet kolonne i DAX.
Path = PATH(Employee[Employee ID], Employee[Manager ID])
Den fullførte banen mellom den ansatte og lederen vises i den nye kolonnen, som vist på skjermbildet nedenfor.
Hvis du tar en titt på Roger M., er banen til ID-ene 1010 | 1011 | 1013, noe som betyr at lederen hans, Pam H. (ID 1011), er ett nivå over Roger M. (ID 1013), og lederen hennes, Roy F. (ID 1010), er igjen ett nivå over henne. I denne raden er Roger M nederst i hierarkiet på underordnet nivå, og Roy F er øverst i hierarkiet på overordnet nivå. Denne banen opprettes for hver ansatt. For å flate ut hierarkiet kan du skille hvert nivå ved hjelp av PATHITEM-funksjonen.
For å vise alle de tre nivåene i hierarkiet separat, kan du opprette fire kolonner på samme måte som du gjorde tidligere, ved å angi følgende formler. Du skal bruke PATHITEM-funksjonen til å hente verdien som befinner seg i det tilsvarende nivået i hierarkiet.
- Level 1 = PATHITEM(Employee[Path],1)
- Level 2 = PATHITEM(Employee[Path],2)
- Level 3 = PATHITEM(Employee[Path],3)
Når du er ferdig, ser du at du nå har hvert hierarkinivå i tabellen. Roy F. er øverst i hierarkiet, og når du går gjennom Nivå 2–3, ser du at lederne og de ansatte er tilordnet hverandre.
Nå kan du opprette et hierarki i Felter-ruten, slik du gjorde tidligere. Høyreklikk på nivå 1, fordi dette er det første hierarkinivået, og velg deretter Nytt hierarki. Deretter drar og slipper du nivå 2 og nivå 3 inn i dette hierarkiet.
Du har nå flatet ut et hierarki, slik at du kan vise individuelle nivåer.
Tidligere har du sett på dimensjoner som bare har én relasjon med en faktatabell. Det oppstår imidlertid situasjoner der dimensjonstabellen har flere relasjoner med en faktatabell.
Rollespilldimensjoner
Rollespilldimensjoner har flere gyldige relasjoner med faktatabeller, noe som betyr at den samme dimensjonen kan brukes til å filtrere flere kolonner eller tabeller med data. Som et resultat av dette kan du filtrere data på ulike måter, avhengig av hvilken type informasjon du trenger å hente. Dette er et komplekst emne, så derfor introduseres det bare i denne inndelingen. Når du jobber med rollespilldimensjoner, må du bruke komplekse DAX-funksjoner som vi skal snakke mer om senere.
Det forrige visualobjektet viser tabellene Kalender, Salg og Ordre. Kalender er dimensjonstabellen, mens tabellene Salg og Ordre er faktatabeller. Dimensjonstabellen har to relasjoner: én med Salg, og én med Ordre. Dette eksemplet tar for seg en rollespilldimensjon fordi Kalender-tabellen kan brukes til å gruppere data i både Salg og Ordre. Hvis du ville bygge et visualobjekt der Kalender-tabellen refererer til tabellene Ordre og Salg, ville Kalender-tabellen fungert som en rollespilldimensjon.