Werken met dimensies

Voltooid

Wanneer u een sterschema compileert, hebt u dimensie- en feitentabellen. Feitentabellen bevatten informatie over gebeurtenissen, zoals verkooporders, verzenddatums, wederverkopers en leveranciers. In dimensietabellen worden gegevens over bedrijfsentiteiten opgeslagen, zoals producten of tijd, en die via een relatie zijn verbonden met feitentabellen.

U kunt hiërarchieën als één bron gebruiken om details te ontdekken in dimensietabellen. Deze hiërarchieën worden gevormd door natuurlijke segmenten in uw gegevens. U kunt bijvoorbeeld een hiërarchie van datums hebben waarin uw datums in jaren, maanden, weken en dagen kunnen worden gesegmenteerd. Hiërarchieën zijn handig omdat ze u in staat stellen om in te zoomen op de details van uw gegevens in plaats van de gegevens op een hoog niveau te bekijken.

Hiërarchieën

Wanneer u visuals compileert, worden in Power BI automatisch waarden van het datumtype als hiërarchie ingevoerd (als de tabel niet is gemarkeerd als een datumtabel).

Schermopname van het voorbeeld van een hiërarchie.

In de vorige kolom Datum wordt de datum in steeds nauwkeuriger details weergegeven, van jaar, kwartalen, maanden tot dagen. U kunt ook handmatig hiërarchieën maken.

Denk bijvoorbeeld aan een situatie waarin u een gestapeld staafdiagram wilt maken van de totaalverkoop per categorie en subcategorie. U kunt deze taak uitvoeren door in de tabel Product voor categorieën en subcategorieën een hiërarchie te maken. Als u een hiërarchie wilt maken, gaat u naar het deelvenster Velden in Power BI en klikt u vervolgens met de rechtermuisknop op de kolom waarvoor u de hiërarchie wilt. Selecteer Nieuwe hiërarchie, zoals weergegeven in de volgende afbeelding.

Schermopname van de nieuwe hiërarchie in de tabel Product.

Sleep vervolgens de subcategoriekolom naar deze nieuwe hiërarchie die u hebt gemaakt. Deze kolom wordt als een subniveau in de hiërarchie toegevoegd.

Schermopname van de categorienaamhiërarchie met categorienaam en subcategorienaam genest.

Nu kunt u de visual maken door een gestapeld staafdiagram te selecteren in het deelvenster Visualisaties. Voeg uw Hiërarchie op categorienaam toe in het veld As en Totale verkoop in het veld Waarden.

Schermopname van de categorienaamhiërarchie in het veld As en TotalSales in het veld Waarden.

U kunt inzoomen op de visual om Categorie en Subcategorie te bekijken, afhankelijk van wat u wilt zien. Met hiërarchieën kunt u een steeds grotere hoeveelheid gegevens weergeven in één weergave.

Schermopname van de twee weergaven in één visual.

Nu u meer over hiërarchieën weet, kunt u een stap verder gaan en bovenliggende en onderliggende hiërarchieën en hun rol onderzoeken in meervoudige relaties tussen feitentabellen en dimensietabellen.

Bovenliggende/onderliggende hiërarchie

In het volgende voorbeeld hebt u een tabel Employee in de database waarmee u belangrijke informatie krijgt over de werknemers, hun managers en hun id's. Wanneer u deze tabel bekijkt, ziet u dat Roy F meerdere keren voorkomt in de kolom Manager. Zoals in de afbeelding wordt weergegeven, kunnen meerdere werknemers dezelfde manager hebben, die een hiërarchie aangeeft tussen managers en werknemers.

Schermopname van de tabel Werknemer met de kolommen Werknemer-id, Werknemer, Manager-id en Manager.

De kolom Manager bepaalt de hiërarchie en is daarom het bovenliggende niveau, terwijl de onderliggende niveaus de werknemers zijn. In dit voorbeeld wilt u alle niveaus van deze hiërarchie kunnen zien. Power BI geeft niet standaard alle niveaus van de hiërarchie weer. Het is dus uw verantwoordelijkheid om ervoor te zorgen dat alle niveaus van deze hiërarchie worden weergegeven of dat u deze moet platmaken zodat u meer gegevensgranulariteit kunt weergeven.

Bovenliggende/onderliggende hiërarchie platmaken

Het proces voor het weergeven van meerdere onderliggende niveaus op basis van een bovenliggend item op het hoogste niveau staat bekend als het platmaken van de hiërarchie. In dit proces maakt u meerdere kolommen in een tabel om het hiërarchische pad van het bovenliggende naar het onderliggende item in dezelfde record weer te geven. U gebruikt PATH(), een eenvoudige DAX-functie waarmee een tekstversie van het managementpad voor elke werknemer wordt geretourneerd en PATHITEM() om dit pad te scheiden in elk niveau van managementhiërarchie.

Belangrijk

DAX is nog niet behandeld; dat gebeurt echter in een andere module. Deze functie is opgenomen in deze sectie omdat hiermee hiërarchieën worden uitgelegd. Als het gebruik van DAX in deze capaciteit verwarrend is, raadpleegt u de DAX-module en keert u vervolgens terug naar deze sectie.

Ga in de tabel naar het tabblad Modelleren en selecteer Nieuwe kolom. Voer in de resulterende formulebalk de volgende functie in, waarmee het tekstpad tussen de werknemer en manager wordt gemaakt. Met deze actie wordt een berekende kolom gemaakt in DAX.

Path = PATH(Employee[Employee ID], Employee[Manager ID])

Schermopname van de DAX-meting voor het platmaken van de bovenliggende onderliggende hiërarchie.

Het voltooide pad tussen de werknemer en de manager wordt weergegeven in de nieuwe kolom, zoals wordt weergegeven in de volgende schermopname.

Schermopname van de functietabel PATH in Power BI.

Als u naar Roger M kijkt, is het pad van id's 1010 | 1011 | 1013, wat betekent dat zich één niveau boven Roger M (Id 1013) zijn manager Pam H (Id 1011) bevindt en één niveau boven Pam H de manager Roy F (Id 1010). In deze rij bevindt Roger M zich onderaan de hiërarchie, op het onderliggende niveau, en Roy F bevindt zich bovenaan de hiërarchie en bevindt zich op het bovenliggende niveau. Dit pad wordt voor elke werknemer gemaakt. Als u de hiërarchie wilt platmaken, kunt u elk niveau van elkaar scheiden met behulp van de functie PATHITEM.

Als u alle drie de niveaus van de hiërarchie afzonderlijk wilt weergeven, kunt u vier kolommen op dezelfde manier maken als u eerder hebt gedaan, door de volgende vergelijkingen in te voeren. U gebruikt de functie PATHITEM om de waarde op te halen die zich in het bijbehorende niveau van uw hiërarchie bevindt.

  • Niveau 1 = PATHITEM(Employee[Path],1)
  • Niveau 2 = PATHITEM(Employee[Path],2)
  • Niveau 3 = PATHITEM(Employee[Path],3)

Schermopname van het gebruik van de functie PATHITEM.

Wanneer u klaar bent, ziet u dat u in uw tabel nu over elk hiërarchieniveau beschikt. Roy F bevindt zich bovenaan de hiërarchie en wanneer u de niveaus 2-3 doorloopt, ziet u dat de managers en werknemers aan elkaar worden toegewezen.

Schermopname van het platmaken van de bovenliggende/onderliggende hiërarchie.

U kunt nu een hiërarchie maken op het deelvenster Velden, zoals u eerder hebt gedaan. Klik met de rechtermuisknop op niveau 1, omdat dit het eerste hiërarchieniveau is en selecteer vervolgens Nieuwe hiërarchie. Sleep vervolgens niveau 2 en niveau 3 naar deze hiërarchie.

Schermopname van de nieuwe hiërarchie voor werknemerniveaus.

U hebt nu een hiërarchie platgemaakt zodat u afzonderlijke niveaus kunt weergeven.

Eerder hebt u dimensies bekeken met slechts één relatie met een feitentabel. Er treden echter situaties op waarbij uw dimensietabel meerdere relaties met een feitentabel heeft.

Rollenspeldimensies

Rollenspeldimensies hebben meerdere geldige relaties met feitentabellen, wat inhoudt dat dezelfde dimensie kan worden gebruikt om meerdere kolommen of tabellen met gegevens te filteren. Als gevolg hiervan kunt u gegevens op verschillende manieren filteren, afhankelijk van welke gegevens u moet ophalen. Dit onderwerp is complex, zodat het alleen in deze sectie wordt opgevoerd. Voor het werken met rollenspeldimensies zijn complexe DAX-functies vereist die in latere secties worden besproken.

Schermopname van rollenspeldimensies in een model.

In de voorgaande visual ziet u de tabellen Calendar, Sales en Order. Calendar is de dimensietabel, terwijl Sales en Order feitentabellen zijn. De dimensietabel heeft twee relaties: één met Sales en één met Order. Dit voorbeeld is een rollenspeldimensie omdat de tabel Calendar kan worden gebruikt om gegevens in zowel Sales als Order te groeperen. Als u een visual wilt maken waarin de tabel Calendar naar die van Order en Sales verwijst, zou de tabel Calendar fungeren als een rollenspeldimensie.