Freigeben über


ALLNOBLANKROW

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

Gibt aus der übergeordneten Tabelle einer Beziehung alle Zeilen, aber die leere Zeile oder alle unterschiedlichen Werte einer Spalte, aber die leere Zeile zurück, und ignoriert alle Kontextfilter, die möglicherweise vorhanden sind.

Syntax

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

Parameter

Ausdruck Definition
table Die Tabelle, über die alle Kontextfilter entfernt werden.
column Eine Spalte, über die alle Kontextfilter entfernt werden.

Es muss nur ein Parameter übergeben werden; Der Parameter ist entweder eine Tabelle oder eine Spalte.

Rückgabewert

Eine Tabelle, wenn der übergebene Parameter eine Tabelle oder eine Spalte mit Werten war, als der übergebene Parameter eine Spalte war.

Bemerkungen

  • Die ALLNOBLANKROW-Funktion filtert nur die leere Zeile, die eine übergeordnete Tabelle in einer Beziehung enthält, wenn eine oder mehrere Zeilen in der untergeordneten Tabelle mit nicht übereinstimmenden Werten für die übergeordnete Spalte vorhanden sind. Eine ausführliche Erläuterung finden Sie im folgenden Beispiel.

  • In der folgenden Tabelle sind die Variationen von ALL zusammengefasst, die in DAXbereitgestellt werden, und deren Unterschiede:

    Funktion und Verwendung Beschreibung
    ALL(Column) Entfernt alle Filter aus der angegebenen Spalte in der Tabelle; Alle anderen Filter in der Tabelle über andere Spalten gelten weiterhin.
    ALL(Table) Entfernt alle Filter aus der angegebenen Tabelle.
    ALLEXCEPT(Table,Col1,Col2...) Setzt alle Kontextfilter in der Tabelle außer über die angegebenen Spalten außer Kraft.
    ALLNOBLANK(table|column) Gibt aus der übergeordneten Tabelle einer Beziehung alle Zeilen, aber die leere Zeile oder alle unterschiedlichen Werte einer Spalte, aber die leere Zeile zurück und ignoriert alle Kontextfilter, die vorhanden sein könnten.

    Eine allgemeine Beschreibung der Funktionsweise der ALL-Funktion zusammen mit Schritt-für-Schritt-Beispielen, die ALL(Tabelle) und ALL(Spalte) verwenden, finden Sie unter ALL Funktion.

  • Diese Funktion wird für die Verwendung im DirectQuery-Modus nicht unterstützt, wenn sie in berechneten Spalten oder Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.

Beispiel

In den Beispieldaten enthält die ResellerSales_USD Tabelle eine Zeile, die keine Werte enthält und daher nicht mit einer der übergeordneten Tabellen in den Beziehungen innerhalb der Arbeitsmappe verknüpft werden kann. Sie verwenden diese Tabelle in einer PivotTable, sodass Sie das Verhalten der leeren Zeile und die Behandlung von Zählungen für nicht verknüpfte Daten sehen können.

Schritt 1: Überprüfen der nicht verknüpften Daten

Öffnen Sie das Power Pivot-Fenster, und wählen Sie dann die ResellerSales_USD Tabelle aus. Filtern Sie in der Spalte "ProductKey" nach leeren Werten. Eine Zeile bleibt erhalten. In dieser Zeile sollten alle Spaltenwerte leer sein, mit Ausnahme von SalesOrderLineNumber.

Schritt 2: Erstellen einer PivotTable

Erstellen Sie eine neue PivotTable, und ziehen Sie dann die Spalte, datumstime. [Kalenderjahr], zum Bereich "Zeilenbeschriftungen". Die folgende Tabelle zeigt die erwarteten Ergebnisse:

Zeilenbeschriftungen
2005
2006
2007
2008
Gesamtsumme

Beachten Sie die leere Beschriftung zwischen 2008 und Gesamtsumme. Diese leere Bezeichnung stellt das Unbekannte Element dar, bei dem es sich um eine spezielle Gruppe handelt, die erstellt wird, um Werte in der untergeordneten Tabelle zu berücksichtigen, die in diesem Beispiel keinen übereinstimmenden Wert in der übergeordneten Tabelle aufweisen. Spalte [Kalenderjahr]

Wenn diese leere Beschriftung in der PivotTable angezeigt wird, wissen Sie, dass sie in einigen Tabellen, die mit der Spalte verknüpft sind, datumstime sind. [Kalenderjahr], es gibt entweder leere Werte oder nicht übereinstimmende Werte. Die übergeordnete Tabelle ist die Tabelle, die die leere Beschriftung anzeigt, aber die Zeilen, die nicht übereinstimmen, befinden sich in einer oder mehreren der untergeordneten Tabellen.

Die Zeilen, die dieser leeren Bezeichnungsgruppe hinzugefügt werden, sind entweder Werte, die keinem Wert in der übergeordneten Tabelle entsprechen, z. B. ein Datum, das nicht in der Datetime-Tabelle vorhanden ist- oder NULL-Werte, d. h. kein Wert für datumsbezogene Werte. In diesem Beispiel haben wir einen leeren Wert in allen Spalten der untergeordneten Verkaufstabelle platziert. Wenn sie mehr Werte in der übergeordneten Tabelle haben als in den untergeordneten Tabellen, tritt kein Problem auf.

Schritt 3: Zählen von Zeilen mit ALL und ALLNOBLANK

Fügen Sie die folgenden beiden Measures zur Datetime-Tabelle hinzu, um die Tabellenzeilen zu zählen: Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. Die Formeln, die Sie zum Definieren dieser Measures verwenden können, sind:

// 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'))

Fügen Sie in einer leeren PivotTable Datetime hinzu. [Kalenderjahr] Spalte zu den Zeilenbeschriftungen, und fügen Sie dann die neu erstellten Measures hinzu. Die Ergebnisse sollten wie in der folgenden Tabelle aussehen:

Zeilenbeschriftungen Countrows ALLNOBLANK of datetime Countrows ALL von datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Gesamtsumme 1280 1281

Die Ergebnisse zeigen einen Unterschied von 1 Zeile in der Anzahl der Tabellenzeilen. Wenn Sie jedoch das Power Pivot-Fenster öffnen und die Datetime-Tabelle auswählen, können Sie keine leere Zeile in der Tabelle finden, da die hier erwähnte spezielle leere Zeile das Unbekannte Element ist.

Schritt 4: Überprüfen, ob die Anzahl korrekt ist

Um zu beweisen, dass die ALLNOBLANKROW keine wirklich leeren Zeilen zählt und nur die spezielle leere Zeile in der übergeordneten Tabelle nur behandelt, fügen Sie die folgenden beiden Measures zur ResellerSales_USD Tabelle hinzu: Countrows ALLNOBLANKROW von ResellerSales_USD, Countrows ALL von ResellerSales_USD.

Erstellen Sie eine neue PivotTable, und ziehen Sie die Spalte,Datum/Uhrzeit. [Kalenderjahr], zum Bereich "Zeilenbeschriftungen". Fügen Sie nun die soeben erstellten Measures hinzu. Die Ergebnisse sollten wie folgt aussehen:

Zeilenbeschriftungen ALLNOBLANKROW von ResellerSales_USD ALL von ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Gesamtsumme 60856 60856

Jetzt haben die beiden Measures die gleichen Ergebnisse. Das liegt daran, dass die funktion ALLNOBLANKROW nicht wirklich leere Zeilen in einer Tabelle zählt, sondern nur die leere Zeile behandelt, die in einer übergeordneten Tabelle generiert wird, wenn eine oder mehrere der untergeordneten Tabellen in der Beziehung nicht übereinstimmende Werte oder leere Werte enthalten.

FilterfunktionenALLFILTER Funktion