En af de mest effektive funktioner i Power Pivot er muligheden for at oprette relationer mellem tabeller og derefter bruge de relaterede tabeller til at slå op eller filtrere relaterede data. Du henter relaterede værdier fra tabeller ved hjælp af det formelsprog, der leveres med Power Pivot, DAX (Data Analysis Expressions). DAX bruger en relationel model og kan derfor nemt og præcist hente relaterede eller tilsvarende værdier i en anden tabel eller kolonne. Hvis du kender til LOPSLAG i Excel, er denne funktion i Power Pivot den samme, men meget nemmere at implementere.
Du kan oprette formler, der bruges til opslag som en del af en beregnet kolonne eller som en del af en måling til brug i en pivottabel eller et pivotdiagram. Du kan finde flere oplysninger under følgende emner:
Beregnede felter i Power Pivot
Beregnede kolonner i Power Pivot
I dette afsnit beskrives de DAX-funktioner, der findes til opslag, sammen med nogle eksempler på, hvordan funktionerne bruges.
Bemærk
Afhængigt af den type opslagshandling eller opslagsformel, du vil bruge, kan det være nødvendigt at oprette en relation mellem tabellerne først.
Om opslagsfunktioner
Muligheden for at slå matchende eller relaterede data op fra en anden tabel er især nyttig i situationer, hvor den aktuelle tabel kun indeholder en eller anden type identifikator, men de data, du skal bruge (f.eks. produktpris, navn eller andre detaljerede værdier), er gemt i en relateret tabel. Det er også nyttigt, når der er flere rækker i en anden tabel, som er relateret til den aktuelle række eller aktuelle værdi. Du kan f.eks. nemt hente alle de salg, der er knyttet til et bestemt område, en butik eller en sælger.
I modsætning til opslagsfunktioner i Excel, f.eks. LOPSLAG, som er baseret på matricer, eller SLÅ, som får den første af flere matchende værdier, følger DAX eksisterende relationer mellem tabeller, der er forbundet med nøgler, for at få den enkelte relaterede værdi, der matcher nøjagtigt. DAX kan også hente en tabel over poster, der er relateret til den aktuelle post.
Bemærk
Hvis du kender til relationsdatabaser, kan du se opslag i Power Pivot som lig en indlejret subselect-sætning i Transact-SQL.
Hente en enkelt relateret værdi
Funktionen RELATED returnerer en enkelt værdi fra en anden tabel, der er relateret til den aktuelle værdi i den aktuelle tabel. Du angiver den kolonne, der indeholder de data, du ønsker, og funktionen følger eksisterende relationer mellem tabeller for at hente værdien fra den angivne kolonne i den relaterede tabel. I nogle tilfælde skal funktionen følge en kæde af relationer for at hente dataene.
Lad os antage, at du har en liste over dagens forsendelser i Excel. Listen indeholder dog kun et medarbejder-id, et ordre-id og et speditør-id, hvilket gør rapporten svær at læse. For at få de ekstra oplysninger, du ønsker, kan du konvertere listen til en sammenkædet tabel i Power Pivot og derefter oprette relationer til tabellerne Medarbejder og Forhandler, hvor du matcher Medarbejder-id med feltet EmployeeKey og Forhandler-id med feltet ResellerKey.
Hvis du vil have vist opslagsoplysningerne i den sammenkædede tabel, skal du tilføje to nye beregnede kolonner med følgende formler:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
Dagens forsendelser før opslag
| Ordre-id | Medarbejder-id | Forhandler-id |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
Medarbejdertabel
| Medarbejder-id | Medarbejder | Forhandler |
|---|---|---|
| 230 | Kuppa Vamsi | Modulære cyklussystemer |
| 15 | Pilar Ackeman | Modulære cyklussystemer |
| 76 | Kim Ralls | Tilknyttede cykler |
Dagens forsendelser med søgninger
| Ordre-id | Medarbejder-id | Forhandler-id | Medarbejder | Forhandler |
|---|---|---|---|---|
| 100314 | 230 | 445 | Kuppa Vamsi | Modulære cyklussystemer |
| 100315 | 15 | 445 | Pilar Ackeman | Modulære cyklussystemer |
| 100316 | 76 | 108 | Kim Ralls | Tilknyttede cykler |
Funktionen bruger relationerne mellem den sammenkædede tabel og tabellen Medarbejdere og forhandlere til at få det korrekte navn til hver række i rapporten. Du kan også bruge relaterede værdier til beregninger. Du kan finde flere oplysninger og eksempler under Funktionen RELATED.
Hentning af en liste over relaterede værdier
Funktionen RELATEDTABLE følger en eksisterende relation og returnerer en tabel, der indeholder alle matchende rækker fra den angivne tabel. Antag f.eks., at du vil finde ud af, hvor mange ordrer hver forhandler har afgivet i år. Du kan oprette en ny beregnet kolonne i tabellen Forhandlere, der indeholder følgende formel, som søger efter poster for hver forhandler i tabellen ResellerSales_USD og tæller antallet af individuelle ordrer afgivet af hver forhandler.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
I denne formel henter funktionen RELATEDTABLE først værdien af ResellerKey for hver forhandler i den aktuelle tabel. (Du behøver ikke at angive id-kolonnen noget sted i formlen, da Power Pivot bruger den eksisterende relation mellem tabellerne). Funktionen RELATEDTABLE henter derefter alle de rækker fra tabellen ResellerSales_USD, der er relateret til hver forhandler, og tæller rækkerne. Hvis der ikke er nogen relation (direkte eller indirekte) mellem de to tabeller, får du alle rækker fra den ResellerSales_USD tabel.
For forhandleren Modular Cycle Systems i vores eksempeldatabase er der fire ordrer i tabellen salg, så funktionen returnerer 4. For tilknyttede cykler har forhandleren intet salg, så funktionen returnerer et tomt felt.
| Forhandler | Poster i salgstabellen for denne forhandler |
|---|---|
| Modulære cyklussystemer | Forhandler-id |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| Forhandler-id | |
| Tilknyttede cykler |
Bemærk
Da funktionen RELATEDTABLE returnerer en tabel og ikke en enkelt værdi, skal den bruges som argument til en funktion, der udfører handlinger i tabeller. Du kan finde flere oplysninger under Funktionen RELATEDTABLE.