Kontekst w formułach języka DAX

Uwaga: Staramy się udostępniać najnowszą zawartość Pomocy w Twoim języku tak szybko, jak to możliwe. Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Prosimy o powiadomienie nas, czy te informacje były pomocne, u dołu tej strony. Oto angielskojęzyczny artykuł do wglądu.

Kontekst umożliwia przeprowadzanie analizy dynamicznej, w której wyniki formuły mogą się zmieniać, aby odzwierciedlić bieżący wybór wiersza lub komórki, a także dowolne powiązane dane. Zrozumienie kontekstu i korzystanie z kontekstu jest bardzo ważne w przypadku tworzenia wysoce wydajnych formuł, analiz dynamicznych oraz rozwiązywania problemów z formułami.

W tej sekcji zdefiniowano różne typy kontekstu: kontekst wiersza, kontekst zapytania i kontekst filtru. Objaśnienie obliczania kontekstu formuł w kolumnach obliczeniowych i tabelach przestawnych.

W ostatniej części tego artykułu znajdują się łącza do szczegółowych przykładów ilustrujących zmianę wyników formuł w zależności od kontekstu.

Opis kontekstu

Filtry zastosowane w tabeli przestawnej mogą dotyczyć formuł w Power Pivot, między innymi między tabelami i filtrami użytymi w formułach. W tym kontekście można wykonać analizę dynamiczną. Opis kontekstu jest ważny w przypadku tworzenia i rozwiązywania problemów z formułami.

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

Kontekst wiersza można traktować jako "bieżący wiersz". Jeśli utworzono kolumnę obliczeniową, kontekst wiersza składa się z wartości w poszczególnych wierszach i wartościach kolumn powiązanych z bieżącym wierszem. Istnieją również pewne funkcje (wcześniejsze i najwcześniejsze), które uzyskają wartość z bieżącego wiersza, a następnie używają tej wartości podczas wykonywania operacji na całej tabeli.

Kontekst kwerendy odwołuje się do podzbioru danych, które są niejawnie tworzone 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 na podstawie ograniczeń filtru, które zostały zastosowane do wiersza lub które zdefiniowano za pomocą wyrażeń filtru w formule.

Początek strony

Kontekst wiersza

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

Załóżmy na przykład, że tworzysz kolumnę obliczeniową = [fracht] + [podatek],

, które dodaje dwie kolumny z tej samej 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. 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łać się do żadnej pojedynczej wartości w tabeli lub komórce. Musisz zawsze pracować z tabelami i kolumnami.

Kontekst wiersza automatycznie podąża za relacjami między tabelami, aby ustalić, które wiersze w tabelach pokrewnych są skojarzone z bieżącym wierszem.

Na przykład poniższa formuła używa funkcji poKREWnej w celu pobrania wartości podatkowej z powiązanej tabeli na podstawie regionu, do którego wysłano zamówienie. Wartość podatku jest określana przy użyciu wartości regionu w bieżącej tabeli, wyszukiwania regionu w powiązanej tabeli, a następnie uzyskiwania stawki podatkowej dla tego regionu z tabeli powiązanej.

= [Fracht] + powiązane ("region" [TaxRate])

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

Kontekst wielu wierszy

Ponadto język DAX obejmuje funkcje iteracyjne obliczeń w tabeli. Te funkcje mogą mieć wiele bieżących wierszy i konteksty bieżącego wiersza. W warunkach programistycznych możesz tworzyć formuły powtarzające się w pętli wewnętrznej i zewnętrznej.

Załóżmy na przykład, że skoroszyt zawiera tabelę produkty i tabelę sprzedaż . Możesz chcieć przejść przez całą tabelę sprzedaż, która jest pełen transakcji dotyczących wielu produktów, i znaleźć największą ilość zamówioną dla każdego produktu w dowolnej transakcji.

W programie Excel to obliczenie wymaga serii pośrednich podsumowań, które muszą zostać odbudowane po zmianie danych. Jeśli jesteś zaawansowanym użytkownikiem programu Excel, możesz utworzyć formuły tablicowe, które będą wykonywać to zadanie. Alternatywnie w relacyjnej bazie danych można pisać zagnieżdżone podselektory.

Jednak w języku DAX można utworzyć pojedynczą formułę, która zwraca prawidłową wartość, a wyniki są automatycznie aktualizowane, ilekroć dodasz dane do tabel.

= MAXX (FILTER (Sales, [ProdKey] = starsze ([ProdKey])), Sales [OrderQty])

Aby zapoznać się z szczegółowym instruktażem tej formuły, zobacz wcześniejsze.

W skrócie funkcja WCZEŚNIEJSZa przechowuje kontekst wiersza na podstawie operacji poprzedzającej bieżącą operację. W każdej chwili funkcja przechowuje w pamięci dwa zestawy kontekstu: jeden zestaw kontekstu reprezentuje bieżący wiersz wewnętrznej pętli formuły, a inny zestaw kontekstu reprezentuje bieżący wiersz pętli zewnętrznej w formule. Język DAX automatycznie pobiera wartości między dwiema pętlami, aby można było tworzyć skomplikowane agregacje.

Początek strony

Kontekst kwerendy

Kontekst kwerendy odwołuje się do podzbioru danych, które są niejawnie pobierane dla formuły. Po upuszczeniu miary lub innych pól wartości do komórki w tabeli przestawnej aparat Power Pivot sprawdza nagłówki wierszy i kolumn, fragmentatory i filtry raportów w celu określenia kontekstu. Następnie Power Pivot dokonuje niezbędnych obliczeń, aby wypełnić poszczególne komórki w tabeli przestawnej. Zestaw pobranych danych jest kontekstem kwerendy dla każdej komórki.

Ponieważ kontekst może się zmieniać w zależności od miejsca umieszczenia formuły, wyniki formuły również zmieniają się w zależności od tego, czy formuła jest używana w tabeli przestawnej z wieloma grupowaniem i filtrem, czy w kolumnie obliczeniowej bez filtrów i minimalnym kontekstem.

Załóżmy na przykład, że utworzysz tę prostą formułę, która sumuje wartości w kolumnie zysk w tabeli Sales : = suma ("sprzedaż" [zysk]).

Jeśli ta formuła jest używana w kolumnie obliczeniowej w tabeli sprzedaż , wyniki formuły będą takie same dla całej tabeli, ponieważ kontekst kwerendy dla formuły jest zawsze cały zestaw danych w tabeli sprzedaż . Wyniki będą miały zyski dla wszystkich regionów, wszystkich produktów, wszystkich lat itd.

Zwykle jednak nie chcesz wyświetlać tego samego ciągu setek, ale zamiast tego chcesz uzyskać zysk z określonego roku, konkretnego kraju lub regionu, konkretnego produktu lub kombinacji tych elementów, a następnie uzyskać sumę końcową.

W tabeli przestawnej można łatwo zmienić kontekst przez dodanie lub usunięcie nagłówków kolumny i wiersza oraz dodanie lub usunięcie fragmentatorów. Możesz utworzyć formułę taką jak wyżej, w mierze, a następnie upuścić ją w tabeli przestawnej. Po dodaniu nagłówków kolumn lub wierszy do tabeli przestawnej należy zmienić kontekst kwerendy, w którym jest oceniana miara. Operacje odcięć i filtrowania wpływają również na kontekst. Dlatego ta sama formuła używana w tabeli przestawnej jest obliczana w innym kontekście kwerendy dla każdej komórki.

Początek strony

Kontekst filtru

Kontekst filtru jest dodawany po określeniu ograniczeń filtru dla zestawu wartości dozwolonych w kolumnie lub tabeli przy użyciu argumentów do formuły. Kontekst filtru jest stosowany na początku innych kontekstów, takich jak kontekst wierszy lub kontekst kwerendy.

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 w kontekście kwerendy. Jednak w ramach miar lub kolumn obliczeniowych dodawanych do tabeli przestawnej możesz określić wyrażenia filtru umożliwiające kontrolowanie wartości, które są używane przez formułę. Możesz również selektywnie wyczyścić filtry dla określonych kolumn.

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

Aby zapoznać się z przykładem sposobu czyszczenia filtrów w celu tworzenia sum końcowych, zobacz wszystkie.

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

Dlatego należy przejrzeć definicje miar lub formuł używanych w tabeli przestawnej w celu poznania kontekstu filtru podczas interpretowania wyników formuł.

Początek strony

Ustalanie kontekstu w formułach

Podczas tworzenia formuły Power Pivot dla programu Excel najpierw sprawdza składnię ogólną, a następnie sprawdza nazwy kolumn i tabel, które zostały podane w odniesieniu do możliwych kolumn i tabel w bieżącym kontekście. Jeśli Power Pivot nie może znaleźć kolumn i tabel określonych przez formułę, zostanie wyświetlony komunikat o błędzie.

Kontekst jest określony w sposób opisany w poprzednich sekcjach przy użyciu dostępnych tabel w skoroszycie, wszelkich relacji między tabelami i wszelkich zastosowanych filtrów.

Jeśli na przykład dane zostały właśnie zaimportowane do nowej tabeli i nie zastosowano żadnych filtrów, cały zestaw kolumn w tabeli jest częścią bieżącego kontekstu. Jeśli istnieje wiele tabel połączonych relacjami i Pracujesz w tabeli przestawnej, która została przefiltrowana przez dodanie nagłówków kolumn i używanie fragmentatorów, kontekst zawiera powiązane tabele i wszystkie filtry danych.

Kontekst jest potężnym koncepcją, która może także utrudnić rozwiązywanie problemów z formułami. Zalecamy Rozpoczynanie pracy z prostymi formułami i relacjami, aby zobaczyć, jak działa kontekst, a następnie rozpocząć eksperymentowanie z prostymi formułami w tabelach przestawnych. W poniższej sekcji przedstawiono także przykłady użycia różnych typów kontekstu do dynamicznego zwracania wyników.

Przykłady kontekstu w formułach

  • Funkcja poKREWna rozszerza kontekst bieżącego wiersza w celu uwzględnienia wartości w powiązanej kolumnie. Umożliwia to przeprowadzanie odnośników. W przykładzie w tym temacie przedstawiono interakcję filtrowania i kontekstu wiersza.

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

  • Kontekst zestawu funkcji wszystkie w formule. Za pomocą tej funkcji można zastępować filtry stosowane jako wyniki kontekstu kwerend.

  • Funkcja ALLEXCEPT. Jeżeli umożliwia usunięcie wszystkich filtrów oprócz określonego przez użytkownika. Oba tematy zawierają przykłady, które przeprowadzą Cię przez tworzenie formuł i opis złożonych kontekstów.

  • Funkcja WCZEŚNIEJSZa i najWCZEŚNIEJSZa umożliwia przechodzenie między tabelami przez wykonywanie obliczeń, które odwołują się do wartości z pętli wewnętrznej. Jeśli znasz koncepcję rekursji, a istnieją pętle wewnętrzne i zewnętrzne, dowiesz się, jaka jest moc, którą zapewnia funkcja WCZEŚNIEJSZa i najWCZEŚNIEJSZa. Jeśli jesteś nowym użytkownikiem tych koncepcji, postępuj zgodnie z instrukcjami podanymi w przykładzie, aby sprawdzić, jak kontekst wewnętrzny i zewnętrzny są używane w obliczeniach.

Początek strony

Więzy integralności

W tej sekcji omówiono zaawansowane koncepcje dotyczące brakujących wartości w tabelach programu Power Pivot połączonych relacjami. Ta sekcja może być przydatna w przypadku skoroszytów zawierających wiele tabel i złożonych formuł i potrzebujesz pomocy w zrozumieniu wyników.

Jeśli nie znasz się na relacyjnych koncepcjach danych, zalecamy najpierw zapoznanie się z tematem wprowadzającym, Omówienie relacji.

Więzy integralności i relacje Power Pivot

Power Pivot nie wymaga wymuszania integralności referencyjnej między dwiema tabelami w celu zdefiniowania prawidłowej relacji. Zamiast tego tworzony jest pusty wiersz na końcu "jednego" dla każdej relacji jedna-do-wielu i jest on wykorzystywany do obsługi wszystkich niezgodnych wierszy z tabeli powiązanej. W praktyce działa jako sprzężenie zewnętrzne SQL.

Jeśli dane są grupowane w tabelach przestawnych po jednej stronie relacji, wszystkie niedopasowane dane po stronie wielu relacji są grupowane i zostaną uwzględnione w sumach z pustym nagłówkiem wiersza. Pusty nagłówek jest w przybliżeniu odpowiednikiem "nieznany członek".

Opis nieznanego członka

Jeśli pracujesz z wielowymiarowymi systemami baz danych, na przykład usługami SQL Server Analysis Services, koncepcja nieznanego członka prawdopodobnie Cię zna. Jeśli termin jest nowy, w poniższym przykładzie wyjaśniono, co to jest nieznany element członkowski i jak wpływa na obliczenia.

Załóżmy, że jest tworzone obliczenie sumuje sprzedaż miesięczną dla każdego sklepu, ale w kolumnie w tabeli sprzedaż brakuje wartości dla nazwy sklepu. Pod uwagę, że tabele sklepu i sprzedaży są połączone według nazwy sklepu, co oczekiwano w formule? W jaki sposób ma być wyświetlana grupa tabela przestawna, czy dane dotyczące sprzedaży, które nie są powiązane z istniejącym sklepem?

Ten problem jest typowym miejscem w hurtowni danych, w którym duże tabele danych faktów muszą być logicznie powiązane z tabelami wymiarów, które zawierają informacje o sklepach, regionach i innych atrybutach używanych do kategoryzowania i obliczania faktów. Aby rozwiązać ten problem, wszelkie nowe fakty niepowiązane z istniejącą jednostką są tymczasowo przypisywane nieznanemu członkowi. Dlaczego niepowiązane fakty pojawią się w tabeli przestawnej w pustym nagłówku.

Obróbka wartości pustych a pustym wierszem

Puste wartości różnią się od pustych wierszy dodawanych w celu dopasowania do nieznanego elementu członkowskiego. Wartość pusta jest wartością specjalną, która jest 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 innych typów danych języka DAX, zobacz typy danych w modelach danych.

Początek strony

Rozwijaj umiejętności związane z pakietem Office
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.

×