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.