En av de kraftigste funksjonene i Power Pivot er muligheten til å opprette relasjoner mellom tabeller og deretter bruke de relaterte tabellene til å slå opp eller filtrere relaterte data. Du henter relaterte verdier fra tabeller ved hjelp av formelspråket som følger medPower Pivot, Data Analysis Expressions (DAX). DAX bruker en relasjonsmodell og kan derfor enkelt og nøyaktig hente relaterte eller tilsvarende verdier i en annen tabell eller kolonne. Hvis du er kjent med FINN.RAD i Excel, er denne funksjonaliteten i Power Pivot lik, men mye enklere å implementere.
Du kan opprette formler som utfører oppslag som en del av en beregnet kolonne, eller som en del av et mål for bruk i en pivottabell eller et pivotdiagram. Hvis du vil ha mer informasjon, kan du se følgende emner:
Beregnede kolonner i PowerPivot
Denne delen beskriver DAX-funksjonene som finnes for oppslag, sammen med noen eksempler på hvordan du bruker funksjonene.
Obs!: Avhengig av typen oppslagsoperasjon eller oppslagsformel du vil bruke, må du kanskje opprette en relasjon mellom tabellene først.
Forstå oppslagsfunksjoner
Muligheten til å slå opp samsvarende eller relaterte data fra en annen tabell er spesielt nyttig i situasjoner der den gjeldende tabellen bare har en identifikator av en eller annen type, men dataene du trenger (for eksempel produktpris, navn eller andre detaljerte verdier) lagres i en relatert tabell. Det er også nyttig når det er flere rader i en annen tabell som er relatert til gjeldende rad eller gjeldende verdi. Du kan for eksempel enkelt hente alle salgene som er knyttet til en bestemt region, butikk eller selger.
I motsetning til Excel-oppslagsfunksjoner som FINN.RAD, som er basert på matriser eller SLÅ.OPP, som henter den første av flere samsvarende verdier, følger DAX eksisterende relasjoner mellom tabeller sammenføyd av nøkler for å få den eneste relaterte verdien som samsvarer nøyaktig. DAX kan også hente en tabell med poster som er relatert til gjeldende post.
Obs!: Hvis du er kjent med relasjonsdatabaser, kan du tenke på oppslag i Power Pivot som ligner på en nestet merkingssetning i Transact-SQL.
Henter én enkelt relatert verdi
RELATED-funksjonen returnerer én enkelt verdi fra en annen tabell som er relatert til gjeldende verdi i gjeldende tabell. Du angir kolonnen som inneholder dataene du vil bruke, og funksjonen følger eksisterende relasjoner mellom tabeller for å hente verdien fra den angitte kolonnen i den relaterte tabellen. I noen tilfeller må funksjonen følge en kjede av relasjoner for å hente dataene.
Anta for eksempel at du har en liste over dagens forsendelser i Excel. Listen inneholder imidlertid bare et ansatt-ID-nummer, et ordre-ID-nummer og et transportør-ID-nummer, noe som gjør rapporten vanskelig å lese. Hvis du vil ha den ekstra informasjonen du vil ha, kan du konvertere denne listen til en Power Pivot koblet tabell, og deretter opprette relasjoner til tabellene Ansatte og Forhandler, tilordne EmployeeID til EmployeeKey-feltet og ResellerID til ResellerKey-feltet.
Hvis du vil vise oppslagsinformasjonen i den koblede tabellen, legger du til to nye beregnede kolonner med følgende formler:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])Dagens forsendelser før oppslag
Ordre-ID |
Ansattid |
Forhandler-ID |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Ansattabell
Ansattid |
Ansatt |
Forhandler |
---|---|---|
230 |
Kuppa Vamsi |
Modulære kretssystemer |
15 |
Pilar Ackeman |
Modulære kretssystemer |
76 |
Kim Ralls |
Tilknyttede sykler |
Dagens forsendelser med oppslag
Ordre-ID |
Ansattid |
Forhandler-ID |
Ansatt |
Forhandler |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Modulære kretssystemer |
100315 |
15 |
445 |
Pilar Ackeman |
Modulære kretssystemer |
100316 |
76 |
108 |
Kim Ralls |
Tilknyttede sykler |
Funksjonen bruker relasjonene mellom den koblede tabellen og tabellen Ansatte og Forhandlere til å få riktig navn for hver rad i rapporten. Du kan også bruke relaterte verdier for beregninger. Hvis du vil ha mer informasjon og eksempler, kan du se RELATED-funksjonen.
Henter en liste over relaterte verdier
RELATEDTABLE-funksjonen følger en eksisterende relasjon, og returnerer en tabell som inneholder alle samsvarende rader fra den angitte tabellen. Anta for eksempel at du vil finne ut hvor mange ordrer hver forhandler har lagt inn i år. Du kan opprette en ny beregnet kolonne i forhandlertabellen som inneholder følgende formel, som slår opp poster for hver forhandler i ResellerSales_USD-tabellen, og teller antall individuelle ordrer som er plassert av hver forhandler.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
I denne formelen får RELATEDTABLE-funksjonen først verdien av ResellerKey for hver forhandler i den gjeldende tabellen. (Du trenger ikke å angi ID-kolonnen noe sted i formelen, fordi Power Pivot bruker den eksisterende relasjonen mellom tabellene.) RELATEDTABLE-funksjonen henter deretter alle radene fra den ResellerSales_USD tabellen som er relatert til hver forhandler, og teller radene. Hvis det ikke er noen relasjon (direkte eller indirekte) mellom de to tabellene, får du alle radene fra den ResellerSales_USD tabellen.
For reseller-modulære kretssystemer i eksempeldatabasen er det fire ordrer i salgstabellen, så funksjonen returnerer 4. For tilknyttede sykler har forhandleren ingen salg, så funksjonen returnerer en tom verdi.
Forhandler |
Poster i salgstabell for denne forhandleren |
|
---|---|---|
Modulære kretssystemer |
Forhandler-ID |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
Forhandler-ID |
SalesOrderNumber |
|
Tilknyttede sykler |
Obs!: Fordi RELATEDTABLE-funksjonen returnerer en tabell, ikke en enkelt verdi, må den brukes som et argument til en funksjon som utfører operasjoner på tabeller. Hvis du vil ha mer informasjon, kan du se RELATEDTABLE-funksjonen.