Opret og administrer relationer i Power BI Desktop

Når du har flere tabeller, er det sandsynligt, at du foretager en analyse ved hjælp af data fra alle disse tabeller. Det er nødvendig at have relationer mellem disse tabeller for at kunne beregne resultaterne nøjagtigt og vise de korrekte oplysninger i dine rapporter. I de fleste tilfælde behøver du ikke at gøre noget. Funktionen Registrer automatisk gør det for dig. Nogle gange kan du dog være nødt til at oprette relationer selv eller have brug for at foretage ændringer i en relation. Uanset hvad er det vigtigt at forstå relationer i Power BI Desktop, og hvordan du opretter og redigerer dem.

Registrer automatisk under indlæsning

Hvis du forespørger to eller flere tabeller på samme tid, når dataene indlæses, forsøger Power BI Desktop at finde og oprette relationer for dig. Relationsindstillingerne Kardinalitet, Tværgående filterretning og Aktivér denne relation angives automatisk. Power BI Desktop kigger på kolonnenavne i de tabeller, du forespørger, for at finde ud af, om der er nogen potentielle relationer. Hvis der er, oprettes disse relationer automatisk. Hvis Power BI Desktop ikke med høj genkendelsessikkerhed kan afgøre, om der er et match, oprettes relationen ikke. Du kan dog stadig bruge dialogboksen Administrer relationer til manuelt at oprette eller redigere relationer.

Opret en relation med registrer automatisk

Under fanen Udformning skal du vælge Administrer relationer>Registrer automatisk.

Animation showing how to create a relationship with autodetect.

Opret en relation manuelt

  1. På fanen Udformning skal du vælge Administrer relationer>Ny.

  2. I dialogboksen Opret relation skal du vælge en tabel på rullelisten med den første tabel. Vælg den kolonne, du vil bruge i relationen.

  3. På den anden rulleliste i tabellen skal du vælge den anden tabel, du vil have i relationen. Vælg den anden kolonne, du vil bruge, og vælg derefter OK.

    Animation showing how to create a manual relationship.

Som standard konfigurerer Power BI Desktop automatisk indstillingerne Kardinalitet (retning), Tværgående filterretning og Gør denne relation aktiv for din nye relation. Du kan dog ændre disse indstillinger, hvis det er nødvendigt. Du kan finde flere oplysninger under Om yderligere indstillinger.

Hvis ingen af de tabeller, der er valgt for relationen, har entydige værdier, får du vist følgende fejl: En af kolonnerne skal have entydige værdier. Mindst én tabel i en relation skal have en entydig, entydig liste over nøgleværdier, hvilket er et almindeligt krav for alle relationsdatabaseteknologier.

Hvis du støder på denne fejl, er der et par måder at løse problemet på:

  • Brug Fjern dubletter til at oprette en kolonne med entydige værdier. Ulempen ved denne fremgangsmåde er, at du kan miste oplysninger, når dublerede rækker fjernes. Ofte duplikeres en nøgle (række) med god grund.
  • Føj en mellemliggende tabel, der er oprettet af listen over entydige nøgleværdier, til modellen, som derefter sammenkædes med begge oprindelige kolonner i relationen.

Du kan finde flere oplysninger om dette i dette blogindlæg.

Alternativt kan du i layoutet modelvisningsdiagram trække og slippe en kolonne fra én tabel til en kolonne i en anden tabel for at oprette en relation.

Rediger en relation

Der er to måder at redigere en relation på i Power BI.

Den første metode til at redigere en relation er at bruge Redigeringsrelationer i ruden Egenskaber i modelvisning, hvor du kan vælge en hvilken som helst linje mellem to tabeller for at se relationsindstillingerne i ruden Egenskaber . Sørg for at udvide ruden Egenskaber for at se relationsindstillingerne.

Screenshot of adjusting relationships in the properties pane.

Du kan også se en videodemonstration af redigering af relationer i ruden Egenskaber .

Den anden metode til redigering af en relation bruger dialogboksen Relationseditor, som du kan åbne på mange måder fra Power BI Desktop. På følgende liste kan du se forskellige måder, du kan åbne dialogboksen Relationseditor på:

Fra rapportvisning skal du gøre et af følgende:

  • Vælg båndet >Udformning Administrer relationer, vælg derefter relationen, og vælg Rediger.
  • Vælg en tabel på listen Felter, og vælg derefter båndet >Tabelværktøjer Administrer relationer, vælg derefter relationen, og vælg derefter Rediger.

I datavisningen skal du vælge båndet >Tabelværktøjer Administrer relationer, derefter vælge relationen og derefter vælge Rediger.

Gør et af følgende i visningen Model :

  • Vælg båndet >Hjem Administrer relationer, vælg derefter relationen, og vælg derefter Rediger.
  • Dobbeltklik på en linje mellem to tabeller.
  • Højreklik på en linje mellem to tabeller, og vælg derefter Egenskaber.
  • Vælg en hvilken som helst linje mellem to tabeller, og vælg derefter Åbn relationseditor i ruden Egenskaber .

Endelig kan du også redigere en relation fra en hvilken som helst visning, højreklikke eller vælge ellipsen for at få vist genvejsmenuen i en tabel, derefter vælge Administrer relationer, vælge relationen og derefter vælge Rediger

På følgende billede vises et skærmbillede af vinduet Rediger relation .

Screenshot of the edit relationship window.

Redigere relationer ved hjælp af forskellige metoder

Brug af dialogboksen Rediger relationer er en mere guidet oplevelse til redigering af relationer i Power BI og er i øjeblikket en prøveversion. Du kan se et eksempel på dataene i hver tabel. Når du vælger forskellige kolonner, validerer vinduet automatisk relationen og tilbyder passende kardinalitet og valg på tværs af filtre.

Redigering af relationer i ruden Egenskaber er en strømlinet tilgang til redigering af relationer i Power BI. Du kan kun se de tabelnavne og kolonner, du kan vælge imellem, du får ikke vist et dataeksempel, og de relationsvalg, du foretager, valideres kun, når du vælger Anvend ændringer. Brug af ruden Egenskaber og den strømlinede tilgang reducerer antallet af forespørgsler, der genereres, når du redigerer en relation, hvilket kan være vigtigt for big data-scenarier, især når du bruger DirectQuery-forbindelser. Relationer, der er oprettet ved hjælp af ruden Egenskaber , kan også være mere avancerede end de relationer, der kan oprettes i dialogboksen Rediger relationer.

Du kan også vælge flere relationer i layoutet for modelvisningsdiagrammet ved at trykke på Ctrl og vælge mere end én linje for at vælge flere relationer. Almindelige egenskaber kan redigeres i ruden Egenskaber, og Anvend ændringer behandler ændringerne i én transaktion.

Enkelte eller flere markerede relationer kan også slettes ved at trykke på Slet på tastaturet. Du kan ikke fortryde sletningen, så du bliver bedt om at bekræfte sletningen af relationerne i en dialogboks.

Vigtigt

Redigering af relationer i egenskabsruden er i øjeblikket en prøveversion. I prøveversionen ændres funktionaliteten og dokumentationen sandsynligvis. Du skal aktivere denne funktion i Power BI Desktop ved at gå til Filindstillinger >> Funktioner > til eksempelvisning , og derefter skal du markere afkrydsningsfeltet ud for ruden Relation i afsnittet GLOBAL.

Konfigurere flere indstillinger

Når du opretter eller redigerer en relation, kan du konfigurere flere indstillinger. Power BI Desktop konfigurerer som standard automatisk flere indstillinger baseret på det bedste gæt, hvilket kan være forskelligt for hver relation baseret på dataene i kolonnerne.

Kardinalitet

Indstillingen Kardinalitet kan have en af følgende indstillinger:

Mange til én (*:1): En mange til en-relation er den mest almindelige standardtype for relation. Det betyder, at kolonnen i en given tabel kan have mere end én forekomst af en værdi, og at den anden relaterede tabel, der ofte kaldes opslagstabellen, kun har én forekomst af en værdi.

Én til én (1:1): I en en til en-relation har kolonnen i én tabel kun én forekomst af en bestemt værdi, og den anden relaterede tabel har kun én forekomst af en bestemt værdi.

En til mange (1:*): I en en til mange-relation har kolonnen i én tabel kun én forekomst af en bestemt værdi, og den anden relaterede tabel kan have mere end én forekomst af en værdi.

Mange til mange (*:*): Med sammensatte modeller kan du oprette en mange til mange-relation mellem tabeller, hvilket fjerner kravene til entydige værdier i tabeller. Det fjerner også tidligere midlertidige løsninger, såsom introduktion af nye tabeller kun for at etablere relationer. Du kan få flere oplysninger under Relationer med mange til mange-kardinalitet.

Du kan finde flere oplysninger om, hvornår du skal ændre kardinalitet, under Om yderligere indstillinger.

Retning af krydsfiltrering

Indstillingen Tværgående filterretning kan have en af følgende indstillinger:

Begge dele: I forbindelse med filtrering behandles begge tabeller, som om de er en enkelt tabel. Indstillingen Begge fungerer godt sammen med en enkelt tabel, der indeholder mange opslagstabeller, der omgiver den. Et eksempel er en tabel med faktiske salgsoplysninger med en opslagstabel for afdelingen. Denne konfiguration kaldes ofte en stjerneskemakonfiguration (en central tabel med flere opslagstabeller). Men hvis du har to eller flere tabeller, der også har opslagstabeller (med nogle til fælles), vil du ikke bruge indstillingen Begge . Hvis du vil fortsætte det forrige eksempel, har du i dette tilfælde også en budgetsalgstabel, der registrerer målbudgettet for hver afdeling. Og afdelingstabellen er knyttet til både salgs- og budgettabellen. Undgå indstillingen Begge for denne type konfiguration.

Enkelt: Den mest almindelige standardretning, hvilket betyder, at filtreringsvalg i forbundne tabeller fungerer på den tabel, hvor værdier aggregeres. Hvis du importerer en Power Pivot i Excel 2013 eller en tidligere datamodel, har alle relationer en enkelt retning.

Du kan finde flere oplysninger om, hvornår du skal ændre tværgående filterretning, under Om yderligere indstillinger.

Aktivér denne relation

Når afkrydsningsfeltet er markeret, fungerer relationen som den aktive standardrelation. I tilfælde, hvor der er mere end én relation mellem to tabeller, giver den aktive relation power BI Desktop mulighed for automatisk at oprette visualiseringer, der omfatter begge tabeller.

Du kan finde flere oplysninger om, hvornår du skal gøre en bestemt relation aktiv, under Om yderligere indstillinger.

Om relationer

Når du har forbundet to tabeller med en relation, kan du arbejde med dataene i begge tabeller, som om de var en enkelt tabel. Du er derefter fri for at skulle bekymre dig om relationsdetaljer eller fladgør disse tabeller til en enkelt tabel, før du importerer dem. I mange situationer kan Power BI Desktop automatisk oprette relationer for dig. Men hvis Power BI Desktop ikke med en høj grad af sikkerhed kan afgøre, om der findes en relation mellem to tabeller, oprettes relationen ikke automatisk. I så fald skal du gøre det.

Lad os gennemgå et hurtigt selvstudium for bedre at vise dig, hvordan relationer fungerer i Power BI Desktop.

Tip

Du kan selv fuldføre denne lektion:

  1. Kopiér følgende ProjectHours-tabel til et Excel-regneark (undtagen titlen), markér alle cellerne, og vælg derefter Indsæt>tabel.
  2. Vælg OK i dialogboksen Opret tabel.
  3. Markér en tabelcelle, vælg Tabeldesigntabelnavn>, og angiv derefter ProjectHours.
  4. Gør det samme for tabellen CompanyProject .
  5. Importér dataene ved hjælp af Hent data i Power BI Desktop. Vælg de to tabeller som datakilde, og vælg derefter Indlæs.

Den første tabel, ProjectHours, er en post over arbejdsanmodninger, der registrerer det antal timer, en person har arbejdet på et bestemt projekt.

Projekttimer

Billet Sendt af Timer Projekt Datoafsender
1001 Brewer, Alan 22 Blå 1/1/2013
1002 Brewer, Alan 26 Rød 2/1/2013
1003 Ito, Shu 34 Gul 12/4/2012
1004 Brewer, Alan 13 Orange 1/2/2012
1005 Bowen, Eli 29 Mørklilla 10/1/2013
1006 Bento, Nuno 35 Grøn 2/1/2013
1007 Hamilton, David 10 Gul 10/1/2013
1008 Han, Mu 28 Orange 1/2/2012
1009 Ito, Shu 22 Mørklilla 2/1/2013
1010 Bowen, Eli 28 Grøn 10/1/2013
1011 Bowen, Eli 9 Blå 10/15/2013

Denne anden tabel, CompanyProject, er en liste over projekter med en tildelt prioritet: A, B eller C.

Firmaprojekt

ProjName Prioritet
Blå A
Rød F
Grøn O
Gul O
Mørklilla F
Orange O

Bemærk, at hver tabel har en projektkolonne. Hver navngives lidt anderledes, men værdierne ser ud til at være de samme. Den forskel er vigtig, og vi vender snart tilbage til den.

Nu, hvor vi har importeret vores to tabeller til en model, kan vi oprette en rapport. Det første, vi vil have, er antallet af timer, der er sendt efter projektprioritet, så vi vælger Prioritet og Timer i ruden Felter .

Screenshot of the Priority and Hours fields selected from the Fields pane.

Hvis vi ser på vores tabel på rapportlærredet, kan du se, at antallet af timer er 256 for hvert projekt, hvilket også er totalen. Det er klart, at dette tal ikke er korrekt. Hvorfor? Det skyldes, at vi ikke kan beregne en sumtotal af værdier fra én tabel (Timer i tabellen Project ), opdelt efter værdier i en anden tabel (Prioritet i tabellen CompanyProject ) uden en relation mellem disse to tabeller.

Så lad os oprette en relation mellem disse to tabeller.

Kan du huske de kolonner, vi så i begge tabeller med et projektnavn, men med værdier, der ser ens ud? Vi bruger disse to kolonner til at oprette en relation mellem vores tabeller.

Hvorfor disse kolonner? Hvis vi ser på kolonnen Project i tabellen ProjectHours , kan vi se værdier som Blå, Rød, Gul, Orange osv. Faktisk kan vi se flere rækker, der har samme værdi. Vi har faktisk mange farveværdier for Project.

Hvis vi ser på kolonnen ProjName i tabellen CompanyProject , kan vi se, at der kun er én af hver af farveværdierne for projektnavnet. Hver farveværdi i denne tabel er entydig, og det er vigtigt, fordi vi kan oprette en relation mellem disse to tabeller. I dette tilfælde en mange til en-relation. I en mange til en-relation skal mindst én kolonne i en af tabellerne indeholde entydige værdier. Der er nogle flere indstillinger for nogle relationer, som vi kigger på senere. Lad os indtil videre oprette en relation mellem projektkolonnerne i hver af vores to tabeller.

Sådan opretter du den nye relation

  1. Vælg Administrer relationer under fanen Udformning .

  2. I Administrer relationer skal du vælge Ny for at åbne dialogboksen Opret relation , hvor vi kan vælge tabellerne, kolonnerne og eventuelle andre indstillinger for vores relation.

  3. Vælg ProjectHours som den første tabel på den første rulleliste, og vælg derefter kolonnen Project . Denne side er mange-siden i vores relation.

  4. På den anden rulleliste er CompanyProject markeret som den anden tabel. Vælg kolonnen ProjName . Denne side er den ene side af vores relation.

  5. Acceptér standardindstillingerne for relationsindstillingerne, og vælg derefter OK.

    Screenshot of the Create relationship dialog box.

  6. Vælg Luk i dialogboksen Administrer relationer.

Af hensyn til fuld offentliggørelse har du lige oprettet denne relation på den hårde måde. Du kunne have valgt Registrer automatisk i dialogboksen Administrer relationer . Registrer automatisk ville faktisk automatisk have oprettet relationen for dig, da du indlæste dataene, hvis begge kolonner havde det samme navn.

Lad os nu se på tabellen på vores rapportlærred igen.

Screenshot of the Priority and Hours fields selected from the Fields pane with new relationship.

Det ser meget bedre ud, ikke?

Når vi opsummerer timer efter Prioritet, søger Power BI Desktop efter hver forekomst af de entydige farveværdier i opslagstabellen CompanyProject , søger efter hver forekomst af hver af disse værdier i tabellen ProjectHours og beregner derefter en sumtotal for hver entydig værdi.

Med registrer automatisk behøver du måske slet ikke at gøre så meget.

Om yderligere indstillinger

Når der oprettes en relation, enten med registrer automatisk, eller hvis du opretter den manuelt, konfigurerer Power BI Desktop automatisk yderligere indstillinger baseret på dataene i tabellerne. Disse yderligere indstillinger for relationer er placeret i den nederste del af dialogboksen Opret relation og Rediger relation .

Screenshot of the lower portion of the Create relationship dialog box showing Cardinality and Cross filter direction options.

Power BI angiver typisk disse indstillinger automatisk, og du behøver ikke at justere dem. Men der er flere situationer, hvor du måske selv vil konfigurere disse indstillinger.

Automatiske opdateringer af relationer

Du kan administrere, hvordan Power BI behandler og automatisk justerer relationer i dine rapporter og modeller. Hvis du vil angive, hvordan Power BI skal håndtere indstillinger for relationer, skal du vælge Filindstillinger>>Indstillinger i Power BI Desktop og derefter vælge Dataindlæsning i ruden til venstre. Indstillingerne for Relationer vises.

Screenshot of the Options box showing the Relationships settings in the Data Load tab.

Der er tre indstillinger, der kan vælges og aktiveres:

  • Importér relationer fra datakilder ved første indlæsning: Denne indstilling er valgt som standard. Når den er valgt, søger Power BI efter relationer, der er defineret i din datakilde, f.eks. relationer med fremmed nøgle/primær nøgle i dit data warehouse. Hvis sådanne relationer findes, afspejles de i Power BI-datamodellen, når du først indlæser data. Med denne indstilling kan du hurtigt begynde at arbejde med din model i stedet for selv at finde eller definere disse relationer.

  • Opdater eller slet relationer ved opdatering af data: Denne indstilling er som standard ikke markeret. Hvis du vælger den, søger Power BI efter ændringer i datakilderelationer, når din semantiske model opdateres. Hvis disse relationer ændres eller fjernes, afspejler Power BI disse ændringer i sin egen datamodel og opdaterer eller sletter dem, så de stemmer overens.

    Advarsel!

    Hvis du bruger sikkerhed på rækkeniveau, der er afhængig af de definerede relationer, anbefaler vi ikke, at du vælger denne indstilling. Hvis du fjerner en relation, som dine RLS-indstillinger er afhængige af, kan din model blive mindre sikker.

  • Registrer automatisk nye relationer, når data er indlæst: Denne indstilling er beskrevet i Registrer automatisk under indlæsning.

Fremtidige opdateringer af dataene kræver en anden kardinalitet

Power BI Desktop kan normalt automatisk bestemme den bedste kardinalitet for relationen. Hvis du har brug for at tilsidesætte den automatiske indstilling, fordi du ved, at dataene ændres i fremtiden, kan du ændre dem med kontrolelementet Kardinalitet . Lad os se på et eksempel, hvor vi skal vælge en anden kardinalitet.

Tabellen CompanyProjectPriority er en liste over alle virksomhedsprojekter og deres prioritet. Tabellen ProjectBudget er det sæt projekter, som der er godkendt et budget for.

Virksomhed - projektprioritet

ProjName Prioritet
Blå A
Rød F
Grøn O
Gul O
Mørklilla F
Orange O

Budget for projekt

Godkendte projekter BudgetAllokering Allokeringsdato
Blå 40.000 12/1/2012
Rød 100,000 12/1/2012
Grøn 50.000 12/1/2012

Hvis vi opretter en relation mellem kolonnen Godkendte projekter i tabellen ProjectBudget og kolonnen ProjectName i tabellen CompanyProjectPriority , angiver Power BI automatisk Kardinalitet til Én til én (1:1) og Tværgående filterretning til Begge.

Screenshot of the Create relationship dialog box with Cardinality to One to one (1:1) and Cross filter direction to Both.

Årsagen til, at Power BI foretager disse indstillinger, er, at den bedste kombination af de to tabeller er følgende for Power BI Desktop:

ProjName Prioritet BudgetAllokering Allokeringsdato
Blå A 40.000 12/1/2012
Rød B 100,000 12/1/2012
Grøn O 50.000 12/1/2012
Gul O

Mørklilla F

Orange O

Der er en en til en-relation mellem vores to tabeller, fordi der ikke er nogen gentagne værdier i kolonnen ProjName i den kombinerede tabel. Kolonnen ProjName er entydig, fordi hver værdi kun forekommer én gang. Derfor kan rækkerne fra de to tabeller kombineres direkte uden duplikering.

Men lad os sige, at du ved, at dataene ændres, næste gang du opdaterer dem. En opdateret version af tabellen ProjectBudget indeholder nu flere rækker til projekterne Blue og Red:

Budget for projekt

Godkendte projekter BudgetAllokering Allokeringsdato
Blå 40.000 12/1/2012
Rød 100,000 12/1/2012
Grøn 50.000 12/1/2012
Blå 80,000 6/1/2013
Rød 90,000 6/1/2013

Disse ekstra rækker betyder, at den bedste kombination af de to tabeller nu ser sådan ud:

ProjName Prioritet BudgetAllokering Allokeringsdato
Blå A 40.000 12/1/2012
Rød B 100,000 12/1/2012
Grøn O 50.000 12/1/2012
Gul O

Mørklilla F

Orange O

Blå A 80000 6/1/2013
Rød F 90000 6/1/2013

I denne nye kombinerede tabel indeholder kolonnen ProjName gentagne værdier. De to oprindelige tabeller har ikke en en til en-relation, når tabellen opdateres. Da vi i dette tilfælde ved, at disse fremtidige opdateringer vil medføre, at kolonnen ProjName har dubletter, vil vi angive kardinalitetentil at være Mange til én (*:1) med mange-sidenProjectBudget og den ene side på CompanyProjectPriority.

Justering af tværgående filterretning for et komplekst sæt tabeller og relationer

For de fleste relationer er den tværgående filterretning angivet til Begge. Der er dog nogle mere usædvanlige situationer, hvor du muligvis skal angive denne indstilling anderledes end standardindstillingen. Et eksempel er, hvis du importerer en model fra en ældre version af Power Pivot, hvor hver relation er angivet til en enkelt retning.

Indstillingen Begge gør det muligt for Power BI Desktop at behandle alle aspekter af forbundne tabeller, som om de er en enkelt tabel. Der er dog nogle situationer, hvor Power BI Desktop ikke kan angive en relations tværgående filterretning til Begge og også bevare et entydigt sæt standarder, der er tilgængelige til rapporteringsformål. Hvis en relation på tværs af filterretning ikke er angivet til Begge, skyldes det som regel, at det ville skabe flertydighed. Hvis standardindstillingen for tværgående filtrering ikke fungerer for dig, kan du prøve at angive den til en bestemt tabel eller begge.

Tværgående filtrering i én retning fungerer i mange situationer. Hvis du har importeret en model fra Power Pivot i Excel 2013 eller tidligere, angives alle relationerne faktisk til en enkelt retning. Enkelt retning betyder, at filtreringsvalg i forbundne tabeller fungerer i den tabel, hvor sammenlægningsarbejdet finder sted. Nogle gange kan det være lidt svært at forstå krydsfiltrering, så lad os se på et eksempel.

Hvis du opretter en rapport med tværgående filtrering i én retning, der opsummerer projekttimerne, kan du derefter vælge at opsummere (eller filtrere) efter tabellen CompanyProject og kolonnen Prioritet eller tabellen CompanyEmployee og dens kolonne City . Men hvis du vil tælle antallet af medarbejdere pr. projekter (et mindre almindeligt spørgsmål), fungerer det ikke. Du får vist en kolonne med værdier, der alle er ens. I følgende eksempel er begge relationers tværgående filtreringsretning angivet til en enkelt retning: mod tabellen ProjectHours . I brønden Værdier er feltet Project angivet til Antal:

Screenshot of the visualization tab used with the Employee and Project fields.

Filterspecifikationen overføres fra CompanyProject til ProjectHours (som vist på følgende billede), men den overføres ikke til CompanyEmployee.

Diagram of a cross filtering example with flow from CompanyProject to ProjectHours.

Men hvis du angiver den tværgående filtreringsretning til Begge, fungerer den. Indstillingen Begge gør det muligt for filterspecifikationen at gå op til CompanyEmployee.

Diagram of a cross filtering example with flow both ways

Når den tværgående filtreringsretning er angivet til Begge, vises vores rapport nu korrekt:

Screenshot of cross filtering direction set to Both.

Krydsfiltrering i begge retninger fungerer godt for et mønster af tabelrelationer, f.eks. det mønster, der blev vist tidligere. Dette skema kaldes oftest et stjerneskema på følgende måde:

Diagram of cross filtering both directions in star schema.

Tværgående filtreringsretning fungerer ikke godt sammen med et mere generelt mønster, der ofte findes i databaser, f.eks. i dette diagram:

Diagram of cross filtering in both directions on a database pattern.

Hvis du har et tabelmønster som dette med løkker, kan krydsfiltrering oprette et tvetydigt sæt relationer. Hvis du f.eks. opsummerer et felt fra TableX og derefter vælger at filtrere efter et felt i TableY, er det ikke klart, hvordan filteret skal gå gennem den øverste tabel eller den nederste tabel. Et almindeligt eksempel på denne type mønster er, at TableX er en salgstabel med faktiske data, og at TableY skal være budgetdata. Tabellerne i midten er derefter opslagstabeller, som begge tabeller bruger, f.eks. division eller område.

Som med aktive/inaktive relationer tillader Power BI Desktop ikke, at en relation angives til Begge , hvis det skaber flertydighed i rapporter. Du kan håndtere denne situation på flere forskellige måder. Her er de to mest almindelige:

  • Slet eller markér relationer som inaktive for at reducere flertydigheden. Derefter kan du muligvis angive en relation på tværs af filtrering som Begge.
  • Hent en tabel to gange (med et andet navn anden gang) for at fjerne løkker. Det gør mønsteret af relationer som et stjerneskema. Med et stjerneskema kan alle relationer angives til Begge.

Forkert aktiv relation

Når Power BI Desktop automatisk opretter relationer, opstår der nogle gange mere end én relation mellem to tabeller. Når denne situation opstår, er det kun én af relationerne, der er angivet til at være aktiv. Den aktive relation fungerer som standardrelationen, så når du vælger felter fra to forskellige tabeller, kan Power BI Desktop automatisk oprette en visualisering for dig. I nogle tilfælde kan den automatisk valgte relation dog være forkert. Brug dialogboksen Administrer relationer til at angive en relation som aktiv eller inaktiv, eller angiv den aktive relation i dialogboksen Rediger relation.

Power BI Desktop tillader kun en enkelt aktiv relation mellem to tabeller på et givet tidspunkt for at sikre, at der er en standardrelation. Derfor skal du først angive den aktuelle relation som inaktiv og derefter angive den relation, du vil være aktiv.

Lad os se på et eksempel. Den første tabel er ProjectTickets, og den anden tabel er EmployeeRole.

Projekttickets

Billet Åbnet af Sendt af Timer Projekt Datoafsender
1001 Perham, Tom Brewer, Alan 22 Blå 1/1/2013
1002 Roman, Daniel Brewer, Alan 26 Rød 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Gul 12/4/2012
1004 Perham, Tom Brewer, Alan 13 Orange 1/2/2012
1005 Roman, Daniel Bowen, Eli 29 Mørklilla 10/1/2013
1006 Roth, Daniel Bento, Nuno 35 Grøn 2/1/2013
1007 Roth, Daniel Hamilton, David 10 Gul 10/1/2013
1008 Perham, Tom Han, Mu 28 Orange 1/2/2012
1009 Roman, Daniel Ito, Shu 22 Mørklilla 2/1/2013
1010 Roth, Daniel Bowen, Eli 28 Grøn 10/1/2013
1011 Perham, Tom Bowen, Eli 9 Blå 10/15/2013

EmployeeRole

Medarbejder Rolle
Bento, Nuno Projektleder
Bowen, Eli Projektleder
Brewer, Alan Projektleder
Hamilton, David Projektleder
Han, Mu Projektleder
Ito, Shu Projektleder
Perham, Tom Projektsponsor
Roman, Daniel Projektsponsor
Roth, Daniel Projektsponsor

Der er faktisk to relationer her:

  • Mellem Employee i tabellen EmployeeRole og SubmittedBy i tabellen ProjectTickets .
  • Mellem OpenedBy i tabellen ProjectTickets og Employee i tabellen EmployeeRole .

Screenshot of a two-relationship example.

Hvis vi føjer begge relationer til modellen (OpenedBy først), viser dialogboksen Administrer relationer , at OpenedBy er aktiv:

Screenshot of a OpenedBy active in the Manage relationships dialog box.

Hvis vi nu opretter en rapport, der bruger felterne Rolle og Medarbejder fra EmployeeRole og feltet Timer fra ProjectTickets i en tabelvisualisering på rapportcanvasset, kan vi kun se projektsponsorer, fordi det kun er dem, der har åbnet en projektbillet.

Screenshot shows the Employee, Role, and Hours fields selected.

Vi kan ændre den aktive relation og hente SubmittedBy i stedet for OpenedBy. I Administrer relationer skal du fjerne markeringen af ProjectTickets(OpenedBy) til EmployeeRole(Employee)-relationen og derefter kontrollere relationen EmployeeRole(Employee) til Project Tickets(SubmittedBy).

Screenshot of changing the active relationship in the Manage relationship dialog box.

Se alle dine relationer i relationsvisning

Nogle gange har din model flere tabeller og komplekse relationer mellem dem. Relationsvisning i Power BI Desktop viser alle relationerne i din model, deres retning og kardinalitet i et diagram, der er let at forstå og tilpasse.

Du kan få mere at vide under Arbejd med relationsvisning i Power BI Desktop.

Fejlfinding

Dette afsnit indeholder vejledning og fejlfindingsoplysninger, når du arbejder med relationer i Power BI.

Relationer mellem felter kan ikke bestemmes

Power BI forsøger at vise relevante data i visualiseringer ved at udlede relationerne fra den model, der bruges. Nogle gange er sådanne slutninger ikke indlysende, og du bliver måske overrasket over at se en fejl i din visualisering, hvilket angiver, at der ikke er nogen relation mellem bestemte kolonner.

Lad os bruge en eksempelmodel til at illustrere nogle få scenarier i følgende afsnit for at forklare, hvordan Power BI bestemmer, om felter er relateret. På følgende billede vises den eksempelmodel, vi bruger i eksempelscenarierne.

Screenshot of a sample model used in troubleshooting scenarios.

Scenarie 1: Traditionelt stjerneskema og ingen målingsbegrænsning angivet. Med henvisning til eksempelmodellen i det forrige billede ser vi først på den højre halvdel af billederne med tabellerne Leverandør - Køb - Produkt . Dette eksempel er et traditionelt stjerneskema med faktatabellen (Køb) og to dimensionstabeller (Product og Vendor). Relationen mellem dimensionstabellerne og faktatabellen er 1 til mange (ét produkt svarer til mange køb, én leverandør svarer til mange køb). I denne type skema kan vi besvare spørgsmål som f.eks . Hvilket salg har vi for produkt X? og Hvilket salg har vi for Leverandør Y? og Hvilke produkter sælger leverandør Y?

Hvis vi vil korrelere produkter og leverandører, kan vi gøre det ved at kigge i tabellen Køb for at se, om der er en post med det samme produkt og den samme leverandør. En eksempelforespørgsel kan se ud som i følgende eksempel:

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

where CountRows(Purchases)>0 er en implicit begrænsning, som Power BI ville tilføje for at sikre, at relevante data returneres. Ved at gøre denne korrelation via tabellen Køb kan vi returnere par af Product-Vendor, der har mindst én post i en faktatabel, parring, der giver mening fra dataperspektivet. Du kan forvente, at alle meningsløse kombinationer af Product-Vendor, som der aldrig har været et salg for (hvilket ville være ubrugeligt til analyse), ikke vises.

Scenarie 2: Der er angivet en traditionel stjerneskema- og målingsbegrænsning. Hvis brugeren i det forrige eksempel i scenarie 1 leverer en begrænsning i form af en opsummeret kolonne (f.eks. Sum/Gennemsnit/Antal købsantal) eller en modelmåling (Distinct Count of VendID), kan Power BI generere en forespørgsel i form af følgende eksempel:

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

I så fald forsøger Power BI at returnere kombinationer, der har meningsfulde værdier for den begrænsning, som brugeren har angivet (ikke-tom). Power BI behøver ikke også at tilføje sin egen implicitte begrænsning af CountRows(Purchases)>0, f.eks. hvad der blev gjort som i det forrige scenarie 1, fordi den begrænsning, der er angivet af brugeren, er tilstrækkelig.

Scenarie 3: Ikke-stjerneskema og ingen målingsbegrænsning angivet. I dette scenarie fokuserer vi på midten af modellen, hvor vi har tabellerne Salg - Produkt - Køb , hvor vi har én dimensionstabel (Produkt) og to faktatabeller (Salg, Køb). Da dette eksempel ikke er et stjerneskema, kan vi ikke besvare den samme type spørgsmål, som vi havde i scenarie 1. Lad os sige, at vi forsøger at korrelere Køb og Salg, da Køb har en mange til 1-relation med Produkt, og Product har en 1 til mange-relation med Salg. Salg og køb er indirekte mange til mange. Vi kan knytte ét produkt til mange køb og ét produkt til mange salg, men vi kan ikke knytte ét salg til mange køb eller omvendt. Vi kan kun knytte mange køb til mange salg.

Hvis vi i denne situation forsøger at kombinere Purchase[VenID] og Sales[CustID] i en visualisering, har Power BI ikke en konkret begrænsning, som kan anvendes på grund af relationen Mange til mange mellem disse tabeller. Selvom der kan være brugerdefinerede begrænsninger (ikke nødvendigvis stammer fra de relationer, der er oprettet i modellen), som kan anvendes i forskellige scenarier, kan Power BI ikke udlede en standardbegrænsning, der udelukkende er baseret på relationerne. Hvis Power BI forsøgte at returnere alle kombinationer af de to tabeller, ville det oprette en stor tværgående joinforbindelse og returnere ikke-relevante data. I stedet for dette udløser Power BI en fejl i visualiseringen, f.eks. følgende.

Screenshot of an error dialog when relationship can’t be inferred. Alternatively, Screenshot of an error dialog where relationship isn’t inferred.

Scenarie 4: Der er angivet en ikke-stjerneskema- og målingsbegrænsning. Hvis vi tager eksemplet fra scenarie 3 og tilføjer en brugerangivne begrænsning i form af en opsummeret kolonne (f.eks. Antal produkt[ProdID] ) eller en modelmåling (Sales[Total Qty]), kan Power BI generere en forespørgsel i form af Korreler køb[VenID] og Salg[CustID] , hvor MeasureConstraint ikke er tom.

I dette tilfælde respekterer Power BI brugerens begrænsning som den eneste begrænsning, som Power BI skal anvende, og returnerer de kombinationer, der producerer værdier, der ikke er tomme for den. Brugeren har guidet Power BI til det scenarie, den ønsker, og Power BI anvender vejledningen.

Scenarie 5: Når der angives en målingsbegrænsning, men den er delvist relateret til kolonnerne. Der er tilfælde, hvor den målingsbegrænsning, der leveres af brugeren, ikke er helt relateret til alle kolonnerne i visualiseringen. En modelmåling relaterer altid alt. Power BI behandler dette scenarie som et sort felt, når du forsøger at finde relationer mellem kolonner i visualiseringen, og det forudsætter, at brugeren ved, hvad vedkommende gør ved at bruge det. Opsummerede kolonner i form af Sum, Average og lignende oversigter, der er valgt fra brugergrænsefladen, kan dog kun relateres til et undersæt af de kolonner/tabeller, der bruges i visualiseringen, baseret på relationerne i den tabel, som kolonnen tilhører. Begrænsningen gælder derfor for nogle par af kolonner, men ikke for alle. I så fald forsøger Power BI at finde standardbegrænsninger, som kan gælde for de kolonner, der ikke er relateret af den bruger, der har angivet begrænsningen (f.eks. i scenarie 1). Hvis Power BI ikke kan finde nogen, returneres følgende fejl.

Screenshot of an error dialog when Power BI can’t find default constraints.

Løsning af relationsfejl

Når du får vist fejlen Kan ikke bestemme relationer mellem felterne , kan du udføre følgende trin for at forsøge at løse fejlen:

  1. Kontrollér din model. Er den konfigureret korrekt til de typer spørgsmål, du vil have besvaret fra din analyse? Kan du ændre nogle af relationerne mellem tabeller? Kan du undgå at oprette en indirekte mange til mange?

    Overvej at konvertere dit omvendte V-figurskema til to tabeller, og brug en direkte mange til mange-relation mellem dem som beskrevet i anvend mange til mange-relationer i Power BI Desktop.

  2. Føj en begrænsning til visualiseringen i form af en opsummeret kolonne eller en modelmåling.

  3. Hvis der tilføjes en opsummeret kolonne, og der stadig er en fejl, kan du overveje at bruge en modelmåling.

Du kan få flere oplysninger om modeller og relationer i følgende artikler: