Relaties maken en beheren in Power BI DesktopCreate and manage relationships in Power BI Desktop

Wanneer u meerdere tabellen importeert, gaat u waarschijnlijk analyses uitvoeren met gegevens uit de tabellen.When you import multiple tables, chances are you'll do some analysis using data from all those tables. Relaties tussen deze tabellen zijn nodig om nauwkeurig resultaten te berekenen en de juiste gegevens in uw rapporten weer te geven.Relationships between those tables are necessary to accurately calculate results and display the correct information in your reports. Met Power BI Desktop is het maken van deze relaties eenvoudig.Power BI Desktop makes creating those relationships easy. In de meeste gevallen hoeft u niets te doen. De functie Autodetectie doet het voor u.In fact, in most cases you won’t have to do anything, the autodetect feature does it for you. In sommige gevallen moet u echter mogelijk zelf relaties maken of moet u enkele wijzigingen in een relatie aanbrengen.However, sometimes you might have to create relationships yourself, or need to make changes to a relationship. Hoe dan ook is het belangrijk om relaties in Power BI Desktop te begrijpen en te weten hoe u ze maakt en bewerkt.Either way, it’s important to understand relationships in Power BI Desktop and how to create and edit them.

Autodetectie tijdens ladenAutodetect during load

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.If you query two or more tables at the same time, when the data is loaded, Power BI Desktop attempts to find and create relationships for you. De relatieopties Kardinaliteit, Richting voor kruislings filteren en Deze relatie activeren zijn automatisch ingesteld.The relationship options Cardinality, Cross filter direction, and Make this relationship active are automatically set. Power BI Desktop kijkt naar kolomnamen in de tabellen waarop u query's toepast, om te bepalen of er mogelijke relaties zijn.Power BI Desktop looks at column names in the tables you're querying to determine if there are any potential relationships. Als dat het geval is, worden de relaties automatisch gemaakt.If there are, those relationships are created automatically. Als Power BI Desktop niet met grote zekerheid kan vaststellen of er een overeenkomst is, wordt er geen relatie gemaakt.If Power BI Desktop can't determine with a high level of confidence there's a match, it doesn't create the relationship. U kunt echter nog steeds het dialoogvenster Relaties beheren gebruiken om handmatig relaties te maken of te bewerken.However, you can still use the Manage relationships dialog box to manually create or edit relationships.

Een relatie maken met automatische detectieCreate a relationship with autodetect

Selecteer op het tabblad Start de optie Relaties beheren > Autodetectie.On the Home tab, select Manage Relationships > Autodetect.

Een relatie maken met automatische detectie

Handmatig een relatie makenCreate a relationship manually

  1. Selecteer op het tabblad Start de optie Relaties beheren > Nieuw.On the Home tab, select Manage Relationships > New.

  2. Selecteer in het dialoogvenster Relatie maken een tabel in de vervolgkeuzelijst voor de eerste tabel.In the Create relationship dialog box, in the first table drop-down list, select a table. Selecteer de kolom die u in de relatie wilt gebruiken.Select the column you want to use in the relationship.

  3. Selecteer in de vervolgkeuzelijst voor de tweede tabel de andere tabel die u voor de relatie wilt gebruiken.In the second table drop-down list, select the other table you want in the relationship. Selecteer de andere kolom die u wilt gebruiken en klik vervolgens op OK.Select the other column you want to use, and then elect 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.By default, Power BI Desktop automatically configures the options Cardinality (direction), Cross filter direction, and Make this relationship active for your new relationship. U kunt deze instellingen indien nodig wijzigen.However, you can change these settings if necessary. Zie Inzicht in extra opties voor meer informatie.For more information, see Understanding additional options.

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.If none of the tables selected for the relationship has unique values, you'll see the following error: One of the columns must have unique values. 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.At least one table in a relationship must have a distinct, unique list of key values, which is a common requirement for all relational database technologies.

Als deze fout optreedt, zijn er verschillende manieren om het probleem te verhelpen:If you encounter that error, there are a couple ways to fix the issue:

  • Gebruik Dubbele waarden verwijderen om een kolom met unieke waarden te maken.Use Remove Duplicates to create a column with unique values. 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.The drawback to this approach is that you might lose information when duplicate rows are removed; often a key (row) is duplicated for good reason.
  • 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.Add an intermediary table made of the list of distinct key values to the model, which will then be linked to both original columns in the relationship.

Zie dit blogbericht voor meer informatie.For more information, see this blog post.

Een relatie bewerkenEdit a relationship

  1. Selecteer op het tabblad Start de optie Relaties beheren.On the Home tab, select Manage Relationships.

  2. Selecteer in het dialoogvenster Relaties beheren de relatie en selecteer vervolgens Bewerken.In the Manage relationships dialog box, select the relationship, then select Edit.

Extra opties configurerenConfigure additional options

Wanneer u een relatie maakt of bewerkt, kunt u extra opties configureren.When you create or edit a relationship, you can configure additional options. 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.By default, Power BI Desktop automatically configures additional options based on its best guess, which can be different for each relationship based on the data in the columns.

KardinaliteitCardinality

De optie Kardinaliteit kan een van de volgende instellingen hebben:The Cardinality option can have one of the following settings:

Veel-op-een (*:1) : een veel-op-een-relatie is het meest voorkomende standaardtype relatie.Many to one (*:1): A many-to-one relationship is the most common, default type of realtionship. 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.It means the column in a given table can have more than one instance of a value, and the other related table, often know as the lookup table, has only one instance of a value.

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.One to one (1:1): In a one-to-one relationship, the column in one table has only one instance of a particular value, and the other related table has only one instance of a particular value.

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.One to many (1:*): In a one-to-many relationship, the column in one table has only one instance of a particular value, and the other related table can have more than one instance of a value.

Veel-op-veel (*:*) : bij samengestelde modellen kunt u een veel-op-veel-relatie tussen tabellen tot stand brengen, waardoor de vereisten voor unieke waarden in tabellen niet meer gelden.Many to many (*:*): With composite models, you can establish a many-to-many relationship between tables, which removes requirements for unique values in tables. Ook zijn eerdere tijdelijke oplossingen niet meer nodig, zoals de introductie van nieuwe tabellen om relaties tot stand te brengen.It also removes previous workarounds, such as introducing new tables only to establish relationships. Zie Relaties met een veel-op-veel-kardinaliteit voor meer informatie.For more information, see Relationships with a many-many cardinality.

Zie Inzicht in extra opties voor meer informatie over wanneer de kardinaliteit moet worden gewijzigd.For more information about when to change cardinality, see Understanding additional options.

KruisfilterrichtingCross filter direction

De optie Richting voor kruislings filteren kan de volgende instellingen hebben:The Cross filter direction option can have one the following settings:

Beide: voor filterdoeleinden worden beide tabellen behandeld alsof ze één tabel vormen.Both: For filtering purposes, both tables are treated as if they're a single table. De instelling Beide werkt goed bij één tabel met een aantal opzoektabellen eromheen.The Both setting works well with a single table that has a number of lookup tables that surround it. Een voorbeeld is een tabel van de actuele verkoop met een opzoektabel voor afdelingen.An example is a sales actuals table with a lookup table for its department. Deze configuratie wordt vaak een configuratie met een stervormig schema genoemd (een centrale tabel met verschillende opzoektabellen).This configuration is often called a star schema configuration (a central table with several lookup tables). Als u twee of meer tabellen hebt die ook opzoektabellen hebben (met een aantal gemeenschappelijke opzoektabellen), kunt u de instelling Beide beter niet gebruiken.However, if you have two or more tables that also have lookup tables (with some in common) then you wouldn't want to use the Both setting. We gaan door met het vorige voorbeeld. Stel dat u ook een tabel voor verkoopbudget hebt die het beoogde budget voor elke afdeling bevat.To continue the previous example, in this case, you also have a budget sales table that records target budget for each department. Daarnaast is de afdelingstabel gekoppeld aan de verkoop- en de budgettabel.And, the department table is connected to both the sales and the budget table. Vermijd de instelling Beide voor dit type configuratie.Avoid the Both setting for this kind of configuration.

Enkel: de meestgebruikte standaardrichting. Hierbij worden filterkeuzen in gekoppelde tabellen toegepast op de tabel waarin de waarden worden samengevoegd.Single: The most common, default direction, which means filtering choices in connected tables work on the table where values are being aggregated. Als u een Power Pivot in een Excel 2013-gegevensmodel of een eerder gegevensmodel importeert, hebben alle relaties één richting.If you import a Power Pivot in Excel 2013 or earlier data model, all relationships will have a single direction.

Zie Inzicht in extra opties voor meer informatie over wanneer de kruisfilterrichting moet worden gewijzigd.For more information about when to change cross filter direction, see Understanding additional options.

Deze relatie activerenMake this relationship active

Wanneer deze optie is ingeschakeld, fungeert de relatie als de actieve standaardrelatie.When checked, the relationship serves as the active, default relationship. 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.In cases where there is more than one relationship between two tables, the active relationship provides a way for Power BI Desktop to automatically create visualizations that include both tables.

Zie Inzicht in extra opties voor meer informatie over wanneer een bepaalde relatie moet worden geactiveerd.For more information about when to make a particular relationship active, see Understanding additional options.

Inzicht in relatiesUnderstanding relationships

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.Once you've connected two tables together with a relationship, you can work with the data in both tables as if they were a single table, freeing you from having to worry about relationship details, or flattening those tables into a single table before importing them. In veel gevallen kan Power BI Desktop automatisch relaties voor u maken.In many situations, Power BI Desktop can automatically create relationships for you. 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.However, if Power BI Desktop can’t determine with a high-degree of certainty that a relationship between two tables should exist, it doesn't automatically create the relationship. In dat geval moet u dit doen.In that case, you must do so.

We doen even een korte zelfstudie om meer inzicht te krijgen in hoe relaties werken in Power BI Desktop.Let’s go through a quick tutorial, to better show you how relationships work in Power BI Desktop.

Tip

U kunt deze les zelf afronden:You can complete this lesson yourself:

  1. Kopieer de volgende tabel ProjectHours naar een Excel-werkblad (behalve de titel), selecteer alle cellen en selecteer vervolgens Invoegen > Tabel.Copy the following ProjectHours table into an Excel worksheet (excluding the title), select all of the cells, and then select Insert > Table.
  2. Klik in het dialoogvenster Tabel maken op OK.In the Create Table dialog box, select OK.
  3. Selecteer een tabelcel, selecteer Tabelontwerp > Tabelnaam en voer vervolgens ProjectHours in.Select any table cell, select Table Design > Table Name, and then enter ProjectHours.
  4. Doe hetzelfde voor de tabel CompanyProject.Do the same for the CompanyProject table.
  5. Importeer de gegevens met behulp van Gegevens ophalen in Power BI Desktop.Import the data by using Get Data in Power BI Desktop. Selecteer de twee tabellen als gegevensbron en selecteer vervolgens Laden.Select the two tables as a data source, and then select Load.

De eerste tabel, ProjectHours, is een overzicht van werktickets met het aantal uren dat een persoon aan een bepaald project heeft gewerkt.The first table, ProjectHours, is a record of work tickets that record the number of hours a person has worked on a particular project.

ProjectHoursProjectHours

TicketTicket SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Brewer, AlanBrewer, Alan 2222 BlauwBlue 1/1/20131/1/2013
10021002 Brewer, AlanBrewer, Alan 2626 RoodRed 2/1/20132/1/2013
10031003 Ito, ShuIto, Shu 3434 GeelYellow 12/4/201212/4/2012
10041004 Brewer, AlanBrewer, Alan 1313 OranjeOrange 1/2/20121/2/2012
10051005 Bowen, EliBowen, Eli 2929 PaarsPurple 01-10-201310/1/2013
10061006 Bento, NunoBento, Nuno 3535 GroenGreen 2/1/20132/1/2013
10071007 Hamilton, DavidHamilton, David 1010 GeelYellow 01-10-201310/1/2013
10081008 Han, MuHan, Mu 2828 OranjeOrange 1/2/20121/2/2012
10091009 Ito, ShuIto, Shu 2222 PaarsPurple 2/1/20132/1/2013
10101010 Bowen, EliBowen, Eli 2828 GroenGreen 10/1/201310/1/2013
10111011 Bowen, EliBowen, Eli 99 BlauwBlue 10/15/201310/15/2013

Deze tweede tabel, CompanyProject, is een lijst met projecten met een toegewezen prioriteit: A, B of C.This second table, CompanyProject, is a list of projects with an assigned priority: A, B, or C.

CompanyProjectCompanyProject

ProjNameProjName PriorityPriority
BlauwBlue AA
RoodRed BB
GroenGreen CC
GeelYellow CC
PaarsPurple BB
OranjeOrange CC

U ziet dat elke tabel een projectkolom bevat.Notice that each table has a project column. Elke kolom heeft een net iets andere naam, maar de waarden lijken hetzelfde te zijn.Each is named slightly different, but the values look like they’re the same. Dat is belangrijk en we komen er zo op terug.That’s important, and we’ll get back to it in soon.

Nu we de twee tabellen in een model hebben geïmporteerd, gaan we een rapport maken.Now that we have our two tables imported into a model, let’s create a report. 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.The first thing we want to get is the number of hours submitted by project priority, so we select Priority and Hours from the Fields pane.

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.If we look at our table in the report canvas, you’ll see the number of hours is 256 for each project, which is also the total. Dit getal is duidelijk niet juist.Clearly this number isn’t correct. Hoe kan dat?Why? 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.It’s because we can’t calculate a sum total of values from one table (Hours in the Project table), sliced by values in another table (Priority in the CompanyProject table) without a relationship between these two tables.

Daarom gaan we een relatie tussen deze twee tabellen maken.So, let’s create a relationship between these two tables.

Weet u nog, die kolommen in beide tabellen met een projectnaam, maar met waarden die op elkaar lijken?Remember those columns we saw in both tables with a project name, but with values that look alike? We gebruiken deze twee kolommen om een relatie tussen de tabellen te maken.We'll use these two columns to create a relationship between our tables.

Waarom deze kolommen?Why these columns? Als we kijken naar de kolom Project in de tabel ProjectHours, zien we waarden zoals blauw, rood, geel, oranje enzovoort.Well, if we look at the Project column in the ProjectHours table, we see values like Blue, Red, Yellow, Orange, and so on. Er zijn zelfs meerdere rijen die dezelfde waarde hebben.In fact, we see several rows that have the same value. We hebben veel kleurwaarden voor Project.In effect, we have many color values for Project.

In de kolom ProjName in de tabel CompanyProject zien we dat er maar één van elk van de kleurwaarden voor de projectnaam is.If we look at the ProjName column in the CompanyProject table, we see there’s only one of each of the color values for the project name. Elke kleurwaarde in deze tabel is uniek, en dat is belangrijk, omdat we een relatie tussen deze twee tabellen kunnen maken.Each color value in this table is unique, and that’s important, because we can create a relationship between these two tables. In dit geval een veel-op-een-relatie.In this case, a many-to-one relationship. Bij een veel-op-een-relatie moet ten minste één kolom in een van de tabellen unieke waarden bevatten.In a many-to-one relationship, at least one column in one of the tables must contain unique values. Er zijn enkele aanvullende opties voor sommige relaties die we later bekijken.There are some additional options for some relationships, which we'll look at later. We gaan nu een relatie maken tussen de projectkolommen in beide tabellen.For now, let’s create a relationship between the project columns in each of our two tables.

De nieuwe relatie makenTo create the new relationship

  1. Selecteer Relaties beheren op het tabblad Start.Select Manage Relationships from the Home tab.

  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.In Manage relationships, select New to open the Create relationship dialog box, where we can select the tables, columns, and any additional settings we want for our relationship.

  3. Selecteer in de eerste vervolgkeuzelijst ProjectHours als de eerste tabel en selecteer vervolgens de kolom Project.In the first drop-down list, select ProjectHours as the first table, then select the Project column. Deze zijde is de veel-zijde van de relatie.This side is the many side of our relationship.

  4. In de tweede vervolgkeuzelijst is CompanyProject vooraf geselecteerd als de tweede tabel.In the second drop-down list, CompanyProject is preselected as the second table. Selecteer de kolom ProjName.Select the ProjName column. Deze zijde is de een-zijde van de relatie.This side is the one side of our relationship.

  5. Accepteer de standaardwaarden voor de relatieopties en selecteer OK.Accept the defaults for the relationship options, and then select OK.

    Dialoogvenster Relatie maken

  6. Klik in het dialoogvenster Relaties beheren op Sluiten.In the Manage relationships dialog box, select Close.

We moeten er eerlijkheidshalve wel even bij zeggen dat u deze relatie op de moeilijke manier hebt gemaakt.In the interest of full disclosure, you just created this relationship the hard way. U had gewoon Autodetectie in het dialoogvenster Relaties beheren kunnen selecteren.You could have just selected Autodetect in the Manage relationships dialog box. Autodetectie had de relatie automatisch voor u gemaakt bij het laden van de gegevens als beide kolommen dezelfde naam hadden gehad.In fact, autodetect would have automatically created the relationship for you when you loaded the data if both columns had the same name. Maar daar zit natuurlijk geen uitdaging in.But, what’s the challenge in that?

Kijk nu nog eens naar de tabel in het rapportcanvas.Now, let’s look at the table in our report canvas again.

Gemaakte relatie met Priority en Hours

Dat ziet er een stuk beter uit, toch?That looks a whole lot better, doesn’t it?

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.When we sum up hours by Priority, Power BI Desktop looks for every instance of the unique color values in the CompanyProject lookup table, looks for every instance of each of those values in the ProjectHours table, and then calculates a sum total for each unique value.

Dat was makkelijk.That was easy. Met Autodetectie gaat het waarschijnlijk nog veel eenvoudiger.In fact, with autodetect, you might not even have to do that much.

Inzicht in extra optiesUnderstanding additional options

Wanneer een relatie is gemaakt, met Autodetectie of handmatig, configureert Power BI Desktop automatisch extra opties op basis van de gegevens in de tabellen.When a relationship is created, either with autodetect or one you create manually, Power BI Desktop automatically configures additional options based on the data in your tables. Deze extra relatieopties bevinden zich in het laagste gedeelte van de dialoogvensters Relatie maken en Relatie bewerken.These additional relationship options are located in the lower portion of the Create relationship and Edit relationship dialog boxes.

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.Power BI typically sets these options automatically and you won’t need to adjust them; however, there are several situations where you might want to configure these options yourself.

Relaties automatisch bijwerkenAutomatic relationship updates

U kunt instellen hoe Power BI relaties in uw rapporten en modellen behandelt en automatisch aanpast.You can manage how Power BI treats and automatically adjusts relationships in your reports and models. Selecteer hiervoor Bestand > Opties en instellingen > Opties in Power BI Desktop en selecteer vervolgens Gegevens laden in het linkerdeelvenster.To specify how Power BI handles relationships options, select File > Options and settings > Options from Power BI Desktop, and then select Data Load in the left pane. U ziet nu de opties voor Relaties.The options for Relationships appear.

Opties voor relaties

Er zijn drie opties die kunnen worden geselecteerd en ingeschakeld:There are three options that can be selected and enabled:

  • Relaties uit gegevensbronnen importeren tijdens de eerste keer laden: Deze optie is standaard ingeschakeld.Import relationships from data sources on first load: This option is selected by default. 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.When it's selected, Power BI checks for relationships defined in your data source, such as foreign key/primary key relationships in your data warehouse. Als dergelijke relaties bestaan, worden deze gespiegeld in het Power BI-gegevensmodel wanneer u gegevens voor het eerst laadt.If such relationships exist, they're mirrored into the Power BI data model when you initially load data. 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.This option enables you to quickly begin working with your model, rather than requiring you find or define those relationships yourself.

  • Relaties bijwerken of verwijderen tijdens het vernieuwen van gegevens: Deze optie is standaard uitgeschakeld.Update or delete relationships when refreshing data: This option is unselected by default. Als u de optie inschakelt, controleert Power BI op wijzigingen in gegevensbronrelaties wanneer uw gegevensset wordt vernieuwd.If you select it, Power BI checks for changes in data source relationships when your dataset is refreshed. 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.If those relationships changed or are removed, Power BI mirrors those changes in its own data model, updating or deleting them to match.

    Waarschuwing

    Als u beveiliging op rijniveau gebruikt die afhankelijk is van de gedefinieerde relaties, wordt afgeraden deze optie te selecteren.If you're using row-level security that relies on the defined relationships, we don't recommend selecting this option. Als u een relatie verwijdert die nodig is voor uw instellingen voor beveiliging op rijniveau, wordt uw model mogelijk minder veilig.If you remove a relationship that your RLS settings rely on, your model might become less secure.

  • Nieuwe relaties automatisch detecteren na het laden van gegevens: Deze optie wordt beschreven in Autodetectie tijdens laden.Autodetect new relationships after data is loaded: This option is described in Autodetect during load.

Toekomstige updates voor de gegevens vereisen een andere kardinaliteitFuture updates to the data require a different cardinality

Power BI Desktop kan normaal gesproken automatisch de beste kardinaliteit voor de relatie bepalen.Normally, Power BI Desktop can automatically determine the best cardinality for the relationship. 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.If you do need to override the automatic setting, because you know the data will change in the future, you can change it with the Cardinality control. Hieronder volgt een voorbeeld waarin een andere kardinaliteit moet worden geselecteerd.Let’s look at an example where we need to select a different cardinality.

De tabel CompanyProjectPriority bevat een lijst met alle bedrijfsprojecten en de bijbehorende prioriteit.The CompanyProjectPriority table is a list of all company projects and their priority. De tabel ProjectBudget bevat de projecten waarvoor een budget is goedgekeurd.The ProjectBudget table is the set of projects for which a budget has been approved.

CompanyProjectPriorityCompanyProjectPriority

ProjNameProjName PriorityPriority
BlauwBlue AA
RoodRed BB
GroenGreen CC
GeelYellow CC
PaarsPurple BB
OranjeOrange CC

ProjectBudgetProjectBudget

Approved ProjectsApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
BlauwBlue 40,00040,000 12/1/201212/1/2012
RoodRed 100,000100,000 12/1/201212/1/2012
GroenGreen 50.00050,000 12/1/201212/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.If we create a relationship between the Approved Projects column in the ProjectBudget table and the ProjectName column in the CompanyProjectPriority table, Power BI automatically sets Cardinality to One to one (1:1) and Cross filter direction to Both.

Relatie tussen tabelkolommen maken

Power BI maakt deze instellingen omdat volgens Power BI Desktop dit de beste combinatie van de twee tabellen is:The reason Power BI makes these settings is because, to Power BI Desktop, the best combination of the two tables is as follows:

ProjNameProjName PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
BlauwBlue AA 40,00040,000 12/1/201212/1/2012
RoodRed BB 100.000100,000 12/1/201212/1/2012
GroenGreen CC 50,00050,000 12/1/201212/1/2012
GeelYellow CC

PaarsPurple BB

OranjeOrange CC

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.There's a one-to-one relationship between our two tables because there are no repeating values in the combined table’s ProjName column. 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.The ProjName column is unique, because each value occurs only once; therefore, the rows from the two tables can be combined directly without any duplication.

Maar stel dat u weet dat de gegevens worden gewijzigd de volgende keer dat u ze vernieuwd.But, let’s say you know the data will change the next time you refresh it. Een vernieuwde versie van de tabel ProjectBudget bevat nu extra rijen voor de blauwe en rode projecten:A refreshed version of the ProjectBudget table now has additional rows for the Blue and Red projects:

ProjectBudgetProjectBudget

Approved ProjectsApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
BlauwBlue 40,00040,000 12/1/201212/1/2012
RoodRed 100,000100,000 12/1/201212/1/2012
GroenGreen 50.00050,000 12/1/201212/1/2012
BlauwBlue 80,00080,000 6/1/20136/1/2013
RoodRed 90,00090,000 6/1/20136/1/2013

De beste combinatie van de twee tabellen ziet er met deze extra rijen nu als volgt uit:These additional rows mean the best combination of the two tables now looks like this:

ProjNameProjName PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
BlauwBlue AA 40,00040,000 12/1/201212/1/2012
RoodRed BB 100.000100,000 12/1/201212/1/2012
GroenGreen CC 50,00050,000 12/1/201212/1/2012
GeelYellow CC

PaarsPurple BB

OranjeOrange CC

BlauwBlue AA 8000080000 6/1/20136/1/2013
RoodRed BB 9000090000 6/1/20136/1/2013

In deze nieuwe gecombineerde tabel bevat de kolom ProjName herhaalde waarden.In this new combined table, the ProjName column has repeating values. De twee oorspronkelijke tabellen hebben geen één-op-éénrelatie meer zodra de tabel wordt vernieuwd.The two original tables won’t have a one-to-one relationship once the table is refreshed. Omdat in dit geval toekomstige updates ertoe leiden dat de kolom ProjName dubbele waarden krijgt, kunt u de kardinaliteit het beste op Veel-op-een (*:1) instellen, met de veel-zijde op ProjectBudget en de een-zijde op CompanyProjectPriority.In this case, because we know those future updates will cause the ProjName column to have duplicates, we want to set the Cardinality to be Many to one (*:1), with the many side on ProjectBudget and the one side on CompanyProjectPriority.

Richting voor kruislings filteren aanpassen voor een complexe reeks tabellen en relatiesAdjusting Cross filter direction for a complex set of tables and relationships

Voor de meeste relaties wordt de richting voor kruislings filteren ingesteld op Beide.For most relationships, the cross filter direction is set to Both. 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.There are, however, some more uncommon circumstances where you might need to set this option differently from the default, like if you’re importing a model from an older version of Power Pivot, where every relationship is set to a single direction.

Met de instelling Beide kan Power BI Desktop alle aspecten van de gekoppelde tabellen behandelen alsof ze bij één tabel horen.The Both setting enables Power BI Desktop to treat all aspects of connected tables as if they're a single table. 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.There are some situations, however, where Power BI Desktop can't set a relationship’s cross filter direction to Both and also keep an unambiguous set of defaults available for reporting purposes. Als de kruisfilterrichting van een relatie niet op Beide wordt ingesteld, komt dit meestal omdat er anders dubbelzinnigheid zou ontstaan.If a relationship cross filter direction isn't set to Both, then it’s usually because it would create ambiguity. Als de standaardinstelling voor kruislings filteren niet handig is, kunt u het filteren op een bepaalde tabel of op Beide instellen.If the default cross filter setting isn’t working for you, try setting it to a particular table or to Both.

Kruislings filteren in één richting werkt in de meeste gevallen.Single direction cross filtering works for many situations. Als u een model uit Power Pivot in Excel 2013 of eerder hebt geïmporteerd, worden alle relaties op één richting ingesteld.In fact, if you’ve imported a model from Power Pivot in Excel 2013 or earlier, all of the relationships will be set to single direction. Eén richting betekent dat filterkeuzes in gekoppelde tabellen worden toegepast op de tabel waarin waarden worden samengevoegd.Single direction means that filtering choices in connected tables work on the table where aggregation work is happening. Kruislings filteren kan soms lastig te begrijpen zijn. Daarom volgt hier een voorbeeld.Sometimes, understanding cross filtering can be a little difficult, so let’s look at an example.

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.With single direction cross filtering, if you create a report that summarizes the project hours, you can then choose to summarize (or filter) by the CompanyProject table and its Priority column or the CompanyEmployee table and its City column. U kunt echter niet het aantal werknemers per project tellen (een minder gebruikelijke opdracht).If however, you want to count the number of employees per projects (a less common question), it won’t work. U krijgt een kolom met waarden die allemaal hetzelfde zijn.You’ll get a column of values that are all the same. In het volgende voorbeeld is de kruisfilterrichting van beide relaties ingesteld op één richting: in de richting van de tabel ProjectHours.In the following example, both relationship's cross filtering direction is set to a single direction: towards the ProjectHours table. Bij Waarden is het veld Project ingesteld op Aantal:In the Values well, the Project field is set to Count:

Richting voor kruislings filteren

De filterspecificatie wordt overgebracht van CompanyProject naar ProjectHours (zoals weergegeven in de volgende afbeelding), maar niet naar CompanyEmployee.Filter specification will flow from CompanyProject to ProjectHours (as shown in the following image), but it won’t flow up to CompanyEmployee.

Voorbeeld van kruislings filteren

Als u de kruisfilterrichting echter instelt op Beide, werkt het wel.However, if you set the cross filtering direction to Both, it will work. De instelling Beide zorgt ervoor dat de filterspecificatie naar CompanyEmployee kan worden overgebracht.The Both setting allows the filter specification to flow up to CompanyEmployee.

Overdracht van filterspecificatie

Wanneer de kruisfilterrichting op Beide is ingesteld, wordt het rapport correct weergegeven:With the cross filtering direction set to Both, our report now appears correct:

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.Cross filtering both directions works well for a pattern of table relationships such as the pattern above. Dit schema wordt meestal een stervormig schema genoemd en ziet er als volgt uit:This schema is most commonly called a star schema, like this:

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:Cross filtering direction does not work well with a more general pattern often found in databases, like in this 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.If you have a table pattern like this, with loops, then cross filtering can create an ambiguous set of relationships. 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.For instance, if you sum up a field from TableX and then choose to filter by a field on TableY, then it’s not clear how the filter should travel, through the top table or the bottom table. Een veelvoorkomend voorbeeld voor dit type patroon is wanneer TableX een verkooptabel is met actuele gegevens en TableY budgetgegevens bevat.A common example of this kind of pattern is with TableX as a sales table with actuals data and for TableY to be budget data. In dat geval zijn de tabellen in het midden opzoektabellen die door beide tabellen worden gebruikt, zoals Division of Region.Then, the tables in the middle are lookup tables that both tables use, such as division or 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.As with active/inactive relationships, Power BI Desktop won’t allow a relationship to be set to Both if it will create ambiguity in reports. U kunt deze situatie op verschillende manieren afhandelen.There are several different ways you can handle this situation. Dit zijn de twee meestgebruikte manieren:Here are the two most common:

  • Verwijder relaties of stel ze in als inactief om dubbelzinnigheid te verminderen.Delete or mark relationships as inactive to reduce ambiguity. Vervolgens kunt u kruislings filteren voor een relatie mogelijk op Beide instellen.Then, you might be able to set a relationship cross filtering as Both.
  • Haal een tabel twee keer op (de tweede keer met een andere naam) om lussen te voorkomen.Bring in a table twice (with a different name the second time) to eliminate loops. Hierdoor wordt het patroon van relaties vergelijkbaar met een stervormig schema.Doing so makes the pattern of relationships like a star schema. Bij een stervormig schema kunnen alle relaties op Beide worden ingesteld.With a star schema, all of the relationships can be set to Both.

Verkeerde actieve relatieWrong active relationship

Wanneer Power BI Desktop automatisch relaties maakt, wordt er soms meer dan één relatie tussen twee tabellen aangetroffen.When Power BI Desktop automatically creates relationships, it sometimes encounters more than one relationship between two tables. In een dergelijk geval wordt maar een van de relaties als actief ingesteld.When this situation happens, only one of the relationships is set to be active. 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.The active relationship serves as the default relationship, so that when you choose fields from two different tables, Power BI Desktop can automatically create a visualization for you. In sommige gevallen is de automatisch geselecteerde relatie echter de verkeerde.However, in some cases the automatically selected relationship can be wrong. 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.Use the Manage relationships dialog box to set a relationship as active or inactive, or set the active relationship in the Edit relationship dialog box.

Power BI Desktop staat slechts één actieve relatie tegelijk tussen twee tabellen toe om ervoor te zorgen dat er een standaardrelatie is.To ensure there’s a default relationship, Power BI Desktop allows only a single active relationship between two tables at a given time. Daarom moet u eerst de huidige relatie als inactief instellen en kunt u vervolgens de gewenste relatie op actief instellen.Therefore, you must first set the current relationship as inactive and then set the relationship you want to be active.

Hier volgt een voorbeeld.Let’s look at an example. De eerste tabel is ProjectTickets en de tweede tabel is EmployeeRole.The first table is ProjectTickets, and the second table is EmployeeRole.

ProjectTicketsProjectTickets

TicketTicket OpenedByOpenedBy SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Perham, TomPerham, Tom Brewer, AlanBrewer, Alan 2222 BlauwBlue 1/1/20131/1/2013
10021002 Roman, DanielRoman, Daniel Brewer, AlanBrewer, Alan 2626 RoodRed 2/1/20132/1/2013
10031003 Roth, DanielRoth, Daniel Ito, ShuIto, Shu 3434 GeelYellow 12/4/201212/4/2012
10041004 Perham, TomPerham, Tom Brewer, AlanBrewer, Alan 1313 OranjeOrange 1/2/20121/2/2012
10051005 Roman, DanielRoman, Daniel Bowen, EliBowen, Eli 2929 PaarsPurple 01-10-201310/1/2013
10061006 Roth, DanielRoth, Daniel Bento, NunoBento, Nuno 3535 GroenGreen 2/1/20132/1/2013
10071007 Roth, DanielRoth, Daniel Hamilton, DavidHamilton, David 1010 GeelYellow 01-10-201310/1/2013
10081008 Perham, TomPerham, Tom Han, MuHan, Mu 2828 OranjeOrange 1/2/20121/2/2012
10091009 Roman, DanielRoman, Daniel Ito, ShuIto, Shu 2222 PaarsPurple 2/1/20132/1/2013
10101010 Roth, DanielRoth, Daniel Bowen, EliBowen, Eli 2828 GroenGreen 10/1/201310/1/2013
10111011 Perham, TomPerham, Tom Bowen, EliBowen, Eli 99 BlauwBlue 10/15/201310/15/2013

EmployeeRoleEmployeeRole

EmployeeEmployee RoleRole
Bento, NunoBento, Nuno Project ManagerProject Manager
Bowen, EliBowen, Eli Project LeadProject Lead
Brewer, AlanBrewer, Alan Project ManagerProject Manager
Hamilton, DavidHamilton, David Project LeadProject Lead
Han, MuHan, Mu Project LeadProject Lead
Ito, ShuIto, Shu Project LeadProject Lead
Perham, TomPerham, Tom Project SponsorProject Sponsor
Roman, DanielRoman, Daniel Project SponsorProject Sponsor
Roth, DanielRoth, Daniel Project SponsorProject Sponsor

Er bestaan hier eigenlijk twee relaties:There are actually two relationships here:

  • Tussen Employee in de tabel EmployeeRole en SubmittedBy in de tabel ProjectTickets.Between Employee in the EmployeeRole table and SubmittedBy in the ProjectTickets table.
  • Tussen OpenedBy in de tabel ProjectTickets en Employee in de tabel EmployeeRole.Between OpenedBy in the ProjectTickets table and Employee in the EmployeeRole table.

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:If we add both relationships to the model (OpenedBy first), then the Manage relationships dialog box shows that OpenedBy is active:

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.Now, if we create a report that uses Role and Employee fields from EmployeeRole, and the Hours field from ProjectTickets in a table visualization in the report canvas, we see only project sponsors because they’re the only ones that opened a project ticket.

De geselecteerde velden Employee, Role en Hours

We kunnen de actieve relatie wijzigen en SubmittedBy in plaats van OpenedBy ophalen.We can change the active relationship and get SubmittedBy instead of OpenedBy. 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.In Manage relationships, uncheck the ProjectTickets(OpenedBy) to EmployeeRole(Employee) relationship, and then check the EmployeeRole(Employee) to Project Tickets(SubmittedBy) relationship.

Actieve relatie wijzigen in het dialoogvenster Relatie beheren

Al uw relaties bekijken in de weergave RelatieSee all of your relationships in Relationship view

Soms heeft uw model meerdere tabellen en complexe relaties tussen deze tabellen.Sometimes your model has multiple tables and complex relationships between them. 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.Relationship view in Power BI Desktop shows all of the relationships in your model, their direction, and cardinality in an easy to understand and customizable diagram.

Zie Werken met de relatieweergave in Power BI Desktop voor meer informatie.To learn more, see Work with Relationship view in Power BI Desktop.