En av de mest kraftfulla funktionerna i Power Pivot är möjligheten att skapa relationer mellan tabeller och sedan använda de relaterade tabellerna för att söka efter eller filtrera relaterade data. Du hämtar relaterade värden från tabeller med hjälp av formelspråket i Power Pivot, DAX (Data Analysis Expressions). DAX använder en relationsmodell och kan därför enkelt och exakt hämta relaterade eller motsvarande värden i en annan tabell eller kolumn. Om du är bekant med VLOOKUP i Excel är den här funktionen i Power Pivot liknande, men mycket enklare att implementera.
Du kan skapa formler som gör uppslag som en del av en beräknad kolumn eller som en del av ett mått som ska användas i en pivottabell eller ett pivotdiagram. Mer information finns i följande avsnitt:
Beräknade kolumner i PowerPivot
I det här avsnittet beskrivs de DAX-funktioner som tillhandahålls för sökning samt några exempel på hur du använder funktionerna.
Obs
Beroende på vilken typ av uppslagsåtgärd eller uppslagsformel du vill använda kan du behöva skapa en relation mellan tabellerna först.
Förstå LETAUPP-funktioner
Möjligheten att söka efter matchande eller relaterade data från en annan tabell är särskilt användbar i situationer där den aktuella tabellen endast har en identifierare av något slag, men de data du behöver (t.ex. produktpris, namn eller andra detaljerade värden) lagras i en relaterad tabell. Det är också användbart när det finns flera rader i en annan tabell som är relaterade till den aktuella raden eller det aktuella värdet. Du kan till exempel enkelt hämta all försäljning som är knuten till en viss region, butik eller säljare.
Till skillnad från Excel-uppslagsfunktioner som LETARAD, som baseras på matriser eller LETAUPP, som hämtar det första av flera matchande värden, följer DAX befintliga relationer mellan tabeller som är sammanbundna med nycklar för att få fram det enskilda relaterade värdet som matchar exakt. DAX kan även hämta en tabell med poster som är relaterade till den aktuella posten.
Obs
Om du är bekant med relationsdatabaser kan du tänka på uppslag i Power Pivot som liknar en kapslad subselect-sats i Transact-SQL.
Hämtar ett enskilt relaterat värde
Funktionen RELATED returnerar ett enskilt värde från en annan tabell som är relaterad till det aktuella värdet i den aktuella tabellen. Du anger den kolumn som innehåller de data du vill använda, och funktionen följer befintliga relationer mellan tabeller för att hämta värdet från den angivna kolumnen i den relaterade tabellen. I vissa fall måste funktionen följa en kedja av relationer för att hämta data.
Anta till exempel att du har en lista över dagens leveranser i Excel. Listan innehåller emellertid endast ett anställningsnummer, ett ordernummer och ett speditörsnummer, vilket gör rapporten svår att läsa. För att få den extra information du vill ha kan du konvertera listan till en Power Pivot-länkad tabell och sedan skapa relationer till tabellerna Anställd och Återförsäljare, genom att matcha EmployeeID med fältet EmployeeKey och ResellerID med fältet ResellerKey.
Om du vill visa uppslagsinformationen i den länkade tabellen lägger du till två nya beräknade kolumner med följande formler:
= RELATED('Employees'[EmployeeName])
= RELATED('Återförsäljare'[CompanyName])
Dagens leveranser före sökning
| Order-ID | EmployeeID | ResellerID |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
Tabellen Employees
| EmployeeID | Anställd | Återförsäljare |
|---|---|---|
| 230 | Kuppa Vamsi | Modulära kretscykelsystem |
| 15 | Pilar Ackeman | Modulära kretscykelsystem |
| 76 | Kim Ralls | Tillhörande cyklar |
Dagens sändningar med uppslag
| Order-ID | EmployeeID | ResellerID | Anställd | Återförsäljare |
|---|---|---|---|---|
| 100314 | 230 | 445 | Kuppa Vamsi | Modulära kretscykelsystem |
| 100315 | 15 | 445 | Pilar Ackeman | Modulära kretscykelsystem |
| 100316 | 76 | 108 | Kim Ralls | Tillhörande cyklar |
Funktionen använder relationerna mellan den länkade tabellen och tabellen Anställda och återförsäljare för att få rätt namn för varje rad i rapporten. Du kan också använda relaterade värden för beräkningar. Mer information och exempel finns i Funktionen RELATED.
Hämta en lista med relaterade värden
Funktionen RELATEDTABLE följer en befintlig relation och returnerar en tabell som innehåller alla matchande rader från den angivna tabellen. Anta till exempel att du vill veta hur många beställningar varje återförsäljare har gjort i år. Du kan skapa en ny beräknad kolumn i tabellen Återförsäljare som innehåller följande formel som slår upp poster för varje återförsäljare i den ResellerSales_USD tabellen och räknar antalet enskilda beställningar från varje återförsäljare.
=ANTALRADER(RELATERADTABELL(ResellerSales_USD))
I den här formeln hämtar funktionen RELATEDTABLE först värdet för ResellerKey för varje återförsäljare i den aktuella tabellen. (Du behöver inte ange ID-kolumnen någonstans i formeln eftersom Power Pivot använder den befintliga relationen mellan tabellerna.) Funktionen RELATEDTABLE hämtar sedan alla rader från den ResellerSales_USD tabellen som är relaterade till varje återförsäljare och räknar raderna. Om det inte finns någon relation (direkt eller indirekt) mellan de två tabellerna hämtas alla rader från den ResellerSales_USD tabellen.
För återförsäljaren Modular Cycle Systems i vår exempeldatabas finns det fyra order i försäljningstabellen, så funktionen returnerar 4. För Associated Bikes har återförsäljaren ingen försäljning, så funktionen returnerar ett tomt värde.
| Återförsäljare | Poster i tabellen Försäljning för den här återförsäljaren |
|---|---|
| Modulära kretscykelsystem | Återförsäljar-ID |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| Återförsäljar-ID | |
| Tillhörande cyklar |
Obs
Eftersom funktionen RELATEDTABLE returnerar en tabell, inte ett enskilt värde, måste den användas som ett argument till en funktion som utför åtgärder på tabeller. Mer information finns i avsnittet RELATEDTABLE, funktion.