Jedną z najbardziej zaawansowanych funkcji programu Power Pivot jest możliwość tworzenia relacji między tabelami, a następnie używania powiązanych tabel do wyszukiwania lub filtrowania powiązanych danych. Powiązane wartości można pobrać z tabel przy użyciu języka formuł dostępnego w językuPower Pivot, Data Analysis Expressions (DAX). Język DAX używa modelu relacyjnej, przez co można łatwo i dokładnie pobrać powiązane lub odpowiadające im wartości w innej tabeli lub innej kolumnie. Jeśli znasz funkcję WYSZUKAJ.V.EXCEL w programie Excel, ta funkcja w programie Power Pivot jest podobna, ale znacznie łatwiejsza do wdrożenia.
Możesz tworzyć formuły, które tworzą odnośniki jako część kolumny obliczeniowej lub jako część miary do użycia w tabeli przestawnej lub w wykres przestawny. Aby uzyskać więcej informacji, zobacz następujące tematy:
Pola obliczeniowe w dodatku Power Pivot
Kolumny obliczeniowe w dodatku Power Pivot
W tej sekcji opisano funkcje języka DAX dostępne do wyszukiwania oraz przedstawiono kilka przykładów ich używania.
Uwaga: W zależności od typu operacji wyszukiwania lub formuły odnośnika, której chcesz użyć, może być konieczne najpierw utworzenie relacji między tabelami.
Opis funkcji odnośników
Możliwość wyszukiwania pasujących lub powiązanych danych z innej tabeli jest szczególnie przydatna w sytuacjach, gdy w bieżącej tabeli znajduje się tylko pewien identyfikator, ale potrzebne dane (takie jak cena produktu, nazwa lub inne szczegółowe wartości) są przechowywane w powiązanej tabeli. Jest to również przydatne, gdy w innej tabeli znajduje się wiele wierszy powiązanych z bieżącym wierszem lub bieżącą wartością. Na przykład możesz łatwo pobrać wszystkie sprzedaż powiązane z określonym regionem, sklepem lub sprzedawcą.
W odróżnieniu od funkcji wyszukiwania języka Excel, takich jak WYSZUKAJ.WYSZUKAJ, które są oparte na tablicach, lub WYSZUKAJ, które pobiera pierwszą z wielu pasujących wartości, język DAX jest zgodny z istniejącymi relacjami między tabelami sprzężeniami kluczy w celu uzyskania dokładnie pasującej wartości. Język DAX może również pobierać tabelę rekordów powiązanych z bieżącym rekordem.
Uwaga: Jeśli znasz relacyjne bazy danych, możesz pojąć wyszukiwania w programie Power Pivot podobnie jak zagnieżdżona instrukcja podwybór w programie Transact-SQL.
Pobieranie pojedynczej wartości pokrewnej
Funkcja RELATED zwraca pojedynczą wartość z innej tabeli powiązaną z bieżącą wartością w bieżącej tabeli. Określasz kolumnę zawierającą dane, których potrzebujesz, a funkcja stosuje się do istniejących relacji między tabelami w celu pobrania wartości z określonej kolumny w powiązanej tabeli. W niektórych przypadkach ta funkcja musi podążać za łańcuchem relacji, aby pobrać dane.
Załóżmy na przykład, że masz listę dzisiejszych wysyłki w Excel. Jednak ta lista zawiera tylko numer identyfikacyjny pracownika, numer identyfikacyjny zamówienia i numer identyfikacyjny spedytora, co ułatwia odczytanie raportu. Aby uzyskać dodatkowe informacje, możesz przekonwertować listę na tabelę połączona Power Pivot, Power Pivot następnie utworzyć relacje z tabelami Pracownik i Odsprzedawca, pasujące do pola EmployeeID (Identyfikator Pracownika) i ResellerID (KluczSprzedawców) z polem ResellerKey.
Aby wyświetlić informacje odnośnika w tabeli połączonej, dodaj dwie nowe kolumny obliczeniowe z następującymi formułami:
= RELATED('Pracownicy'[Nazwa Pracownika])
= RELATED('Resellers'[Nazwa_firmy])
Dzisiejsze przesyłki przed rozpoczęciem wyszukiwania
ID_zamówienia |
EmployeeID (Identyfikator pracownika) |
ResellerID |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabela Employees
EmployeeID (Identyfikator pracownika) |
Pracownik |
Odsprzedawca |
---|---|---|
230 |
Kuppa Vamsi |
Modular Cycle Systems |
15 |
Pilar Ackeman |
Modular Cycle Systems |
76 |
Kim Ralls |
Rowery skojarzone |
Dzisiejsze przesyłki z odnośnikami
ID_zamówienia |
EmployeeID (Identyfikator pracownika) |
ResellerID |
Pracownik |
Odsprzedawca |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Modular Cycle Systems |
100315 |
15 |
445 |
Pilar Ackeman |
Modular Cycle Systems |
100316 |
76 |
108 |
Kim Ralls |
Rowery skojarzone |
Ta funkcja używa relacji między tabelą połączona a tabelą Pracownicy i Odsprzedawcy, aby uzyskać poprawną nazwę dla każdego wiersza w raporcie. Wartości pokrewnych można również używać do obliczeń. Aby uzyskać więcej informacji i przykładów, zobacz RELATED, funkcja.
Pobieranie listy wartości pokrewnych
Funkcja RELATEDTABLE działa zgodnie z istniejącą relacją i zwraca tabelę zawierającą wszystkie pasujące wiersze z określonej tabeli. Załóżmy na przykład, że chcesz sprawdzić, ile zamówień zda w tym roku każdy odsprzedawca. Możesz utworzyć nową kolumnę obliczeniową w tabeli Resellers, która zawiera następującą formułę, która wyszukuje rekordy dla każdego odsprzedawcy w tabeli ResellerSales_USD i zlicza poszczególne zamówienia złożone przez poszczególnych sprzedawców.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
W tej formule funkcja RELATEDTABLE najpierw pobiera wartość resellerKey dla każdego odsprzedawcy w bieżącej tabeli. (Nie trzeba określać kolumny Identyfikator w żadnym miejscu w formule, ponieważ Power Pivot używa istniejącej relacji między tabelami). Funkcja RELATEDTABLE pobiera wszystkie wiersze z tabeli ResellerSales_USD, które są powiązane z każdym sprzedawcą, i zlicza wiersze. Jeśli nie ma żadnej relacji (bezpośredniej lub pośredniej) między dwiema tabelami, zostaną na przykład wszystkie wiersze z ResellerSales_USD tabeli.
W przypadku sprzedawcy z modułem Modular Cycle Systems w naszej przykładowej bazie danych w tabeli sprzedaży znajdują się cztery zamówienia, więc funkcja zwraca wartość 4. W przypadku produktów Associated Bikes odsprzedawca nie ma sprzedaży, więc funkcja zwraca wartość pustą.
Odsprzedawca |
Rekordy w tabeli sprzedaży tego odsprzedawcy |
|
---|---|---|
Modular Cycle Systems |
Identyfikator odsprzedawcy |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
Identyfikator odsprzedawcy |
SalesOrderNumber |
|
Rowery skojarzone |
Uwaga: Ponieważ funkcja RELATEDTABLE zwraca tabelę, a nie pojedynczą wartość, należy jej użyć jako argumentu funkcji wykonującej operacje na tabelach. Aby uzyskać więcej informacji, zobacz RELATEDTABLE, funkcja.