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

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.

    Należy zauważyć, że funkcji, takich jak filtr, które zwracają tabelę, nigdy nie zwraca tabelę lub wiersze bezpośrednio, ale zawsze jest osadzony w innej funkcji. Aby uzyskać więcej informacji na temat FILTROWANIA i innych funkcji, które służą do filtrowania, tym więcej przykładów zobacz Funkcje filtru (język DAX).

    Uwaga: Wyrażenie filtru zależy od kontekstu, w której są one używane. Na przykład jeśli zastosowanie filtru w miarę i mierzone jest używana w tabeli przestawnej lub wykresu przestawnego, podzestawu danych, który został zwrócony może dotyczyć dodatkowe filtry lub fragmentatory zastosowane w tabeli przestawnej. Aby uzyskać więcej informacji na temat kontekstu zobacz temat kontekst w formułach języka DAX.

Filtry usuwające duplikaty

Oprócz filtrowania dla określonej wartości, można przywrócić unikatowego zestawu wartości z innej tabeli lub kolumny. Może to być przydatne, gdy chcesz zliczyć wartości unikatowe w kolumnie lub przy użyciu listy wartości unikatowe dla innych operacji. Dwie funkcje w języku DAX są dostępne dla zwracanie wartości odrębnych: Różne funkcje i Wartości.

  • 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 temat kontekst w formułach języka 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, w tym szczegółowych przykładów zobacz Funkcja ALL.

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

Funkcja ALLEXCEPT zastępuje również istniejące filtry, ale można określić, że niektóre istniejące filtry zachowywane. Kolumny można nazwę jako argumenty w funkcji ALLEXCEPT Określ kolumny, które będzie w dalszym ciągu można filtrować. Jeśli chcesz zastąpić filtry większość kolumn, ale nie wszystkich, ALLEXCEPT jest wygodniejsze niż wszystkie. Funkcja ALLEXCEPT jest szczególnie przydatne podczas tworzenia tabel przestawnych, które mogą być filtrowane na wielu różnych kolumn, a chcesz kontrolować wartości, które są używane w formule. Aby uzyskać więcej informacji w tym szczegółowy przykład wykorzystaniu ALLEXCEPT w tabeli przestawnej, zobacz temat Funkcja ALLEXCEPT.

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.

×