Udostępnij za pośrednictwem


Relacje i odnośniki w formułach

Jedną z najbardziej zaawansowanych funkcji w PowerPivot for Excel jest możliwość tworzenia relacji między tabelami, a następnie użyj powiązane tabele do wyszukiwania lub filtrowania danych pokrewnych.Pobieranie powiązanych wartości z tabel przy użyciu formuły języka z PowerPivot for Excel, wyrażenia analizy danych (DAX).W języku DAX jest używany model relacyjny i dlatego umożliwia on łatwe i dokładne pobieranie powiązanych lub odpowiednich wartości z innej tabeli lub kolumny.

Formuły przeprowadzające wyszukiwanie można tworzyć jako część kolumny obliczeniowej albo jako część miary używanej w tabeli przestawnej lub na wykresie przestawnym.Aby uzyskać więcej informacji, zobacz następujące tematy:

Tworzenie miary

Tworzenie kolumny obliczeniowej

W tej sekcji opisano funkcje DAX, które są dostarczane wraz z przykładami sposobu używania funkcji wyszukiwanie.

Ostrzeżenie

W zależności od typu operacji wyszukiwania lub formuły wyszukiwania, która ma zostać użyta, może być konieczne uprzednie utworzenie relacji między tabelami.Aby uzyskać informacje dotyczące tworzenia relacji, zobacz Relacje między tabelami.

Opis funkcji wyszukiwania

Możliwość wyszukiwania pasujących lub powiązanych danych z innej tabeli jest szczególnie przydatna w sytuacji, gdy bieżąca tabela ma tylko pewnego rodzaju identyfikator, ale potrzebne dane (takie jak cena produktu, jego nazwa lub inne szczegółowe wartości) są przechowywane w powiązanej tabeli.Jest ona również użyteczna, gdy inna tabela zawiera wiele wierszy powiązanych z bieżącym wierszem lub bieżącą wartością.Na przykład można z łatwością pobrać informacje dotyczące całej sprzedaży związane z danym regionem, sklepem lub sprzedawcą.

W odróżnieniu od funkcji wyszukiwania programu Excel, takich jak WYSZUKAJ.PIONOWO, które są oparte na tablicach, lub WYSZUKAJ, które pobierają pierwszą z wielu pasujących wartości, język DAX śledzi istniejące relacje między tabelami połączonymi za pomocą kluczy w celu pobrania pojedynczej powiązanej wartości stanowiącej dokładne dopasowanie.Język DAX umożliwia również pobieranie tabeli rekordów powiązanych z bieżącym rekordem.

Ostrzeżenie

Osoby zaznajomione z relacyjnych baz danych można traktować wyszukiwań w PowerPivot podobne zagnieżdżonych instrukcja subselect w języku Transact-SQL.

Aby uzyskać więcej informacji dotyczących modelu relacyjne używane w PowerPivot, zobacz Omówienie relacji.

Pobieranie pojedynczej powiązanej wartości

Funkcja RELATED zwraca pojedynczą wartość z innej tabeli, która jest powiązana z bieżącą wartością w bieżącej tabeli.Należy określić kolumnę zawierającą żądane dane, a funkcja śledzi istniejące relacje między tabelami w celu pobrania wartości z określonej kolumny w powiązanej tabeli.W niektórych przypadkach funkcja musi prześledzić łańcuch relacji w celu pobrania danych.

Na przykład użytkownik otrzymał listę dzisiejszych wysyłek w formacie programu Excel.Jednak ta lista zawiera tylko numer identyfikacyjny pracownika, numer identyfikacyjny zamówienia i numer identyfikacyjny nadawcy, przez co raport jest mało czytelny.Aby uzyskać dodatkowe informacje, można przekonwertować tej listy do połączona tabela PowerPivot, a następnie utwórz relacje z Employee i Reseller tabel dopasowywania IDPracownika do EmployeeKey pole, i ResellerID do ResellerKey pola.

Aby wyświetlić informacje odnośnika w połączonej tabeli, należy dodać dwie nowe kolumny obliczeniowe, używając następujących formuł:

= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])

Przed wyszukiwaniem

Po wyszukiwaniu

Identyfikator zamówienia Identyfikator pracownika Identyfikator odsprzedawcy
100314 230 445
100315 15 445
100316 76 108
Identyfikator pracownika Pracownik Odsprzedawca
230 Kuppa Vamsi Modular Cycle Systems
15 Pilar Ackeman Modular Cycle Systems
76 Kim Ralls Associated Bikes
Identyfikator zamówienia Identyfikator pracownika Identyfikator odsprzedawcy Pracownik Odsprzedawca
100314 230 445 Kuppa Vamsi Modular Cycle Systems
100315 15 445 Pilar Ackeman Modular Cycle Systems
100316 76 108 Kim Ralls Associated Bikes

Funkcja używa relacji między połączona tabela i Employees i Resellers tabeli, aby uzyskać poprawną nazwę dla każdego wiersza w raporcie.Powiązanych wartości można również używać w obliczeniach.Aby uzyskać więcej informacji i przykłady, zobacz Funkcja RELATED (język DAX).

Pobieranie listy powiązanych wartości

Funkcja RELATEDTABLE śledzi istniejącą relację i zwraca tabelę zawierającą wszystkie pasujące wiersze z określonej tabeli.Na przykład użytkownik chce dowiedzieć się, ile zamówień złożył w tym roku każdy odsprzedawca.Można utworzyć nowej kolumna obliczeniowa w Resellers tabela, która zawiera następująca formuła wyszukuje rekordy dla każdego sprzedawcy w ResellerSales_USD tabela i zlicza liczbę poszczególnych zamówień złożonych przez każdego sprzedawcy.Te tabele stanowią część przykładowego skoroszytu języka DAX.Aby uzyskać więcej informacji na temat przykładowych danych, zobacz Pobieranie przykładowych danych dla programu PowerPivot.

=COUNTROWS(RELATEDTABLE(ResellerSales_USD))

W tej formule funkcja RELATEDTABLE najpierw pobiera wartość ResellerKey dla każdego sprzedawcy w bieżącej tabela.(Nie trzeba określić kolumna z Identyfikatorem gdziekolwiek w formule, ponieważ PowerPivot używa istniejącej relacji między tabelami.) Funkcja RELATEDTABLE następnie pobiera wszystkie wiersze z ResellerSales_USD tabela, które są związane z każdego sprzedawcy i zlicza wiersze. Należy zauważyć, że jeśli nie ma żadnej relacji (bezpośredni lub pośredni) między dwiema tabelami, następnie otrzymasz wszystkie wiersze z ResellerSales_USD tabela.

Dla odsprzedawcy Modular Cycle Systems z przykładowej bazy danych w tabeli sprzedaży są zarejestrowane cztery zamówienia, więc funkcja zwraca wartość 4.Odsprzedawca Associated Bikes nie zrealizował żadnej sprzedaży, więc funkcja zwraca wartość pustą.

Odsprzedawca

Rekordy w tabeli sprzedaży dla tego odsprzedawcy

Modular Cycle Systems

Identyfikator odsprzedawcy SalesOrderNumber
445 SO53494
445 SO71872
445 SO65233
445 SO59000

Associated Bikes

  

Ostrzeżenie

Funkcja RELATEDTABLE zwraca tabelę, a nie pojedynczą wartość, więc musi być używana jako argument funkcji wykonującej operacje na tabelach.Aby uzyskać więcej informacji, zobacz Funkcja RELATEDTABLE (język DAX).