Udostępnij za pośrednictwem


ALLNOBLANKROW

Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji

Z tabeli nadrzędnej relacji zwraca wszystkie wiersze, ale pusty wiersz lub wszystkie odrębne wartości kolumny, ale pusty wiersz i ignoruje wszystkie filtry kontekstu, które mogą istnieć.

Składnia

ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )

Parametry

Termin Definicja
table Tabela, w której są usuwane wszystkie filtry kontekstowe.
column Kolumna, w której są usuwane wszystkie filtry kontekstowe.

Należy przekazać tylko jeden parametr; parametr jest tabelą lub kolumną.

Wartość zwracana

Tabela, gdy przekazany parametr był tabelą lub kolumną wartości, kiedy przekazany parametr był kolumną.

Uwagi

  • Funkcja ALLNOBLANKROW filtruje tylko pusty wiersz, który tabela nadrzędna w relacji będzie pokazywać, gdy w tabeli podrzędnej znajduje się co najmniej jeden wiersz, który nie pasuje do kolumny nadrzędnej. Zapoznaj się z poniższym przykładem, aby uzyskać dokładne wyjaśnienie.

  • W poniższej tabeli przedstawiono podsumowanie odmian wszystkich, które są dostępne w języku DAX, oraz ich różnice:

    Funkcja i użycie opis
    ALL(Kolumna) Usuwa wszystkie filtry z określonej kolumny w tabeli; wszystkie inne filtry w tabeli, w innych kolumnach, nadal mają zastosowanie.
    ALL(Tabela) Usuwa wszystkie filtry z określonej tabeli.
    ALLEXCEPT(Table,Col1,Col2...) Zastępuje wszystkie filtry kontekstowe w tabeli z wyjątkiem określonych kolumn.
    ALLNOBLANK(tabela|kolumna) Z tabeli nadrzędnej relacji zwraca wszystkie wiersze, ale pusty wiersz lub wszystkie odrębne wartości kolumny, ale pusty wiersz i ignoruje wszystkie filtry kontekstu, które mogą istnieć

    Ogólny opis działania funkcji ALL wraz z przykładami krok po kroku, które używają funkcji ALL(Table) i ALL(Column), zobacz ALL function (ALL).

  • Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.

Przykład

W przykładowych danych tabela ResellerSales_USD zawiera jeden wiersz, który nie zawiera wartości i dlatego nie może być powiązany z żadną z tabel nadrzędnych w relacjach w skoroszycie. Użyjesz tej tabeli w tabeli przestawnej, aby zobaczyć zachowanie pustego wiersza i sposób obsługi liczby niepowiązanych danych.

Krok 1. Weryfikowanie niepowiązanych danych

Otwórz okno dodatku Power Pivot, a następnie wybierz tabelę ResellerSales_USD. W kolumnie ProductKey odfiltruj puste wartości. Pozostanie jeden wiersz. W tym wierszu wszystkie wartości kolumn powinny być puste z wyjątkiem kolumn SalesOrderLineNumber.

Krok 2. Tworzenie tabeli przestawnej

Utwórz nową tabelę przestawną, a następnie przeciągnij kolumnę datetime. [Rok kalendarzowy] w okienku Etykiety wierszy. W poniższej tabeli przedstawiono oczekiwane wyniki:

Etykiety wierszy
2005
2006
2007
2008
Suma końcowa

Zwróć uwagę na pustą etykietę z zakresu od 2008 do sumy końcowej. Ta pusta etykieta reprezentuje nieznany element członkowski, który jest grupą specjalną utworzoną w celu uwzględnienia wszystkich wartości w tabeli podrzędnej, które nie mają pasującej wartości w tabeli nadrzędnej, w tym przykładzie data/godzina. [Rok kalendarzowy] kolumna.

Gdy ta pusta etykieta zostanie wyświetlona w tabeli przestawnej, wiesz, że w niektórych tabelach powiązanych z kolumną data/godzina. [Rok kalendarzowy] istnieją puste wartości lub wartości niezgodne. Tabela nadrzędna to ta, która pokazuje pustą etykietę, ale wiersze, które nie są zgodne, znajdują się w co najmniej jednej tabeli podrzędnej.

Wiersze dodawane do tej pustej grupy etykiet to wartości, które nie są zgodne z żadną wartością w tabeli nadrzędnej — na przykład datą, która nie istnieje w wartościach tabeli datetime lub null, co oznacza brak wartości daty w ogóle. W tym przykładzie umieściliśmy pustą wartość we wszystkich kolumnach podrzędnej tabeli sprzedaży. Posiadanie większej liczby wartości w tabeli nadrzędnej niż w tabelach podrzędnych nie powoduje problemu.

Krok 3. Zlicz wiersze przy użyciu funkcji ALL i ALLNOBLANK

Dodaj następujące dwie miary do tabeli datetime, aby zliczyć wiersze tabeli: Countrows ALLNOBLANK daty/godziny, Countrows ALL of datetime. Formuły, których można użyć do zdefiniowania tych miar, to:

// Countrows ALLNOBLANK of datetime  
= COUNTROWS(ALLNOBLANKROW('DateTime'))  
  
// Countrows ALL of datetime  
= COUNTROWS(ALL('DateTime'))  
  
// Countrows ALLNOBLANKROW of ResellerSales_USD  
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))  
  
// Countrows ALL of ResellerSales_USD  
= COUNTROWS(ALL('ResellerSales_USD'))  

W pustej tabeli przestawnej dodaj datę/godzinę. [Rok kalendarzowy] kolumna do etykiet wierszy, a następnie dodaj nowo utworzone miary. Wyniki powinny wyglądać podobnie do poniższej tabeli:

Etykiety wierszy Countrows ALLNOBLANK daty/godziny Countrows ALL of datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Suma końcowa 1280 1281

Wyniki pokazują różnicę 1 wierszy w liczbie wierszy tabeli. Jeśli jednak otworzysz okno dodatku Power Pivot i wybierzesz tabelę datetime, nie będzie można odnaleźć pustego wiersza w tabeli, ponieważ specjalny pusty wiersz wymieniony tutaj jest elementem członkowskim Nieznany.

Krok 4. Sprawdzanie, czy liczba jest dokładna

Aby udowodnić, że funkcja ALLNOBLANKROW nie zlicza naprawdę pustych wierszy i obsługuje tylko specjalny pusty wiersz w tabeli nadrzędnej, dodaj następujące dwie miary do tabeli ResellerSales_USD: Countrows ALLNOBLANKROW ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Utwórz nową tabelę przestawną i przeciągnij kolumnę datetime. [Rok kalendarzowy] w okienku Etykiety wierszy. Teraz dodaj miary, które zostały właśnie utworzone. Wyniki powinny wyglądać następująco:

Etykiety wierszy Countrows ALLNOBLANKROW of ResellerSales_USD Countrows ALL of ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Suma końcowa 60856 60856

Teraz te dwie miary mają te same wyniki. Wynika to z faktu, że funkcja ALLNOBLANKROW nie liczy naprawdę pustych wierszy w tabeli, ale obsługuje tylko pusty wiersz, który jest specjalnym przypadkiem wygenerowanym w tabeli nadrzędnej, gdy co najmniej jedna tabela podrzędna w relacji zawiera niepasujące wartości lub puste wartości.

Funkcje filtrowania
ALL, funkcja
FILTER, funkcja