Kontekst w formułach języka DAX

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Kontekst umożliwia wykonywanie analiz dynamicznych, w których wyniki formuły mogą zmieniać się w celu odzwierciedlenia bieżącego wyboru wierszy i komórek oraz dowolnych powiązanych danych. Zrozumienie, czym jest kontekst, oraz efektywne używanie kontekstu stanowi bardzo ważny element tworzenia wysoko wydajnych formuł, dynamicznych analiz i rozwiązywania problemów z formułami.

W tej sekcji zdefiniowano różne typy kontekstu: kontekst wiersza, kontekst zapytania i kontekst filtru. Wyjaśniono, w jaki sposób kontekst jest określany dla formuł znajdujących się w kolumnach obliczeniowych i tabelach przestawnych.

W ostatniej części tego dokumentu znajdują się łącza do szczegółowych przykładów pokazujących, jak wyniki formuł zmieniają się w zależności od kontekstu.

Opis kontekstu

Formuły w Power Pivot może dotyczyć przez filtry zastosowane w tabeli przestawnej, relacje między tabelami i filtry użyte w formułach. Kontekst jest, co umożliwia wykonywanie analiz dynamiczne. Opis kontekstu jest ważne, konstrukcyjnych i rozwiązywanie problemów z formułami.

Istnieją różne typy kontekstu: kontekst wiersza, kontekst zapytania i kontekst filtru.

Kontekst wiersza można uważać za „wiersz bieżący”. Jeśli utworzono kolumnę obliczeniową, kontekst wiersza składa się z wartości w każdym pojedynczym wierszu oraz wartości w kolumnach powiązanych z bieżącym wierszem. Istnieją także funkcje (Funkcja EARLIER i Funkcja EARLIEST), które pobierają wartość z bieżącego wiersza, a następnie używają tej wartości podczas wykonywania operacji na całej tabeli.

Kontekst zapytania dotyczy podzestawu danych, który jest niejawnie tworzony dla każdej komórki w tabeli przestawnej, w zależności od nagłówków wierszy i kolumn.

Kontekst filtru to zestaw wartości dozwolonych w każdej kolumnie, określony na podstawie ograniczeń filtru, które zostały zastosowane do wiersza lub zostały zdefiniowanie przez wyrażenia filtrów w formule.

Początek strony

Kontekst wiersza

W przypadku utworzenia formuły w kolumnie obliczeniowej kontekst wiersza dla tej formuły obejmuje wartości ze wszystkich kolumn w bieżącym wierszu. Jeśli tabela jest powiązana z inną tabelą, kontekst obejmuje też wszystkie wartości z tej innej tabeli, które są powiązane z bieżącym wierszem.

Załóżmy na przykład, możesz utworzyć kolumnę obliczeniową, = [Fracht] + [podatku],

, która dodaje dwie kolumny z jednej tabeli. Ta formuła zachowuje się jak formuły w tabeli programu Excel, które automatycznie odwołują się do wartości z tego samego wiersza. Należy zauważyć, że tabele to coś innego niż zakresy: nie można odwoływać się do wartości z wiersza znajdującego się przed bieżącym wierszem, używając notacji zakresu, i nie można odwoływać się do dowolnie wybranej pojedynczej wartości w tabeli lub komórce. Zawsze trzeba pracować z tabelami i kolumnami.

W kontekście wiersza automatycznie są uwzględniane relacje między tabelami w celu ustalenia, które wiersze w powiązanych tabelach są skojarzone z bieżącym wierszem.

Na przykład w poniższej formule funkcja RELATED jest używana w celu pobrania wartości podatku z powiązanej tabeli na podstawie regionu dostawy dla zamówienia. Wartość podatku jest ustalana dzięki użyciu wartości regionu w bieżącej tabeli, wyszukaniu regionu w powiązanej tabeli i pobraniu z powiązanej tabeli stawki podatku dla regionu.

= [Fracht] + RELATED('Region'[TaxRate])

Ta formuła po prostu pobiera z tabeli Region stawkę podatku dla bieżącego regionu. Nie trzeba znać ani określać klucza łączącego te tabele.

Kontekst wielu wierszy

Język DAX zawiera także funkcje umożliwiające iteracyjne wykonywanie obliczeń w tabeli. Te funkcje mogą mieć wiele bieżących wierszy i wiele kontekstów bieżącego wiersza. Z programistycznego punktu widzenia można powiedzieć, że jest możliwe utworzenie formuły wykonywanej cyklicznie w pętli wewnętrznej i zewnętrznej.

Załóżmy, że skoroszyt zawiera tabeli produkty i tabeli Sales . Może być obsłużone cała tabela sprzedaży jest pełne transakcji obejmujące wiele produktów, i znaleźć największą liczbę zamówionych dla każdego produktu w każdej transakcji.

Wykonanie tego obliczenia w programie Excel wymaga wykonania serii pośrednich sumowań, które w przypadku zmiany danych trzeba będzie również zmienić. Zaawansowani użytkownicy programu Excel mogą potrafić utworzyć formuły tablicowe, które wykonają to zadanie. Z kolei w relacyjnej bazie danych można napisać zagnieżdżone instrukcje podwyboru.

Jednak za pomocą języka DAX można utworzyć pojedynczą formułę, która zwraca poprawną wartość i której wyniki są automatycznie aktualizowane w chwili dodawania danych do tabel.

=MAXX(Filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Aby zapoznać się ze szczegółowym opisem tej formuły, zobacz temat Funkcja EARLIER.

W skrócie funkcja EARLIER przechowuje kontekst wiersza z operacji poprzedzającej bieżącą operację. Ta funkcja zawsze przechowuje w pamięci dla zestawy kontekstu: jeden zestaw kontekstu reprezentuje bieżący wiersz dla wewnętrznej pętli formuły, a drugi zestaw kontekstu reprezentuje bieżący wiersz dla zewnętrznej pętli formuły. Język DAX automatycznie przenosi wartości między tymi dwiema pętlami, dzięki czemu można tworzyć złożone agregacje.

Początek strony

Kontekst zapytania

Kontekst zapytania dotyczy podzestawu danych, który jest niejawnie pobrany formuła. Po upuszczeniu środek lub inne pole wartość w komórce w tabeli przestawnej aparat Power Pivot sprawdza, czy nagłówki wierszy i kolumn, fragmentatory i filtry raportu w celu ustalenia kontekstu. Następnie Power Pivot sprawia, że niezbędne obliczenia, aby wypełnić każdej komórki w tabeli przestawnej. Zestaw danych, który jest pobierana jest kontekst zapytania dla każdej komórki.

Kontekst może zmieniać się w zależności od miejsca użycia formuły, więc wyniki formuły również będą zmieniać się w zależności od tego, czy formuła zostanie użyta w tabeli przestawnej, która zawiera wiele grupowań i filtrów, czy w kolumnie obliczeniowej bez filtrów i z minimalnym kontekstem.

Na przykład tworzona Ta prosta formuła, która sumuje wartości w kolumnie Zysk table:=SUM('Sales'[Profit]) sprzedaży .

Jeśli korzystasz z tej formuły w kolumnie obliczeniowej w tabeli Sales , wyniki formuły będą takie same dla całą tabelę, ponieważ kontekst zapytania formuły jest zawsze całego zestawu danych w tabeli Sales . Wyniki będą mieć zysków dla wszystkich regionów, wszystkie produkty, wszystkich lat i tak dalej.

Zazwyczaj jednak nie ma potrzeby oglądania setek razy tych samych wyników, ale warto zobaczyć zysk za dany rok, w określonym kraju lub regionie, dla określonego produktu albo kombinację tych parametrów i sumy końcowe.

W tabeli przestawnej jest łatwe do zmieniania kontekstu, dodając i usuwając nagłówków wierszy i kolumn i przez dodanie lub usunięcie fragmentatory. Możesz utworzyć formułę jak powyżej, w miarę, a następnie upuść ją do tabeli przestawnej. Po dodaniu nagłówków kolumn lub wierszy w tabeli przestawnej, możesz zmienić kontekst zapytania, w którym jest obliczane środka. Krojenie i filtrowania operacje dotyczy również kontekstu. Dlatego tę samą formułę używane w tabeli przestawnej jest obliczane w kontekście innej kwerendy dla każdej komórki.

Początek strony

Kontekst filtru

Kontekst filtru jest dodawany podczas określania przy użyciu argumentów formuły ograniczeń filtru dla zestawu wartości, które są dozwolone w kolumnie lub tabeli. Kontekst filtru jest stosowany po zastosowaniu innych kontekstów, takich jak kontekst wiersza lub kontekst zapytania.

Na przykład tabelę przestawną oblicza wartości dla każdej komórki według nagłówków wierszy i kolumn, zgodnie z opisem w poprzedniej sekcji na kontekst zapytania. Jednak w miar lub kolumn obliczeniowych, które możesz dodać do tabeli przestawnej, możesz określić wyrażenia filtru kontrolować wartości, które są używane przez formułę. Można również selektywne Wyczyść filtry w określonych kolumnach.

Aby uzyskać więcej informacji dotyczących sposobu tworzenia filtrów w formułach, zobacz temat Funkcje filtru (język DAX).

Aby zapoznać się z przykładem czyszczenia filtrów w celu utworzenia sum końcowych, zobacz temat Funkcja ALL.

Aby zapoznać się z przykładami selektywnego czyszczenia i stosowania filtrów w formułach, zobacz temat Funkcja ALLEXCEPT.

Dlatego konieczne jest sprawdzenie definicji miary lub formuł używanych w tabeli przestawnej, aby móc świadomy kontekstu filtru podczas interpretowania wyników formuł.

Początek strony

Ustalanie kontekstu w formułach

Podczas tworzenia formuły dodatek Power Pivot dla programu Excel najpierw sprawdza składnię ogólną, a następnie sprawdza podane nazwy kolumn i tabel w odniesieniu do możliwych kolumn i tabel w bieżącym kontekście. Jeśli dodatek Power Pivot nie może odnaleźć kolumn i tabel określonych w formule, zwraca błąd.

Kontekst jest ustalany w sposób opisany w poprzednich sekcjach na podstawie tabel dostępnych w skoroszycie, relacji między tabelami i zastosowanych filtrów.

Na przykład jeśli zaimportowano dane do nowej tabeli i nie zastosowano żadnych filtrów, cały zestaw kolumn w tabeli jest częścią bieżącego kontekstu. W przypadku wielu tabel połączonych relacjami, gdy użytkownik pracuje w tabeli przestawnej, która została przefiltrowana przez dodanie nagłówków kolumn i użycie fragmentatorów, kontekst zawiera powiązane tabele oraz dowolne filtry danych.

Koncepcja kontekstu daje duże możliwości, ale może też utrudniać rozwiązywanie problemów z formułami. Zaleca się, aby rozpocząć pracę od prostych formuł i relacji, co umożliwi poznanie zasady działania kontekstu, a następnie przejść do pracy z prostymi formułami w tabelach przestawnych. W poniższej sekcji podano kilka przykładów pokazujących, jak w formułach są używane różne typy kontekstu w celu dynamicznego zwracania wyników.

Przykłady kontekstu w formułach

  • Funkcja RELATED rozwija kontekst bieżącego wiersza tak, aby zawierał wartości z powiązanej kolumny. Umożliwia to wykonywanie wyszukiwań. Przykład w tym temacie pokazuje interakcję między filtrowaniem a kontekstem wiersza.

  • Funkcja FILTER umożliwia określenie wierszy, które mają być uwzględnione w bieżącym kontekście. Przykłady w tym temacie pokazują także sposób osadzania filtrów w innych funkcjach, które wykonują agregacje.

  • Funkcja ALL ustawia kontekst w obrębie formuły. Można jej użyć, aby zastąpić filtry stosowane jako wynik kontekstu zapytania.

  • Funkcja ALLEXCEPT umożliwia usunięcie wszystkich filtrów z wyjątkiem tych określonych przez użytkownika. Oba tematy zawierają przykłady pokazujące tworzenie formuł i złożone konteksty.

  • Funkcje EARLIER i EARLIEST umożliwiają tworzenie pętli w tabelach, ponieważ wykonują obliczenia, a jednocześnie odwołują się do wartości z pętli wewnętrznej. Jeśli użytkownik zna koncepcję rekursji oraz ma wiedzę dotyczącą pętli wewnętrznych i zewnętrznych, z pewnością doceni możliwości oferowane przez funkcje EARLIER i EARLIEST. Jeśli użytkownik nie zna tych koncepcji, powinien uważnie wykonać kroki opisane w tym przykładzie, aby dowiedzieć się, jak konteksty wewnętrzny i zewnętrzny są używane podczas wykonywania obliczeń.

Początek strony

Integralność referencyjna

W tej sekcji omówiono pewne zaawansowane pojęcia dotyczące braku wartości w tabelach dodatku Power Pivot, które są połączone relacjami. Ta sekcja może być użyteczna dla osób, które mają skoroszyty zawierające wiele tabel i złożonych formuł, potrzebujących pomocy w zrozumieniu wyników ich działania.

Zalecane jest, aby użytkownicy, którzy nie znają pojęć związanych z danymi relacyjnymi, przeczytali najpierw temat wprowadzający Omówienie relacji.

Integralność referencyjna i relacje dodatku Power Pivot

Dodatek Power Pivot nie wymaga, aby integralność referencyjna między dwiema tabelami była bezwzględnie wymuszana w celu zdefiniowania prawidłowej relacji. Zamiast tego tworzony jest pusty wiersz po stronie „jeden” każdej relacji jeden-do-wielu i jest on używany do obsługi wszystkich niepasujących wierszy z powiązanej tabeli. Takie rozwiązanie skutecznie symuluje zachowanie sprzężenia zewnętrznego języka SQL.

W tabelach przestawnych w przypadku grupowania danych według strony „jeden” relacji wszelkie niepasujące dane po stronie „wiele” są grupowane razem i uwzględniane w sumach pod nagłówkiem wiersza pustego. Pusty nagłówek jest w przybliżeniu odpowiednikiem „nieznanego elementu członkowskiego”.

Opis typu Nieznany element członkowski

Pojęcie nieznanego elementu członkowskiego może być znane użytkownikom, którzy pracują z wielowymiarowymi systemami baz danych, takimi jak usługi SQL Server Analysis Services. Jeśli ten termin nie jest znany, następujący przykład wyjaśni, co to jest nieznany element członkowski i jak wpływa on na obliczenia.

Załóżmy, że tworzysz obliczeń, która sumuje miesięczna sprzedaż dla każdego sklepu, ale kolumny w tabeli sprzedaży Brak wartości dla nazwy Sklepu. Zakładając, że tabele Przechowywanie i sprzedaży są połączeni według nazwy Sklepu, co powinien nastąpić w formule? Jak należy tabela przestawna grupowanie i wyświetlanie wartości sprzedaży, które nie są związane z istniejącego magazynu?

Ten problem jest typowy dla magazynów danych, w których bardzo duże tabele danych o faktach muszą być logicznie powiązane z tabelami wymiarów zawierającymi informacje o sklepach, regionach i innych atrybutach używanych do klasyfikowania i obliczania faktów. Aby rozwiązać ten problem, wszelkie nowe fakty, które nie są związane z istniejącą jednostką, są tymczasowo przypisywane do nieznanego elementu członkowskiego. Dlatego niepowiązane fakty będą zgrupowane w tabeli przestawnej pod pustym nagłówkiem.

Traktowanie wartości pustych w porównaniu z pustym wierszem

Wartości puste różnią się od pustych wierszy dodawanych w celu obsługi nieznanego elementu członkowskiego. Wartość pusta to specjalna wartość służąca do reprezentowania wartości null, ciągów pustych i innych braków wartości. Aby uzyskać więcej informacji dotyczących wartości pustej oraz innych typów danych języka DAX, zobacz temat Typy danych w modelach danych.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×