Filtrowanie danych 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 .

W tej sekcji opisano sposób tworzenia filtrów w formułach Data Analysis Expressions (DAX). Możesz utworzyć filtrów w formułach, aby uniemożliwić wartości danych źródłowych, które są używane w obliczeniach. W tym celu należy określić tabelę jako dane wejściowe do formuły, a następnie zdefiniowanie wyrażenia filtru. Wyrażenie filtru podane służy do kwerendy danych, a następnie zwraca tylko podzbiór danych źródłowych. Jest stosowany filtr dynamicznie zawsze aktualizacji wyniki formuł, w zależności od bieżącego kontekstu danych.

W tym artykule

Tworzenie filtru w tabeli używanej w formule

Filtry usuwające duplikaty

Wpływ kontekstu na filtry

Usuwanie filtrów

Zastępowanie wszystkich filtrów za pomocą funkcji ALL

Zastępowanie określonych filtrów za pomocą funkcji ALLEXCEPT

Tworzenie filtru w tabeli używanej w formule

Możesz zastosować filtry do formuł, które akceptują tabele jako wartości wejściowe. Zamiast wprowadzać nazwę tabeli, musisz użyć funkcji FILTER, aby zdefiniować podzestaw wierszy określonej tabeli. Ten podzestaw jest następnie przekazywany innej funkcji w celu przeprowadzenia operacji takich jak niestandardowe agregacje.

Na przykład załóżmy, że masz tabelę z danymi dotyczącymi zamówień od sprzedawców i chcesz obliczyć, ile towaru sprzedał dany sprzedawca. Jednak chcesz, aby wyświetlane były ilości sprzedaży tylko dla tych sprzedawców, którzy sprzedali wiele jednostek droższych produktów. Poniższa formuła, oparta o przykładowy skoroszyt DAX, jest przykładem na to, jak przeprowadzić takie obliczenia za pomocą filtru:

= SUMX (
filtru ("ResellerSales_USD", "ResellerSales_USD" [Ilość] > 5 & &
"ResellerSales_USD" [ProductStandardCost_USD] > 100),
"ResellerSales_USD" [SalesAmt]
)

  • Pierwsza część formuły określa jedna z funkcji agregacji Power Pivot, które przyjmuje jako argument tabelę. SUMX oblicza sumy tabeli.

  • Druga część formuły FILTER(table, expression),informuje SUMX dane, które mają być używane. SUMX wymaga tabeli lub wyrażenie, którego wyniki w tabeli. W tym miejscu zamiast wszystkie dane w tabeli, funkcja FILTER do określenia, które wiersze z tabeli są używane.

    Wyrażenie filtru zawiera dwie części: pierwsza część nazwy tabeli, do którego ma zastosowanie filtru. Druga część określa wyrażenie ma zostać użyte jako warunek filtru. W tym przypadku filtrowania na odsprzedawców, którzy sprzedanych więcej niż 5 jednostki i produktów, które kosztów więcej niż 100 zł. Operator & &, jest operatorem i logiczne, która wskazuje, czy obu częściach warunek muszą zostać spełnione dla wiersza, do której będzie należał filtrowanych podzbiór.

  • Trzecia część formuły określa, które wartości mają być sumowane przez funkcję SUMX . W naszym przypadku korzystamy jedynie z kwoty sprzedaży.

    Zauważ, że funkcje takie jak FILTER, które zwracają tabelę, nigdy nie zwracają tabeli lub wierszy bezpośrednio, ale zawsze osadzają je w innej funkcji. Aby uzyskać więcej informacji na temat funkcji FILTER oraz innych funkcji używanych do filtrowania i zapoznać się z dalszymi przykładami, zobacz Funkcje filtrowania (DAX).

    Uwaga : Na wyrażenie filtru ma wpływ kontekst, w ramach którego jest ono używane. Na przykład jeśli korzystasz z filtru w mierze, a jest ona używana w tabeli przestawnej lub wykresie przestawnym, zwrócony podzbiór danych może podlegać pod dodatkowe filtry lub fragmentatory, które użytkownik wprowadził w tabeli przestawnej. Aby uzyskać więcej informacji na temat kontekstu, zobacz Kontekst w formułach języka DAX.

Filtry usuwające duplikaty

Poza filtrowaniem konkretnych wartości możesz zwrócić unikatowy zbiór wartości z innej tabeli lub kolumny. Może to być przydatne, gdy chcesz poznać liczbę unikatowych wartości w kolumnie lub użyć listy unikatowych wartości do innych operacji. Język DAX oferuje dwie funkcje umożliwiające zwracanie odrębnych wartości: funkcję DISTINCT oraz funkcję VALUES.

  • Funkcja DISTINCT umożliwia badanie pojedynczej kolumny określonej jako argument funkcji i zwraca nową kolumnę, zawierającą jedynie odrębne wartości.

  • Funkcja VALUES również zwraca listę unikatowych wartości, ale również zwraca nieznany element członkowski. Jest to przydatne w przypadku użyj wartości z dwiema tabelami połączonymi relacji, a wartość jest brak w jednej tabeli i znajdują się w innym. Aby uzyskać więcej informacji na temat nieznany element członkowski zobacz temat kontekst w formułach języka DAX.

Obydwie funkcje zwracają całą kolumnę wartości. Z tego powodu korzysta się z nich, aby uzyskać listę wartości, które są następnie przekazywane do innej funkcji. Na przykład możesz użyć następującej formuły, aby uzyskać listę odrębnych produktów sprzedawanych przez konkretnego sprzedawcę, korzystając z unikatowego klucza produktu, a następnie policzyć produkty na tej liście za pomocą funkcji COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Początek strony

Wpływ kontekstu na filtry

Formuła języka DAX można dodać do tabeli przestawnej lub wykresu przestawnego, wyniki formuł może zależeć od kontekstu. Jeśli pracujesz w tabeli Power Pivot, kontekst jest bieżącego wiersza, a jego wartości. Jeśli pracujesz w tabeli przestawnej lub wykresu przestawnego, kontekst oznacza zbiór lub podzbiór danych zdefiniowany przez operacji, takich jak krojenia lub filtrowania. Projekt tabeli przestawnej lub wykresu przestawnego są dostosowywane własnej kontekstu. Na przykład po utworzeniu tabeli przestawnej grupującego sprzedaży wg regionów i rok tylko dane, które dotyczą tych regionów i lata pojawi się w tabeli przestawnej. W związku z tym środków, które możesz dodać do tabeli przestawnej są obliczane w kontekście nagłówki kolumn i wierszy oraz wszystkie filtry w formule miary.

Aby uzyskać więcej informacji, zobacz Kontekst w formułach DAX.

Początek strony

Usuwanie filtrów

Podczas pracy ze złożonymi formułami możesz zechcieć dowiedzieć się, jakie dokładnie są aktualne filtry, lub zmodyfikować element filtru formuły. Język DAX oferuje kilka funkcji, które umożliwiają usuwanie filtrów i kontrolowanie, które kolumny są zachowywane jako element aktualnego kontekstu filtru. W tej sekcji znajduje się omówienie sposobu, w jaki te funkcje wpływają na wyniki w formule.

Zastępowanie wszystkich filtrów za pomocą funkcji ALL

Można użyć funkcji ALL mają zastępować wszystkie filtry, które zostały już zastosowane i zwrócić wszystkie wiersze w tabeli do funkcji, która jest wykonanie operacji agregującej lub innych. Użycie jednej lub wielu kolumn, zamiast tabeli, jako argumenty ALL, funkcja ALL zwraca wszystkie wiersze ignoruje wszystkie filtry kontekstowe.

Uwaga : Jeżeli znasz terminologię dotyczącą relacyjnych baz danych, możesz myśleć o funkcji ALL jak o generującej naturalne lewe sprzężenie zewnętrzne wszystkich tabel.

Na przykład załóżmy, że masz tabele Sprzedaż i Produkty i chcesz utworzyć formułę, która obliczy sumę sprzedaży aktualnego produktu podzieloną przez sprzedaż wszystkich produktów. Weź pod uwagę fakt, że jeśli formuła jest używana w mierze, użytkownik tabeli przestawnej może korzystać z fragmentatora do filtrowania w poszukiwaniu odpowiedniego produktu, z uwzględnieniem nazwy produktu w wierszach. Z tego względu, aby uzyskać rzeczywistą wartość dzielnika z pominięciem filtrów i fragmentatorów, musisz dodać funkcję ALL w celu zastąpienia wszystkich filtrów. Poniższa formuła jest przykładem na to, jak użyć funkcji ALL do zastąpienia efektów wcześniejszych filtrów:

= Suma (sprzedaż [kwota])-SUMX (sprzedaż [kwota]; filtr (Sales, ALL(Products)))

  • Pierwsza część formuły, SUM (Sprzedaż[Kwota]), umożliwia obliczenie dzielnej.

  • Suma uwzględnia bieżący kontekst, co oznacza, że jeśli dodasz formułę do kolumny obliczeniowej, zastosowany będzie kontekst wiersza. Jeśli dodasz formułę do tabeli przestawnej jako miarę, zostaną zastosowane wszystkie filtry zastosowane w tabeli przestawnej (kontekst filtru).

  • Druga część formuły, oblicza mianownikiem. Funkcja ALL zastępuje wszystkie filtry, które mogą zostać zastosowane do tabeli Products .

Aby uzyskać więcej informacji i zapoznać się ze szczegółowymi przykładami, zobacz ALL, funkcja.

Zastępowanie określonych filtrów za pomocą funkcji ALLEXCEPT

Funkcja ALLEXCEPT również powoduje zastąpienie istniejących filtrów, ale możesz określić, czy niektóre z nich mają być zachowane. Kolumny nazwane jako argumenty funkcji ALLEXCEPT określają, które kolumny będą w dalszym ciągu filtrowane. Jeśli chcesz zastąpić filtry z większości kolumn, ale nie wszystkich, funkcja ALLEXCEPT jest wygodniejsza niż ALL. Funkcja ALLEXCEPT jest szczególnie przydatna w przypadku tworzenia tabel przestawnych, które mogą być filtrowane na podstawie wielu różnych kolumn, gdy chcesz zachować kontrolę nad wartościami używanymi w formule. Aby uzyskać więcej informacji i zapoznać się ze szczegółowymi przykładami zastosowania funkcji ALLEXCEPT w tabeli przestawnej, zobacz Funkcja ALLEXCEPT.

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.

×