Relaties maken en beheren in Power BI Desktop

Wanneer u meerdere tabellen hebt, kunt u waarschijnlijk analyses uitvoeren met behulp van gegevens uit al deze tabellen. Relaties tussen deze tabellen zijn nodig om nauwkeurig resultaten te berekenen en de juiste gegevens in uw rapporten weer te geven. Met Power BI Desktop is het maken van deze relaties eenvoudig. In de meeste gevallen hoeft u niets te doen. De functie Autodetectie doet het voor u. In sommige gevallen moet u echter mogelijk zelf relaties maken of moet u enkele wijzigingen in een relatie aanbrengen. Hoe dan ook is het belangrijk om relaties in Power BI Desktop te begrijpen en te weten hoe u ze maakt en bewerkt.

Autodetectie tijdens laden

Als u query's uitvoert op twee of meer tabellen tegelijk, probeert Power BI Desktop tijdens het laden van de gegevens relaties te zoeken en te maken. De relatieopties Kardinaliteit, Richting voor kruislings filteren en Deze relatie activeren zijn automatisch ingesteld. Power BI Desktop kijkt naar kolomnamen in de tabellen waarop u query's toepast, om te bepalen of er mogelijke relaties zijn. Als dat het geval is, worden de relaties automatisch gemaakt. Als Power BI Desktop niet met grote zekerheid kan vaststellen of er een overeenkomst is, wordt er geen relatie gemaakt. U kunt echter nog steeds het dialoogvenster Relaties beheren gebruiken om handmatig relaties te maken of te bewerken.

Een relatie maken met automatische detectie

Selecteer Op het tabblad Modellerende optie Relaties> automatischdetecteren beheren.

Een relatie maken met automatische detectie

Handmatig een relatie maken

  1. Selecteer Op het tabblad Modelleringde optie Relaties beheren>nieuw.

  2. Selecteer in het dialoogvenster Relatie maken een tabel in de vervolgkeuzelijst voor de eerste tabel. Selecteer de kolom die u in de relatie wilt gebruiken.

  3. Selecteer in de vervolgkeuzelijst voor de tweede tabel de andere tabel die u voor de relatie wilt gebruiken. Selecteer de andere kolom die u wilt gebruiken en selecteer VERVOLGENS OK.

    Een handmatige relatie maken

Power BI Desktop configureert standaard automatisch de opties Kardinaliteit (richting), Richting voor kruislings filteren en Deze relatie activeren voor uw nieuwe relatie. U kunt deze instellingen indien nodig wijzigen. Zie Inzicht in extra opties voor meer informatie.

Als geen van de tabellen die voor de relatie zijn geselecteerd, unieke waarden bevat, ziet u de volgende fout: Een van de kolommen moet unieke waarden bevatten. Ten minste één tabel in een relatie moet over een specifieke, unieke lijst sleutelwaarden beschikken. Dit is een algemene vereiste voor alle databasetechnologieën op basis van relaties.

Als deze fout optreedt, zijn er verschillende manieren om het probleem te verhelpen:

  • Gebruik Dubbele waarden verwijderen om een kolom met unieke waarden te maken. Het nadeel van deze benadering is dat er mogelijk informatie verloren gaat bij het verwijderen van dubbele rijen. Vaak wordt een sleutel (rij) met een goede reden gedupliceerd.
  • Voeg een tussenliggende tabel op basis van de lijst afzonderlijke sleutelwaarden toe aan het model. Deze tabel wordt dan gekoppeld aan beide oorspronkelijke kolommen in de relatie.

Zie dit blogbericht voor meer informatie.

U kunt ook in de indelingen van het modelweergavediagram een kolom van de ene tabel naar een kolom in een andere tabel slepen en neerzetten om een relatie te maken.

Een relatie bewerken

Er zijn twee manieren om een relatie in Power BI te bewerken.

De eerste methode voor het bewerken van een relatie is het gebruik van de bewerkingsrelaties in het deelvenster Eigenschappen in demodelweergave, waar u op een lijn tussen twee tabellen kunt klikken om de relatieopties in het deelvenster Eigenschappen weer te geven. Vouw het deelvenster Eigenschappen uit om de relatieopties weer te geven.

Schermafbeelding van het aanpassen van relaties.

U kunt ook een videodemonstratie zien van het bewerken van relaties in het deelvenster Eigenschappen .

De andere methode voor het bewerken van een relatie is het dialoogvenster Relatieeditor, dat u op veel manieren kunt openen vanuit Power BI Desktop. In de volgende lijst ziet u verschillende manieren waarop u het dialoogvenster Relatie-editor kunt openen:

Ga als volgt te werk vanuit de rapportweergave :

  • Selecteer het lint >ModelleringBeheren en selecteer vervolgens de relatie en selecteer Bewerken.
  • Selecteer een tabel in de lijst Velden en selecteer vervolgens het lint Relaties beheren op het lint >Tabelhulpmiddelen, selecteer vervolgens de relatie en selecteer Vervolgens Bewerken.

Selecteer in de gegevensweergave het lint >Hulpmiddelen voor tabellenbeheren, selecteer vervolgens de relatie en selecteer Vervolgens Bewerken.

Ga in de modelweergave op een van de volgende manieren te werk:

  • Selecteer het startlint >Relaties beheren, selecteer vervolgens de relatie en selecteer Vervolgens Bewerken.
  • Dubbelklik op een lijn tussen twee tabellen.
  • Klik met de rechtermuisknop op een lijn tussen twee tabellen en kies Eigenschappen.
  • Selecteer een lijn tussen twee tabellen en selecteer vervolgens Relatie-editor openen in het deelvenster Eigenschappen .

Ten slotte kunt u ook een relatie bewerken vanuit elke weergave, met de rechtermuisknop klikken of het beletselteken selecteren om naar het contextmenu van een tabel te gaan, vervolgens Relaties beheren selecteren, de relatie selecteren en vervolgens Bewerken selecteren

In de volgende afbeelding ziet u een schermafbeelding van het venster Relatie bewerken .

Schermafbeelding van het venster Relatie bewerken.

Relaties bewerken met behulp van verschillende methoden

Het dialoogvenster Relaties bewerken is een meer begeleide ervaring voor het bewerken van relaties in Power BI en is momenteel in preview. U ziet een voorbeeld van de gegevens in elke tabel en terwijl u verschillende kolommen selecteert, valideert het venster automatisch de relatie en biedt het de juiste kardinaliteit en kruisfilterselecties.

Het bewerken van relaties in het deelvenster Eigenschappen is een gestroomlijnde benadering voor het bewerken van relaties in Power BI. U ziet alleen de tabelnamen en kolommen waaruit u kunt kiezen, u ziet geen voorbeeld van gegevens en de relatiekeuzes die u maakt, worden alleen gevalideerd wanneer u Wijzigingen toepassen selecteert. Met behulp van het deelvenster Eigenschappen en de gestroomlijnde benadering vermindert u het aantal query's dat wordt gegenereerd bij het bewerken van een relatie, wat belangrijk kan zijn voor big data-scenario's, met name bij het gebruik van DirectQuery-verbindingen. Relaties die zijn gemaakt met behulp van het deelvenster Eigenschappen , kunnen ook geavanceerder zijn dan de relaties die mogen worden gemaakt in het dialoogvenster Relaties bewerken.

U kunt ook relaties met meerdere selecties selecteren in de indelingen van het modelweergavediagram . Druk op Ctrl en selecteer (klik op) meer dan één regel om meerdere relaties te selecteren. Algemene eigenschappen kunnen worden bewerkt in het deelvenster Eigenschappen en wijzigingen toepassen verwerken de wijzigingen in één transactie.

Enkelvoudige of meervoudige relaties kunnen ook worden verwijderd door op Delete op het toetsenbord te drukken. U kunt de verwijderactie niet ongedaan maken, dus in een dialoogvenster wordt u gevraagd de relaties te verwijderen.

Belangrijk

Het bewerken van relaties in het deelvenster Eigenschappen is momenteel beschikbaar als preview-versie. In preview zullen functionaliteit en documentatie waarschijnlijk veranderen. U moet deze functie inschakelen in Power BI Desktop door naar opties voor bestandsopties > en instellingen >> preview-functies te gaan en vervolgens in de sectie ALGEMEEN het selectievakje naast het deelvenster Relatie in te schakelen.

Extra opties configureren

Wanneer u een relatie maakt of bewerkt, kunt u extra opties configureren. Standaard configureert Power BI Desktop automatisch extra opties op basis van een schatting die voor elke relatie anders kan zijn op basis van de gegevens in de kolommen.

Kardinaliteit

De optie Kardinaliteit kan een van de volgende instellingen hebben:

Veel-op-een (*:1): Een veel-op-een-relatie is het meest voorkomende, standaardtype relatie. Dit betekent dat de kolom in de ene tabel meer dan één exemplaar van een waarde kan hebben en dat de andere, gerelateerde tabel, vaak de opzoektabel genoemd, slechts één exemplaar van een waarde heeft.

Een-op-een (1:1) : in een een-op-een-relatie heeft de kolom in de ene tabel slechts één exemplaar van een bepaalde waarde en heeft de andere, gerelateerde tabel slechts één exemplaar van een bepaalde waarde.

Een-op-veel (1:*) : in een een-op-veel-relatie heeft de kolom in de ene tabel slechts één exemplaar van een bepaalde waarde en kan de andere, gerelateerde tabel meer dan een exemplaar van een waarde hebben.

Veel tot veel (*:*): met samengestelde modellen kunt u een veel-op-veel-relatie tussen tabellen tot stand brengen, waardoor de vereisten voor unieke waarden in tabellen worden verwijderd. Ook zijn eerdere tijdelijke oplossingen niet meer nodig, zoals de introductie van nieuwe tabellen om relaties tot stand te brengen. Zie Relaties met een veel-op-veel-kardinaliteit voor meer informatie.

Zie Inzicht in extra opties voor meer informatie over wanneer de kardinaliteit moet worden gewijzigd.

Kruisfilterrichting

De optie Richting voor kruislings filteren kan de volgende instellingen hebben:

Beide: voor filterdoeleinden worden beide tabellen behandeld alsof ze één tabel vormen. De instelling Beide werkt goed met één tabel met veel opzoektabellen eromheen. Een voorbeeld is een tabel van de actuele verkoop met een opzoektabel voor afdelingen. Deze configuratie wordt vaak een configuratie met een stervormig schema genoemd (een centrale tabel met verschillende opzoektabellen). Als u twee of meer tabellen hebt die ook opzoektabellen hebben (met een aantal gemeenschappelijke opzoektabellen), kunt u de instelling Beide beter niet gebruiken. We gaan door met het vorige voorbeeld. Stel dat u ook een tabel voor verkoopbudget hebt die het beoogde budget voor elke afdeling bevat. Daarnaast is de afdelingstabel gekoppeld aan de verkoop- en de budgettabel. Vermijd de instelling Beide voor dit type configuratie.

Enkel: de meestgebruikte standaardrichting. Hierbij worden filterkeuzen in gekoppelde tabellen toegepast op de tabel waarin de waarden worden samengevoegd. Als u een Power Pivot in een Excel 2013-gegevensmodel of een eerder gegevensmodel importeert, hebben alle relaties één richting.

Zie Inzicht in extra opties voor meer informatie over wanneer de kruisfilterrichting moet worden gewijzigd.

Deze relatie activeren

Wanneer deze optie is ingeschakeld, fungeert de relatie als de actieve standaardrelatie. In gevallen waarbij er meer dan één relatie tussen twee tabellen bestaat, helpt de actieve relatie Power BI Desktop om automatisch visualisaties te maken die beide tabellen bevatten.

Zie Inzicht in extra opties voor meer informatie over wanneer een bepaalde relatie moet worden geactiveerd.

Inzicht in relaties

Als u een relatie tussen twee tabellen tot stand hebt gebracht, kunt u in beide tabellen met de gegevens werken alsof ze één tabel vormen. Zo hoeft u zich niet druk te maken om relatiegegevens of het samenvoegen van tabellen tot één tabel voordat u ze importeert. In veel gevallen kan Power BI Desktop automatisch relaties voor u maken. Als Power BI Desktop echter niet met een hoge mate van zekerheid kan vaststellen dat er een relatie tussen twee tabellen bestaat, wordt er niet automatisch een relatie gemaakt. In dat geval moet u dit doen.

We doen even een korte zelfstudie om meer inzicht te krijgen in hoe relaties werken in Power BI Desktop.

Tip

U kunt deze les zelf afronden:

  1. Kopieer de volgende tabel ProjectHours naar een Excel-werkblad (behalve de titel), selecteer alle cellen en selecteer vervolgens Invoegen>Tabel.
  2. Klik in het dialoogvenster Tabel maken op OK.
  3. Selecteer een tabelcel, selecteerTabelontwerptabelnaam> en voer Vervolgens ProjectHours in.
  4. Doe hetzelfde voor de tabel CompanyProject.
  5. Importeer de gegevens met behulp van Gegevens ophalen in Power BI Desktop. Selecteer de twee tabellen als gegevensbron en selecteer vervolgens Laden.

De eerste tabel, ProjectHours, is een overzicht van werktickets met het aantal uren dat een persoon aan een bepaald project heeft gewerkt.

ProjectHours

Ticket SubmittedBy Hours Project DateSubmit
1001 Brewer, Alan 22 Blauw 1/1/2013
1002 Brewer, Alan 26 Rood 2/1/2013
1003 Ito, Shu 34 Geel 12/4/2012
1004 Brewer, Alan 13 Oranje 1/2/2012
1005 Bowen, Eli 29 Paars 01-10-2013
1006 Bento, Nuno 35 Groen 2/1/2013
1007 Hamilton, David 10 Geel 01-10-2013
1008 Han, Mu 28 Oranje 1/2/2012
1009 Ito, Shu 22 Paars 2/1/2013
1010 Bowen, Eli 28 Groen 10/1/2013
1011 Bowen, Eli 9 Blauw 10/15/2013

Deze tweede tabel, CompanyProject, is een lijst met projecten met een toegewezen prioriteit: A, B of C.

CompanyProject

ProjName Priority
Blauw A
Rood B
Groen C
Geel C
Paars B
Oranje C

U ziet dat elke tabel een projectkolom bevat. Elke kolom heeft een net iets andere naam, maar de waarden lijken hetzelfde te zijn. Dat is belangrijk en we komen er zo op terug.

Nu we de twee tabellen in een model hebben geïmporteerd, gaan we een rapport maken. Het eerste dat we willen ophalen, is het aantal uren dat is ingediend per projectprioriteit. Daarvoor selecteren we Priority en Hours in het deelvenster Velden.

Priority en Hours selecteren in het deelvenster Velden

Als u de tabel in het rapportcanvas bekijkt, ziet u dat het aantal uur 256 is voor elk project. Dit is ook het totale aantal. Dit getal is duidelijk niet juist. Hoe kan dat? Dit komt doordat we niet een totaalaantal van waarden uit één tabel kunnen berekenen (Hours in de tabel Project) en dit kunnen delen door waarden in een andere tabel (Priority in de tabel CompanyProject) zonder dat er een relatie tussen deze twee tabellen bestaat.

Daarom gaan we een relatie tussen deze twee tabellen maken.

Weet u nog, die kolommen in beide tabellen met een projectnaam, maar met waarden die op elkaar lijken? We gebruiken deze twee kolommen om een relatie tussen de tabellen te maken.

Waarom deze kolommen? Als we kijken naar de kolom Project in de tabel ProjectHours, zien we waarden zoals blauw, rood, geel, oranje enzovoort. Er zijn zelfs meerdere rijen die dezelfde waarde hebben. We hebben veel kleurwaarden voor Project.

In de kolom ProjName in de tabel CompanyProject zien we dat er maar één van elk van de kleurwaarden voor de projectnaam is. Elke kleurwaarde in deze tabel is uniek, en dat is belangrijk, omdat we een relatie tussen deze twee tabellen kunnen maken. In dit geval een veel-op-een-relatie. Bij een veel-op-een-relatie moet ten minste één kolom in een van de tabellen unieke waarden bevatten. Er zijn enkele aanvullende opties voor sommige relaties die we later bekijken. We gaan nu een relatie maken tussen de projectkolommen in beide tabellen.

De nieuwe relatie maken

  1. Selecteer Relaties beheren op het tabblad Modellering .

  2. Selecteer in Relaties beheren de optie Nieuw om het dialoogvenster Relatie maken te openen, waarin u de tabellen, kolommen en eventuele extra instellingen voor de relatie kunt selecteren.

  3. Selecteer in de eerste vervolgkeuzelijst ProjectHours als de eerste tabel en selecteer vervolgens de kolom Project. Deze zijde is de veel-zijde van de relatie.

  4. In de tweede vervolgkeuzelijst is CompanyProject vooraf geselecteerd als de tweede tabel. Selecteer de kolom ProjName. Deze zijde is de een-zijde van de relatie.

  5. Accepteer de standaardwaarden voor de relatieopties en selecteer OK.

    Dialoogvenster Relatie maken

  6. Klik in het dialoogvenster Relaties beheren op Sluiten.

We moeten er eerlijkheidshalve wel even bij zeggen dat u deze relatie op de moeilijke manier hebt gemaakt. U had gewoon Autodetectie in het dialoogvenster Relaties beheren kunnen selecteren. Autodetectie had de relatie automatisch voor u gemaakt bij het laden van de gegevens als beide kolommen dezelfde naam hadden gehad. Maar daar zit natuurlijk geen uitdaging in.

Kijk nu nog eens naar de tabel in het rapportcanvas.

Gemaakte relatie met Priority en Hours

Dat ziet er een stuk beter uit, toch?

Als we uren optellen per Priority, zoekt Power BI Desktop naar elk exemplaar van de unieke kleurwaarden in de opzoektabel CompanyProject en vervolgens naar elk exemplaar van die waarden in de tabel ProjectHours, waarna het totale aantal voor elke unieke waarde wordt berekend.

Dat was makkelijk. Met Autodetectie gaat het waarschijnlijk nog veel eenvoudiger.

Inzicht in extra opties

Wanneer een relatie is gemaakt, met Autodetectie of handmatig, configureert Power BI Desktop automatisch extra opties op basis van de gegevens in de tabellen. Deze extra relatieopties bevinden zich in het laagste gedeelte van de dialoogvensters Relatie maken en Relatie bewerken.

Relatieopties

Deze opties worden meestal automatisch door Power BI ingesteld; u hoeft hier niets aan te veranderen. Er zijn echter enkele situaties mogelijk waarin u deze opties zelf wilt configureren.

Relaties automatisch bijwerken

U kunt instellen hoe Power BI relaties in uw rapporten en modellen behandelt en automatisch aanpast. Selecteer hiervoor Bestand>Opties en instellingen>Opties in Power BI Desktop en selecteer vervolgens Gegevens laden in het linkerdeelvenster. U ziet nu de opties voor Relaties.

Opties voor relaties

Er zijn drie opties die kunnen worden geselecteerd en ingeschakeld:

  • Relaties uit gegevensbronnen importeren tijdens de eerste keer laden: Deze optie is standaard ingeschakeld. Wanneer de optie is ingeschakeld, controleert Power BI op relaties die zijn gedefinieerd in uw gegevensbron, zoals relaties tussen een refererende sleutel en een primaire sleutel in uw datawarehouse. Als dergelijke relaties bestaan, worden deze gespiegeld in het Power BI-gegevensmodel wanneer u gegevens voor het eerst laadt. Met deze optie kunt u snel aan de slag met uw model en hoeft u deze relaties niet eerst zelf te vinden of te definiëren.

  • Relaties bijwerken of verwijderen tijdens het vernieuwen van gegevens: Deze optie is standaard uitgeschakeld. Als u de optie inschakelt, controleert Power BI op wijzigingen in gegevensbronrelaties wanneer uw gegevensset wordt vernieuwd. Als deze relaties zijn gewijzigd of worden verwijderd, spiegelt Power BI deze wijzigingen in het eigen gegevensmodel, door relaties bij te werken of te verwijderen.

    Waarschuwing

    Als u beveiliging op rijniveau gebruikt die afhankelijk is van de gedefinieerde relaties, wordt afgeraden deze optie te selecteren. Als u een relatie verwijdert die nodig is voor uw instellingen voor beveiliging op rijniveau, wordt uw model mogelijk minder veilig.

  • Nieuwe relaties automatisch detecteren na het laden van gegevens: Deze optie wordt beschreven in Autodetectie tijdens laden.

Toekomstige updates voor de gegevens vereisen een andere kardinaliteit

Power BI Desktop kan normaal gesproken automatisch de beste kardinaliteit voor de relatie bepalen. Als u de automatische instelling wilt overschrijven omdat u weet dat de gegevens in de toekomst veranderen, kunt u deze wijzigen in het besturingselement Kardinaliteit. Hieronder volgt een voorbeeld waarin een andere kardinaliteit moet worden geselecteerd.

De tabel CompanyProjectPriority bevat een lijst met alle bedrijfsprojecten en de bijbehorende prioriteit. De tabel ProjectBudget bevat de projecten waarvoor een budget is goedgekeurd.

CompanyProjectPriority

ProjName Priority
Blauw A
Rood B
Groen C
Geel C
Paars B
Oranje C

ProjectBudget

Approved Projects BudgetAllocation AllocationDate
Blauw 40,000 12/1/2012
Rood 100,000 12/1/2012
Groen 50.000 12/1/2012

Als we een relatie maken tussen de kolom Approved Projects in de tabel ProjectBudget en de kolom ProjectName in de tabel CompanyProjectPriority, stelt Power BI automatisch Kardinaliteit in op Een-op-een (1:1) en Richting voor kruislings filteren op Beide.

Relatie tussen tabelkolommen maken

Power BI maakt deze instellingen omdat volgens Power BI Desktop dit de beste combinatie van de twee tabellen is:

ProjName Priority BudgetAllocation AllocationDate
Blauw A 40,000 12/1/2012
Rood B 100.000 12/1/2012
Groen C 50,000 12/1/2012
Geel C

Paars B

Oranje C

Er is een een-op-een-relatie tussen de twee tabellen omdat er geen herhaalde waarden zijn in de kolom ProjName van de gecombineerde tabel. De kolom ProjName is uniek, omdat elke waarde slechts één keer voorkomt. Daardoor kunnen de rijen van de twee tabellen rechtstreeks zonder duplicatie worden gecombineerd.

Maar stel dat u weet dat de gegevens worden gewijzigd de volgende keer dat u ze vernieuwd. Een vernieuwde versie van de tabel ProjectBudget bevat nu extra rijen voor de blauwe en rode projecten:

ProjectBudget

Approved Projects BudgetAllocation AllocationDate
Blauw 40,000 12/1/2012
Rood 100,000 12/1/2012
Groen 50.000 12/1/2012
Blauw 80,000 6/1/2013
Rood 90,000 6/1/2013

De beste combinatie van de twee tabellen ziet er met deze extra rijen nu als volgt uit:

ProjName Priority BudgetAllocation AllocationDate
Blauw A 40,000 12/1/2012
Rood B 100.000 12/1/2012
Groen C 50,000 12/1/2012
Geel C

Paars B

Oranje C

Blauw A 80000 6/1/2013
Rood B 90000 6/1/2013

In deze nieuwe gecombineerde tabel bevat de kolom ProjName herhaalde waarden. De twee oorspronkelijke tabellen hebben geen één-op-éénrelatie meer zodra de tabel wordt vernieuwd. In dit geval, omdat we weten dat deze toekomstige updates ervoor zorgen dat de kolom ProjName duplicaten heeft, willen we de kardinaliteit instellen op Veel op één (*:1), met de vele kant op ProjectBudget en de ene kant op CompanyProjectPriority.

Richting voor kruislings filteren aanpassen voor een complexe reeks tabellen en relaties

Voor de meeste relaties wordt de richting voor kruislings filteren ingesteld op Beide. Er zijn echter enkele minder gebruikelijke gevallen waarin u van de standaardinstelling wilt afwijken, bijvoorbeeld als u een model vanuit een oudere versie van Power Pivot wilt importeren, waarbij elke relatie op één richting is ingesteld.

Met de instelling Beide kan Power BI Desktop alle aspecten van de gekoppelde tabellen behandelen alsof ze bij één tabel horen. Er zijn echter enkele situaties waarin Power BI Desktop de kruisfilterrichting van een relatie niet op Beide kan instellen en tegelijkertijd een ondubbelzinnige set standaardinstellingen kan bieden voor rapportagedoeleinden. Als de kruisfilterrichting van een relatie niet op Beide wordt ingesteld, komt dit meestal omdat er anders dubbelzinnigheid zou ontstaan. Als de standaardinstelling voor kruislings filteren niet handig is, kunt u het filteren op een bepaalde tabel of op Beide instellen.

Kruislings filteren in één richting werkt in de meeste gevallen. Als u een model uit Power Pivot in Excel 2013 of eerder hebt geïmporteerd, worden alle relaties op één richting ingesteld. Eén richting betekent dat filterkeuzes in gekoppelde tabellen worden toegepast op de tabel waarin waarden worden samengevoegd. Kruislings filteren kan soms lastig te begrijpen zijn. Daarom volgt hier een voorbeeld.

Als u kruislings filteren in één richting gebruikt, kunt u bij een rapport met een overzicht van de projecturen ervoor kiezen om samen te vatten (of te filteren) op de tabel CompanyProject en de kolom Priority of de tabel CompanyEmployee en de kolom City. U kunt echter niet het aantal werknemers per project tellen (een minder gebruikelijke opdracht). U krijgt een kolom met waarden die allemaal hetzelfde zijn. In het volgende voorbeeld is de kruisfilterrichting van beide relaties ingesteld op één richting: in de richting van de tabel ProjectHours. Bij Waarden is het veld Project ingesteld op Aantal:

Richting voor kruislings filteren

De filterspecificatie wordt overgebracht van CompanyProject naar ProjectHours (zoals weergegeven in de volgende afbeelding), maar niet naar CompanyEmployee.

Voorbeeld van kruislings filteren

Als u de kruisfilterrichting echter instelt op Beide, werkt het wel. De instelling Beide zorgt ervoor dat de filterspecificatie naar CompanyEmployee kan worden overgebracht.

Overdracht van filterspecificatie

Wanneer de kruisfilterrichting op Beide is ingesteld, wordt het rapport correct weergegeven:

Richting voor kruislings filteren is ingesteld op Beide

Kruislings filteren in beide richtingen is geschikt voor een patroon van relaties tussen tabellen zoals het bovenstaande patroon. Dit schema wordt meestal een stervormig schema genoemd en ziet er als volgt uit:

Kruislings filteren in beide richtingen in een stervormig schema

De kruisfilterrichting werkt niet goed met een meer algemeen patroon dat vaak geldt voor databases, zoals in dit diagram:

Kruislings filteren in beide richtingen in een databasepatroon

Als u een dergelijk tabelpatroon hebt, met lussen, kan kruislings filteren een reeks dubbelzinnige relaties vormen. Als u bijvoorbeeld een veld van TableX optelt en vervolgens filtert op een veld in TableY, is het niet duidelijk hoe het filter moet worden toegepast: via de bovenste of onderste tabel. Een veelvoorkomend voorbeeld voor dit type patroon is wanneer TableX een verkooptabel is met actuele gegevens en TableY budgetgegevens bevat. In dat geval zijn de tabellen in het midden opzoektabellen die door beide tabellen worden gebruikt, zoals Division of Region.

Net als bij actieve/inactieve relaties staat Power BI Desktop niet toe dat een relatie wordt ingesteld op Beide als er daardoor dubbelzinnigheid in rapporten ontstaat. U kunt deze situatie op verschillende manieren afhandelen. Dit zijn de twee meestgebruikte manieren:

  • Verwijder relaties of stel ze in als inactief om dubbelzinnigheid te verminderen. Vervolgens kunt u kruislings filteren voor een relatie mogelijk op Beide instellen.
  • Haal een tabel twee keer op (de tweede keer met een andere naam) om lussen te voorkomen. Hierdoor wordt het patroon van relaties vergelijkbaar met een stervormig schema. Bij een stervormig schema kunnen alle relaties op Beide worden ingesteld.

Verkeerde actieve relatie

Wanneer Power BI Desktop automatisch relaties maakt, wordt er soms meer dan één relatie tussen twee tabellen aangetroffen. In een dergelijk geval wordt maar een van de relaties als actief ingesteld. De actieve relatie fungeert als de standaardrelatie, zodat Power BI Desktop automatisch een visualisatie voor u kan maken wanneer u velden uit twee verschillende tabellen kiest. In sommige gevallen is de automatisch geselecteerde relatie echter de verkeerde. Gebruik het dialoogvenster Relaties beheren om een relatie als actief of inactief in te stellen. U kunt ook de actieve relatie instellen in het dialoogvenster Relatie bewerken.

Power BI Desktop staat slechts één actieve relatie tegelijk tussen twee tabellen toe om ervoor te zorgen dat er een standaardrelatie is. Daarom moet u eerst de huidige relatie als inactief instellen en kunt u vervolgens de gewenste relatie op actief instellen.

Hier volgt een voorbeeld. De eerste tabel is ProjectTickets en de tweede tabel is EmployeeRole.

ProjectTickets

Ticket OpenedBy SubmittedBy Hours Project DateSubmit
1001 Perham, Tom Brewer, Alan 22 Blauw 1/1/2013
1002 Roman, Daniel Brewer, Alan 26 Rood 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Geel 12/4/2012
1004 Perham, Tom Brewer, Alan 13 Oranje 1/2/2012
1005 Roman, Daniel Bowen, Eli 29 Paars 01-10-2013
1006 Roth, Daniel Bento, Nuno 35 Groen 2/1/2013
1007 Roth, Daniel Hamilton, David 10 Geel 01-10-2013
1008 Perham, Tom Han, Mu 28 Oranje 1/2/2012
1009 Roman, Daniel Ito, Shu 22 Paars 2/1/2013
1010 Roth, Daniel Bowen, Eli 28 Groen 10/1/2013
1011 Perham, Tom Bowen, Eli 9 Blauw 10/15/2013

EmployeeRole

Employee Role
Bento, Nuno Project Manager
Bowen, Eli Project Lead
Brewer, Alan Project Manager
Hamilton, David Project Lead
Han, Mu Project Lead
Ito, Shu Project Lead
Perham, Tom Project Sponsor
Roman, Daniel Project Sponsor
Roth, Daniel Project Sponsor

Er bestaan hier eigenlijk twee relaties:

  • Tussen Employee in de tabel EmployeeRole en SubmittedBy in de tabel ProjectTickets.
  • Tussen OpenedBy in de tabel ProjectTickets en Employee in de tabel EmployeeRole.

Voorbeeld van twee relaties

Als we beide relaties aan het model toevoegen (OpenedBy eerst), wordt in het dialoogvenster Relaties beheren weergegeven dat OpenedBy actief is:

OpenedBy actief in het dialoogvenster Relaties beheren

Als we vervolgens een rapport maken dat de velden Role en Employee uit EmployeeRole gebruikt, en het veld Hours uit ProjectTickets in een tabelvisualisatie in het rapportcanvas, worden er alleen projectsponsoren weergegeven omdat zij de enigen zijn die een projectticket hebben geopend.

De geselecteerde velden Employee, Role en Hours

We kunnen de actieve relatie wijzigen en SubmittedBy in plaats van OpenedBy ophalen. Schakel in Relaties beheren de relatie van ProjectTickets(OpenedBy) naar EmployeeRole(Employee) uit en schakel vervolgens de relatie EmployeeRole(Employee) naar Project Tickets(SubmittedBy) in.

Actieve relatie wijzigen in het dialoogvenster Relatie beheren

Al uw relaties bekijken in de weergave Relatie

Soms heeft uw model meerdere tabellen en complexe relaties tussen deze tabellen. De weergave Relatie in Power BI Desktop bevat alle relaties in het model, de bijbehorende richting en de kardinaliteit in een eenvoudig en aanpasbaar diagram.

Zie Werken met de relatieweergave in Power BI Desktop voor meer informatie.

Problemen oplossen

Deze sectie bevat richtlijnen en informatie over het oplossen van problemen bij het werken met relaties in Power BI.

Relaties tussen velden kunnen niet worden bepaald

Power BI probeert relevante gegevens in visuals weer te geven door de relaties van het gebruikte model uit te stellen. Soms zijn dergelijke deducties niet duidelijk, en u bent misschien verrast om een fout in uw visual te zien, wat aangeeft dat er geen relatie is tussen bepaalde kolommen.

Om uit te leggen hoe Power BI bepaalt of velden zijn gerelateerd, gaan we een voorbeeldmodel gebruiken om een aantal scenario's in de volgende secties te illustreren. In de volgende afbeelding ziet u het voorbeeldmodel dat we in de voorbeeldscenario's gaan gebruiken.

Voorbeeldmodel dat wordt gebruikt in scenario's voor probleemoplossing

Scenario 1: Traditioneel stervormig schema en geen metingsbeperking opgegeven. Naar het voorbeeldmodel in de vorige afbeelding kijken we eerst naar de rechterhelft van de afbeeldingen met de leveranciers - Aankopen - Producttabellen . Dit is een traditioneel stervormig schema met de feitentabel (aankopen) en twee dimensietabellen (Product en Leverancier). De relatie tussen de dimensietabellen en de feitentabel is 1 tot Veel (één product komt overeen met veel aankopen, één leverancier komt overeen met veel aankopen). In dit type schema kunnen we vragen beantwoorden zoals Welke verkopen hebben we voor product X? en welke verkopen hebben we voor Leverancier Y? en Welke producten verkoopt Vendor Y?

Als we producten en leveranciers willen correleren, kunnen we dit doen door de tabel Aankopen te bekijken om te zien of er een vermelding is met hetzelfde product en dezelfde leverancier. Een voorbeeldquery kan er als volgt uitzien:

Correlate Product[Color] with Vendor[Name] where CountRows(Purchases)>0

Dit where CountRows(Purchases)>0 is een impliciete beperking die Power BI zou toevoegen om ervoor te zorgen dat relevante gegevens worden geretourneerd. Door deze correlatie via de tabel Aankopen te doen, kunnen we koppelingen van Product-Vendor retourneren die ten minste één vermelding in een feitentabel hebben, koppelingen die zinvol zijn vanuit het perspectief van de gegevens. U kunt verwachten dat alle niet-onzinnige combinaties van Product-Vendor waarvoor nooit een verkoop is geweest (die nutteloos zou zijn voor analyse) niet worden weergegeven.

Scenario 2: Er is een traditioneel sterschema en een metingbeperking opgegeven. Als de gebruiker in het vorige voorbeeld in scenario 1 een beperking biedt in de vorm van een samengevatte kolom (som/gemiddelde/aantal aankopen, bijvoorbeeld) of een modelmeting (uniek aantal Van AzureID), kan Power BI een query genereren in de vorm van het volgende:

Correlate Product[Color] with Vendor[Name] where MeasureConstraint is not blank

In dat geval probeert Power BI combinaties te retourneren die zinvolle waarden hebben voor de beperking die de gebruiker heeft opgegeven (niet-leeg). Power BI hoeft ook geen eigen impliciete beperking van CountRows(Purchases)>0 toe te voegen, zoals wat er in het vorige scenario 1 is gedaan, omdat de beperking die door de gebruiker is opgegeven, voldoende is.

Scenario 3: Niet-stervormig schema en geen beperking voor meting opgegeven. In dit scenario richten we ons op het middelpunt van het model, waar we de tabellen Sales - Product - Aankopen hebben, waarbij we één dimensietabel (Product) en twee Feitentabellen (Verkoop, Aankopen) hebben. Omdat dit geen stervormig schema is, kunnen we niet dezelfde soort vragen beantwoorden als in Scenario 1. Stel dat we proberen aankopen en verkopen te correleren; omdat aankopen een veel-op-1-relatie met Product hebben en Product een 1-op-Veel-relatie heeft met Verkoop, Verkoop en Aankopen zijn indirect Veel op Veel. We kunnen één product koppelen aan veel aankopen en één product aan veel verkopen, maar we kunnen niet één verkoop koppelen aan veel aankopen of omgekeerd. We kunnen alleen veel aankopen koppelen aan veel verkopen.

Als we in dit geval Purchase[VenID] en Sales[CustID] in een visual proberen te combineren, heeft Power BI geen concrete beperking die deze kan toepassen, vanwege de veel-op-veel-relatie tussen deze tabellen. Hoewel er aangepaste beperkingen (niet noodzakelijkerwijs voortvloeien uit de relaties die in het model zijn ingesteld) die voor verschillende scenario's kunnen worden toegepast, kan Power BI niet alleen een standaardbeperking afleiden op basis van de relaties. Als Power BI probeert alle combinaties van de twee tabellen te retourneren, wordt er een grote cross join gemaakt en worden niet-relevante gegevens geretourneerd. In plaats hiervan genereert Power BI een fout in de visual, zoals het volgende.

Foutdialoogvenster wanneer relatie niet kan worden afgeleid

Scenario 4: Er is een niet-stervormig schema en een metingbeperking opgegeven. Als we het voorbeeld uit scenario 3 gebruiken en een door de gebruiker opgegeven beperking toevoegen in de vorm van een samengevatte kolom (bijvoorbeeld Aantal producten[ProdID] of een modelmeting (Sales[Total Qty]) kan Power BI een query genereren in de vorm van Aankoop correleren[VenID] en Sales[CustID] waarbij MeasureConstraint niet leeg is.

In dit geval respecteert Power BI de beperking van de gebruiker als de enige beperking die Power BI moet toepassen en retourneert u de combinaties die er niet-lege waarden voor produceren. De gebruiker heeft Power BI naar het gewenste scenario geleid en Power BI past de richtlijnen toe.

Scenario 5: Wanneer een metingsbeperking wordt opgegeven, maar deze gedeeltelijk is gerelateerd aan de kolommen. Er zijn gevallen waarin de metingsbeperking van de gebruiker niet volledig is gerelateerd aan alle kolommen in de visual. Een modelmeting heeft altijd betrekking op alles; Power BI behandelt dit als een zwart vak wanneer wordt geprobeerd om relaties tussen kolommen in de visual te vinden en ervan uit te gaan dat de gebruiker weet wat ze doen door deze te gebruiken. Samengevatte kolommen in de vorm van Som, Gemiddelde en vergelijkbare samenvattingen die zijn gekozen uit de gebruikersinterface, kunnen echter alleen betrekking hebben op een subset van de kolommen/tabellen die in de visual worden gebruikt op basis van de relaties van de tabel waartoe die kolom behoort. Als zodanig is de beperking van toepassing op bepaalde koppelingen van kolommen, maar niet op alle, in welk geval Power BI probeert standaardbeperkingen te vinden die kunnen worden toegepast op de kolommen die niet zijn gerelateerd door de door de gebruiker opgegeven beperking (zoals in scenario 1). Als Power BI er geen kan vinden, wordt de volgende fout geretourneerd.

Foutdialoogvenster wanneer standaardbeperkingen in Power BI niet kunnen worden gevonden

Relatiefouten oplossen

Wanneer u de fout Kan geen relaties tussen de veldenfout zien , kunt u de volgende stappen uitvoeren om de fout op te lossen:

  1. Controleer uw model. Is deze op de juiste manier ingesteld voor de typen vragen die u wilt beantwoorden vanuit uw analyse? Kunt u enkele relaties tussen tabellen wijzigen? Kunt u voorkomen dat u een indirecte veel-op-veel-maken?

    U kunt het omgekeerde V-shapeschema converteren naar twee tabellen en een directe veel-op-veel-relatie gebruiken, zoals beschreven in veel-veel-relaties toepassen in Power BI Desktop.

  2. Voeg een beperking toe aan de visual in de vorm van een samengevatte kolom of een modelmeting.

  3. Als er een samengevatte kolom wordt toegevoegd en er nog steeds een fout optreedt, kunt u overwegen een modelmeting te gebruiken.

Volgende stappen

Zie de volgende artikelen voor meer informatie over modellen en relaties: