Kontekst umożliwia wykonywanie analizy dynamicznej, w której wyniki formuły mogą się zmieniać w celu odzwierciedlenia bieżącego wiersza lub zaznaczenia komórki, a także wszelkich powiązanych danych. Zrozumienie kontekstu i efektywne korzystanie z kontekstu jest bardzo ważne do tworzenia formuł o wysokiej wydajności, analiz dynamicznych i rozwiązywania problemów w formułach.

Ta sekcja określa różne typy kontekstu: kontekst wiersza, kontekst zapytania i kontekst filtrowania. Wyjaśniono w nim, jak ocenia się kontekst dla formuł w kolumnach obliczeniowych i w tabelach przestawnych.

W ostatniej części tego artykułu znajdują się linki do szczegółowych przykładów, które ilustrują, jak wyniki formuł zmieniają się w zależności od kontekstu.

Opis kontekstu

Na formuły Power Pivot mogą mieć wpływ filtry zastosowane w tabeli przestawnej, relacje między tabelami i filtry używane w formułach. Kontekst umożliwia przeprowadzanie analizy dynamicznej. Zrozumienie kontekstu jest ważne dla tworzenia formuł i rozwiązywania problemów.

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

Kontekst wiersza można określić jako "bieżący wiersz". Jeśli utworzono kolumnę obliczeniową, kontekst wiersza składa się z wartości w każdym wierszu i wartości w kolumnach powiązanych z bieżącym wierszem. Istnieją również niektóre funkcje(EARLIER i EARLIEST),które korzystają z wartości z bieżącego wiersza, a następnie używają tej wartości podczas wykonywania operacji na całej tabeli.

Kontekst zapytania odwołuje się do podzbioru danych, który jest niejawnie utworzony dla każdej komórki w tabeli przestawnej, w zależności od nagłówków wierszy i kolumn.

Kontekst filtru to zestaw dozwolonych wartości w każdej kolumnie na podstawie ograniczeń filtrowania zastosowanych do wiersza lub zdefiniowanych przez wyrażenia filtru w formule.

Początek strony

Kontekst wiersza

Jeśli tworzysz formułę w kolumnie obliczeniowej, kontekst wiersza tej formuły uwzględnia wartości ze wszystkich kolumn w bieżącym wierszu. Jeśli tabela jest powiązana z inną tabelą, zawartość obejmuje również wszystkie wartości z tej innej tabeli, które są powiązane z bieżącym wierszem.

Załóżmy na przykład, że tworzysz kolumnę obliczeniową: =[Fracht] + [Podatek],

, co powoduje dodanie dwóch kolumn z tej samej tabeli. Ta formuła zachowuje się jak formuły w tabeli Excel, które automatycznie odwołują się do wartości z tego samego wiersza. Zwróć uwagę, że tabele różnią się od zakresów: nie można odwołać się do wartości z wiersza przed bieżącym wierszem przy użyciu notacji zakresu i nie można odwoływać się do dowolnej dowolnej pojedynczej wartości w tabeli lub komórce. Musisz zawsze pracować z tabelami i kolumnami.

Kontekst wierszy jest automatycznie następujący po relacjach między tabelami w celu określenia, które wiersze w powiązanych tabelach są skojarzone z bieżącym wierszem.

Na przykład następująca formuła używa funkcji RELATED w celu pobrania wartości podatku z powiązanej tabeli na podstawie regionu, do który wysłano zamówienie. Wartość podatku jest ustalana na podstawie wartości dla regionu w bieżącej tabeli, podczas szukania regionu w powiązanej tabeli, a następnie uzyskiwania stawki podatkowej dla tego regionu z powiązanej tabeli.

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

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

Kontekst wielu wierszy

Ponadto język DAX zawiera funkcje, które iterują obliczenia nad tabelą. Te funkcje mogą mieć wiele bieżących wierszy i bieżących kontekstów wierszy. W terminach programowania można tworzyć formuły cykliczne w wewnętrznej i zewnętrznej pętli.

Załóżmy na przykład, że skoroszyt zawiera tabelę Produkty i tabelę Sprzedaż. Można przejść przez całą tabelę sprzedaży obejmującą transakcje obejmujące wiele produktów i znaleźć w ramach jednej transakcji największą ilość zamówiona dla każdego produktu.

W Excel obliczenia te wymagają serii podsumowań pośrednich, które w przypadku zmiany danych muszą zostać ponownie odbudowane. Jeśli jesteś power user of Excel, możesz mieć możliwość tworzenia formuł tablicowych, które wykonać to zadanie. W relacyjnej bazie danych możesz również pisać zagnieżdżone podwybór.

Za pomocą języka DAX można jednak utworzyć jedną formułę, która zwraca prawidłową wartość, a wyniki będą aktualizowane automatycznie za każdym razem, gdy dodasz dane do tabel.

=MAXX(FILTER(Sprzedaż;[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Aby uzyskać szczegółowe informacje na temat tej formuły, zobacz WCZEŚNIEJSZAwersja .

Krótko mówiąc, funkcja EARLIER zapisuje kontekst wiersza z operacji, która była wcześniejsza niż bieżąca operacja. Funkcja cały czas przechowuje w pamięci dwa zbiory kontekstu: jeden zestaw kontekstu reprezentuje bieżący wiersz wewnętrznej pętli formuły, a inny zestaw kontekstu reprezentuje bieżący wiersz zewnętrznej pętli formuły. Język DAX automatycznie pobiera wartości między dwiema pętlemi, aby można było tworzyć złożone agregie.

Początek strony

Kontekst kwerendy

Kontekst zapytania odwołuje się do podzbioru danych niejawnie pobranych dla formuły. Po upuszczenie miary lub innego pola wartości w komórce tabeli przestawnej aparat Power Pivot sprawdza nagłówki wierszy i kolumn, fragmentatory i filtry raportów w celu ustalenia kontekstu. Następnie Power Pivot obliczenia konieczne do wypełnienia każdej komórki w tabeli przestawnej. Pobierany zestaw danych to kontekst zapytania dla każdej komórki.

Kontekst może się zmieniać w zależności od miejsca, w którym formuła jest umieszczana, dlatego wyniki formuły również się zmieniają w zależności od tego, czy używasz formuły w tabeli przestawnej z wieloma grupowaniami i filtrami, czy w kolumnie obliczeniowej bez filtrów i w minimalnym kontekście.

Załóżmy na przykład, że jest tworzyć prostą formułę sumową wartości w kolumnie Zysk w tabeli Sprzedaż:=SUMA('Sprzedaż'[Zysk]).

Jeśli użyjemy tej formuły w kolumnie obliczeniowej w tabeli Sprzedaż, wyniki formuły będą takie same dla całej tabeli, ponieważ kontekst zapytania dla formuły jest zawsze całym zestawem danych tabeli Sprzedaż. Wyniki będą mieć zysk dla wszystkich regionów, wszystkich produktów, wszystkich lat i tak dalej.

Zazwyczaj jednak nie chcesz, aby wyniki były takie same kilkaset razy, ale zamiast tego chcesz uzyskać zysk za konkretny rok, określony kraj lub region, określony produkt lub kombinację tych produktów, a następnie uzyskać sumę całkowitą.

W tabeli przestawnej można łatwo zmienić kontekst, dodając lub usuwając nagłówki kolumn i wierszy oraz dodając lub usuwając fragmentatory. Możesz utworzyć formułę, jak po pierwsze, jako miarę, a następnie upuścić ją w tabeli przestawnej. Za każdym razem, gdy dodajesz nagłówki kolumn lub wierszy do tabeli przestawnej, zmieniasz kontekst zapytania, w którym miara jest szacowana. Operacje odszukiania i filtrowania mają również wpływ na kontekst. Dlatego ta sama formuła, użyta w tabeli przestawnej, jest szacowana w innym kontekście zapytania dla każdej komórki.

Początek strony

Kontekst filtru

Kontekst filtru jest dodawany podczas określania ograniczeń filtrowania dla zestawu wartości dozwolonych w kolumnie lub tabeli przy użyciu argumentów w formule. Kontekst filtru ma zastosowanie poza innymi kontekstami, takimi jak kontekst wiersza lub kontekst zapytania.

Na przykład tabela przestawna oblicza wartości dla każdej komórki na podstawie nagłówków wierszy i kolumn zgodnie z opisem w poprzedniej sekcji dotyczącej kontekstu zapytania. Jednak w miarach lub kolumnach obliczeniowych, które są dodawanie do tabeli przestawnej, możesz określić wyrażenia filtru, aby sterować wartościami używanymi przez formułę. Można także selektywnie wyczyścić filtry w określonych kolumnach.

Aby uzyskać więcej informacji na temat tworzenia filtrów w formułach, zobacz funkcje filtrowania.

Aby uzyskać przykład sposobu, w jaki można wyczyścić filtry w celu utworzenia sum sum całkowitych, zobacz WSZYSTKO.

Aby uzyskać przykłady selektywnego wyczyszczenia i zastosowania filtrów w formułach, zobacz temat ALLEXCEPT, funkcja.

Dlatego należy przejrzeć definicje miar lub formuł używanych w tabeli przestawnej, aby mieć świadomość kontekstu filtru podczas interpretowania wyników formuł.

Początek strony

Określanie kontekstu w formułach

Podczas tworzenia formuły program Power Pivot dla programu Excel najpierw sprawdza składnię ogólną, a następnie sprawdza nazwy kolumn i tabel możliwych kolumn i tabel w bieżącym kontekście. Jeśli Power Pivot nie będzie można znaleźć kolumn i tabel określonych w formule, zostanie wyświetlany komunikat o błędzie.

Kontekst jest określany jako opisany w poprzednich sekcjach przy użyciu dostępnych tabel w skoroszycie, wszelkich relacji między tabelami oraz wszelkich zastosowanych filtrów.

Jeśli na przykład właśnie zaimportowano dane do nowej tabeli i nie zastosowano filtrów, cały zestaw kolumn w tabeli stanowi część bieżącego kontekstu. Jeśli masz wiele tabel połączonych relacjami i pracujesz w tabeli przestawnej przefiltrowanej przez dodanie nagłówków kolumn i użycie fragmentatorów, kontekst obejmuje powiązane tabele i filtry danych.

Kontekst to zaawansowane pojęcie, które może również utrudniać rozwiązywanie problemów z formułami. Zalecamy rozpoczęcie od prostych formuł i relacji w celu zobaczenia, jak działa kontekst, a następnie rozpoczęcie eksperymentowania z prostymi formułami w tabelach przestawnych. W poniższej sekcji popisano również kilka przykładów dynamicznego zwracania wyników za pomocą formuł o różnych typach kontekstu.

Przykłady kontekstu w formułach

  • Funkcja RELATED rozszerza kontekst bieżącego wiersza, aby uwzględnić wartości w powiązanej kolumnie. Umożliwia to wykonywanie odnośników. W przykładzie w tym temacie przedstawiono interakcje filtrowania i kontekstu wierszy.

  • Funkcja FILTRUJ umożliwia określenie wierszy, które mają być dołączane w bieżącym kontekście. W przykładach w tym temacie pokazano również, jak osadzać filtry w innych funkcjach, które wykonują funkcje agregujące.

  • Funkcja WSZYSTKIE ustawia kontekst w formule. Za jego pomocą można zastępować filtry stosowane w kontekście zapytania.

  • Funkcja ALLEXCEPT umożliwia usunięcie wszystkich filtrów z wyjątkiem filtru określonego przez użytkownika. W obu tematach po przedstawiono przykłady, które zawierają informacje o tym, jak budować formuły i zrozumieć złożone konteksty.

  • Funkcje NAJWCZEŚNIEJSZE i NAJWCZEŚNIEJSZE umożliwiają zapętlinie tabel przez wykonywanie obliczeń przy odwoływaniu się do wartości z pętli wewnętrznej. Jeśli znasz koncepcję powtarzania oraz sprzężenie wewnętrzne i zewnętrzne, docenisz możliwości, jakie zapewniają funkcje EARLIER i EARLIEST. Jeśli nie masz nowych pojęć, starannie wykonaj czynności opisane w przykładzie, aby zobaczyć, jak w obliczeniach są używane konteksty wewnętrzne i zewnętrzne.

Początek strony

Więzy integralności

W tej sekcji omówiono niektóre zaawansowane pojęcia związane z brakującymi wartościami w Power Pivot połączonych relacjami. Ta sekcja może być przydatna, jeśli masz skoroszyty z wieloma tabelami i złożonymi formułami oraz potrzebujesz pomocy w zrozumieniu wyników.

Jeśli nie masz nowych pojęć związanych z danymi relacyjnych, zalecamy przeczytanie najpierw tematu wprowadzającego, Omówienie relacji.

Więzy integralności i Power Pivot relacji

Power Pivot nie wymaga wymuszania więzów integralności między dwiema tabelami w celu zdefiniowania prawidłowej relacji. Zamiast tego na końcu "jeden" każdej relacji jeden-do-wielu jest tworzony pusty wiersz i jest używany do obsługi wszystkich niepasujących wierszy z powiązanej tabeli. Działa ona jako sprzężenie SQL zewnętrzne.

Jeśli w tabelach przestawnych dane są grupowane według jednej strony relacji, niepasowane dane po stronie "wiele" relacji są grupowane i uwzględniane w sumach z pustym nagłówkiem wiersza. Pusty nagłówek jest mniej więcej odpowiednikiem "nieznanego członka".

Opis nieznanego członka

Pojęcie "nieznanego członka" prawdopodobnie znasz, jeśli pracujesz z wielowymiarowymi systemami baz danych, takimi jak usługi SQL Server Analysis Services. Jeśli termin jest dla Ciebie nowy, w poniższym przykładzie wyjaśniono, co to jest nieznany członek i jak wpływa on na obliczenia.

Załóżmy, że tworzysz obliczenie sumowania miesięcznej sprzedaży dla każdego sklepu, ale w kolumnie w tabeli Sprzedaż brakuje wartości w nazwie sklepu. Co można oczekiwać w formule, ponieważ tabele sklepu i sprzedaży są połączone nazwą sklepu? Jak należy zgrupować tabelę przestawną lub wyświetlić wyniki sprzedaży, które nie są związane z istniejącym magazynem?

Ten problem występuje często w magazynach danych, gdzie duże tabele danych faktów muszą być logicznie powiązane z tabelami wymiarów, które zawierają informacje o magazynach, regionach i innych atrybutach, które są używane do kategoryzowania i obliczania faktów. Aby rozwiązać ten problem, wszystkie nowe fakty, które nie są związane z istniejącą jednostką, zostaną tymczasowo przypisane do nieznanego członka. Dlatego niepowiązane fakty będą wyświetlane pogrupowane w tabeli przestawnej pod pustym nagłówkiem.

Traktowanie wartości pustych a pustego wiersza

Puste wartości różnią się od pustych wierszy dodawanych w celu uwzględnienia nieznanego członka. Wartość pusta to specjalna wartość używana do reprezentowania wartości null, pustych ciągów i innych brakujących wartości. Aby uzyskać więcej informacji na temat wartości pustej, a także o innych typach danych języka DAX, zobacz Typy danych w modelach danych.

Początek strony

Potrzebna dalsza pomoc?

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

Czy te informacje były pomocne?

Jaka jest jakość tłumaczenia?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×