Gi dataanalysen mer kraft ved å opprette relasjoner fra forskjellige tabeller. En relasjon er en kobling mellom to tabeller som inneholder data: én kolonne i hver tabell er grunnlaget for relasjonen. For å lettere forstå hvorfor relasjoner er nyttige kan du for eksempel tenke deg at du skal spore data for kundeordrer i firmaet ditt. Du kan spore alle dataene i én enkelt tabell som har en slik struktur:
Kunde-ID |
Navn |
E-post |
DiscountRate |
Ordre-ID |
OrderDate |
Produkt |
Antall |
---|---|---|---|---|---|---|---|
1 |
Ashton |
Chris.Ashton@contoso.com |
,05 |
256 |
07/01/2010 |
Compact Digital |
11 |
1 |
Ashton |
Chris.Ashton@contoso.com |
,05 |
255 |
03/01/2010 |
SLR Camera |
15 |
2 |
Jaworski |
michal.jaworski@contoso.com |
,10 |
254 |
03/01/2010 |
Budget Movie-Maker |
27 |
Denne metoden kan fungere, men den medfører lagring av overflødige data, for eksempel kundens e-postadresse for hver ordre. Lagring er billig, men hvis e-postadressen endres, må du passe på at du oppdaterer hver rad for kunden. En løsning på problemet er å dele dataene i flere tabeller og definere relasjoner mellom disse tabellene. Denne metoden brukes i relasjonsdatabaser som SQL Server. En database som du importerer, kan for eksempel representere ordredata ved å bruke tre relaterte tabeller:
Kunder
[Kunde-ID] |
Navn |
E-post |
---|---|---|
1 |
Ashton |
Chris.Ashton@contoso.com |
2 |
Jaworski |
michal.jaworski@contoso.com |
CustomerDiscounts
[Kunde-ID] |
DiscountRate |
---|---|
1 |
,05 |
2 |
,10 |
Ordrer
[Kunde-ID] |
Ordre-ID |
OrderDate |
Produkt |
Antall |
---|---|---|---|---|
1 |
256 |
07/01/2010 |
Compact Digital |
11 |
1 |
255 |
03/01/2010 |
SLR Camera |
15 |
2 |
254 |
03/01/2010 |
Budget Movie-Maker |
27 |
Det finnes relasjoner i en datamodell – én som du eksplisitt oppretter, eller en som Excel automatisk oppretter på dine vegne når du importerer flere tabeller samtidig. Du kan også bruke Power Pivot-tillegget til å opprette eller behandle modellen. Se Opprette en datamodell i Excel for mer informasjon.
Hvis du bruker Power Pivot-tillegget til å importere tabeller fra den samme databasen, kan Power Pivot gjenkjenne relasjonene mellom tabellene basert på kolonnene som står i [hakeparentes], og gjengi disse relasjonene i en datamodell som bygges i bakgrunnen. Hvis du vil ha mer informasjon, kan du se Automatisk gjenkjenning og utledning av relasjoner i denne artikkelen. Hvis du importerer tabeller fra flere kilder, kan du opprette relasjoner manuelt som beskrevet i Opprette en relasjon mellom to tabeller.
Relasjoner er basert på kolonner i hver tabell som inneholder de samme dataene. Du kan for eksempel relatere en kundetabell med en ordretabell hvis hver av dem inneholder en kolonne som lagrer en kunde-ID. I eksemplet er kolonnenavnene like, men dette er ikke et krav. Én kolonne kan være KundeID og en annen Kundenummer så lenge alle radene i Ordrer-tabellen inneholder en ID som også er lagret i Kunder-tabellen.
Det finnes flere typer nøkler i en relasjonsdatabase. En nøkkel er vanligvis kolonne med spesielle egenskaper. Ved å forstå formålet med hver enkelt nøkkel blir det lettere å håndtere en datamodell som inneholder flere tabeller og leverer data til en pivottabell, et pivotdiagram eller en Power View-rapport.
Selv om det finnes mange typer nøkler, er dette det viktigste for vårt formål her:
-
Primærnøkkel: identifiserer en rad unikt i en tabell, for eksempel Kunde-ID i Kunder-tabellen .
-
Alternativ nøkkel (eller kandidatnøkkel): en annen kolonne enn primærnøkkelen som er unik. En tabell for ansatte kan for eksempel inneholde en ansatt-ID og personnummer, og begge er unike.
-
Sekundærnøkkel: en kolonne som refererer til en unik kolonne i en annen tabell, for eksempel KundeID i Ordrer-tabellen , som refererer til KundeID i Kunder-tabellen.
I en datamodell refereres primærnøkkelen eller den alternative nøkkelen til som relatert kolonne. Hvis en tabell har både en primærnøkkel og en alternativ nøkkel, kan du bruke en hvilken som helst av dem som grunnlag for en tabellrelasjon. Sekundærnøkkelen kalles kildekolonne eller bare kolonne. I vårt eksempel vil en relasjon defineres mellom KundeID i Ordrer-tabellen (kolonnen) og KundeID i Kunder-tabellen (oppslagskolonnen). Hvis du importerer data fra en relasjonsdatabase, velger Excel som standard sekundærnøkkelen fra én tabell og den tilsvarende primærnøkkelen fra den andre tabellen. Du kan imidlertid bruke enhver kolonne som har unike verdier, for oppslagskolonnen.
Relasjonen mellom en kunde og en ordre er en én-til-mange-relasjon. Hver kunde kan ha flere ordrer, men en ordre kan ikke ha flere kunder. En annen viktig tabellrelasjon er én-til-én. I vårt eksempel her har CustomerDiscounts-tabellen , som definerer én enkelt diskontosats for hver kunde, en én-til-én-relasjon med Kunder-tabellen.
Denne tabellen viser relasjonene mellom de tre tabellene (Kunder, CustomerDiscounts og Orders):
Relasjon |
Type |
Oppslagskolonne |
Kolonne |
---|---|---|---|
Kunder-CustomerDiscounts |
én-til-én |
Customers.CustomerID |
CustomerDiscounts.CustomerID |
Kunder-ordrer |
én-til-mange |
Customers.CustomerID |
Orders.CustomerID |
Obs!: Mange-til-mange-relasjoner støttes ikke i en datamodell. Et eksempel på en mange-til-mange-relasjon er en direkte relasjon mellom Produkter og Kunder, der en kunde kan kjøpe mange produkter, og det samme produktet kan kjøpes av mange kunder.
Når en relasjon er opprettet, må Excel vanligvis omberegne alle formler som bruker kolonner fra tabeller i den nyopprettede relasjonen. Behandlingen kan ta en stund, avhengig av datamengden og hvor komplekse relasjonene er. Hvis du vil ha mer informasjon, kan du se Beregne formler på nytt.
En datamodell kan ha flere relasjoner mellom to tabeller. Hvis du vil bygge nøyaktige beregninger, trenger Excel én bane fra én tabell til den neste. Derfor er bare én relasjon mellom hvert tabellpar aktiv om gangen. Selv om de andre er inaktive, kan du angi en inaktiv relasjon i formler og spørringer.
I diagramvisning er den aktive relasjonen en heltrukket linje, og de inaktive er stiplede linjer. I AdventureWorksDW2012 inneholder for eksempel tabellen DimDate en kolonne, DateKey, som er relatert til tre forskjellige kolonner i tabellen FactInternetSales: OrderDate, DueDate og ShipDate. Hvis den aktive relasjonen er mellom DateKey og OrderDate, blir dette standardrelasjonen i formler hvis du ikke angir noe annet.
En relasjon kan opprettes når følgende krav er oppfylt:
Kriterier |
Beskrivelse |
---|---|
Unik identifikator for hver tabell |
Hver tabell må ha én kolonne som unikt identifiserer hver rad i tabellen. Denne kolonnen refereres ofte til som primærnøkkelen. |
Unike oppslagskolonner |
Dataverdiene i oppslagskolonnen må være unike. Kolonnen kan med andre ord ikke inneholde duplikater. I en datamodell tilsvarer nullverdier og tomme strenger en tom verdi, som er en distinkt dataverdi. Det betyr at du ikke kan ha flere nullverdier i oppslagskolonnen. |
Kompatible datatyper |
Datatypene i kildekolonnen og oppslagskolonnen må være kompatible. Hvis du vil ha mer informasjon om datatyper, kan du se Datatyper som støttes i datamodeller. |
Du kan ikke opprette en tabellrelasjon i en datamodell hvis nøkkelen er en sammensatt nøkkel. Du kan heller ikke opprette én-til-én- og én-til-mange-relasjoner. Andre typer relasjoner støttes ikke.
Sammensatte nøkler og oppslagskolonner
En sammensatt nøkkel består av mer enn én kolonne. Datamodeller kan ikke bruke sammensatte nøkler: En tabell må alltid ha nøyaktig én kolonne som unikt identifiserer hver rad i tabellen. Hvis du importerer tabeller som har en eksisterende relasjon basert på en sammensatt nøkkel, ignorerer veiviseren for tabellimport i Power Pivot relasjonen fordi den ikke kan opprettes i modellen.
Hvis du vil opprette en relasjon mellom to tabeller som har flere kolonner som definerer primær- og sekundærnøkkel, må du først kombinere verdiene for å opprette én enkelt nøkkelkolonne før relasjonen opprettes. Du kan gjøre dette før du importerer dataene, eller ved å opprette en beregnet kolonne i datamodellen ved hjelp av Power Pivot-tillegget.
Mange-til-mange-relasjoner
En datamodell kan ikke ha mange-til-mange-relasjoner. Du kan ikke legge til foreningstabeller i modellen. Du kan imidlertid bruke DAX-funksjoner til å opprette mange-til-mange-relasjoner.
Egenkoblinger og løkker
Egenkoblinger er ikke tillatt i en datamodell. En egenkobling er en rekursiv relasjon mellom en tabell og seg selv. Egenkoblinger brukes ofte til å definere hierarkier for overordnede/underordnede. Du kan for eksempel koble en tabell med ansatte til seg selv for å lage et hierarki som viser ledelseskjeden i et firma.
Excel tillater ikke at det opprettes løkker mellom relasjoner i en arbeidsbok. Settet med relasjoner nedenfor er dermed ikke tillatt.
Tabell 1, kolonne a til tabell 2, kolonne f
Tabell 2, kolonne f til tabell 3, kolonne n
Tabell 3, kolonne n til tabell 1, kolonne a
Hvis du prøver å opprette en relasjon som resulterer i en løkke, genereres en feil.
En av fordelene ved å importere data ved hjelp av Power Pivot-tillegget, er at Power Pivot noen ganger kan gjenkjenne relasjoner og opprette nye relasjoner i datamodellen det oppretter i Excel.
Når du importerer flere tabeller, gjenkjenner Power Pivot automatisk eventuelle eksisterende relasjoner mellom tabellene. Når du oppretter en pivottabell, analyserer Power Pivot også dataene i tabellene. Det gjenkjenner mulige relasjoner som ikke har blitt definert, og foreslår passende kolonner som skal inkluderes i disse relasjonene.
Gjenkjennelsesalgoritmen bruker statistiske data for verdiene og metadataene i kolonner til å opprette utledninger for å finne sannsynligheten for relasjoner.
-
Datatyper i alle relaterte kolonner må være kompatible. For automatisk gjenkjenning støttes bare data av typen heltall og tekst. Hvis du vil ha mer informasjon om datatyper, kan du se Datatyper som støttes idatamodeller.
-
For at relasjonen skal kunne gjenkjennes, må antall unike nøkler i oppslagskolonnen være større enn verdiene i tabellen på mange-siden. Nøkkelkolonnen på mange-siden i relasjonen må med andre ord ikke inneholde verdier som ikke finnes i nøkkelkolonnen i oppslagstabellen. La oss for eksempel si at du har en tabell som inneholder produkter med IDer (oppslagstabellen), og en salgstabell som inneholder salgene for hvert produkt (mange-siden i relasjonen). Hvis salgspostene inneholder IDen for et produkt som ikke har en tilsvarende ID i produkttabellen, kan ikke relasjonen opprettes automatisk, men du kan kanskje opprette den manuelt. For at Excel skal gjenkjenne relasjonen, må du først oppdatere produktoppslagstabellen med IDene for de manglende produktene.
-
Kontroller at navnet på nøkkelkolonnen på mange-siden ligner på navnet på nøkkelkolonnen i oppslagstabellen. Navnene trenger ikke å være helt like. I en forretningsinnstilling har du for eksempel ofte variasjoner av navnene på kolonnene som i hovedsak inneholder de samme dataene: Emp-ID, AnsattID, Ansatt-ID, EMP_ID og så videre. Algoritmen gjenkjenner like navn og tilordner en høyere sannsynlighet til kolonnene som har nesten like eller nøyaktig like navn. Hvis du vil øke sannsynligheten for at en relasjon opprettes, kan du prøve å endre navn på kolonnene i dataene du importerer, til navn som ligner kolonnenavnene i de eksisterende tabellene. Hvis Excel finner flere mulige relasjoner, oppretter den ikke en relasjon.
Denne informasjonen kan være til hjelp for å forstå hvorfor ikke alle relasjoner gjenkjennes, eller hvordan endringer i metadata, for eksempel feltnavn og datatyper, kan forbedre resultatene for automatisk gjenkjenning av relasjoner. Hvis du vil ha mer informasjon, kan du se Feilsøke relasjoner.
Automatisk gjenkjenning for navngitte sett
Relasjoner gjenkjennes ikke automatisk mellom navngitte sett og relaterte felt i en pivottabell. Du kan opprette disse relasjonene manuelt. Hvis du vil bruke automatisk gjenkjenning av relasjoner, fjerner du hvert navngitte sett og legger til de individuelle feltene fra det navngitte settet direkte i pivottabellen.
Utledning av relasjoner
I noen tilfeller kjedes relasjoner mellom tabeller automatisk sammen. Hvis du for eksempel oppretter en relasjon mellom de to første settene med tabeller nedenfor, antas det at det skal være en relasjon mellom de to andre tabellene, og en relasjon opprettes dermed automatisk.
Produkter og kategori – opprettes manuelt
Kategori og underkategori – opprettes manuelt
Produkter og underkategori – relasjon utledes
Hvis relasjonene skal kjedes automatisk, må relasjonene gå i én retning, som vist ovenfor. Hvis startrelasjonene er mellom, for eksempel Salg og Produkter og Salg og Kunder, kan ikke relasjonen utledes. Årsaken er at relasjonen mellom Produkter og Kunder er en mange-til-mange-relasjon.