ALLNOBLANKROW
Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening
In de bovenliggende tabel van een relatie worden alle rijen, behalve de lege rij, of alle afzonderlijke waarden van een kolom, maar de lege rij geretourneerd en worden eventuele contextfilters genegeerd.
Syntaxis
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Parameters
Term | Definitie |
---|---|
table |
De tabel waarvoor alle contextfilters worden verwijderd. |
column |
Een kolom waarvoor alle contextfilters worden verwijderd. |
Er moet slechts één parameter worden doorgegeven; de parameter is een tabel of een kolom.
Retourwaarde
Een tabel, toen de doorgegeven parameter een tabel was of een kolom met waarden, toen de doorgegeven parameter een kolom was.
Opmerkingen
De functie ALLNOBLANKROW filtert alleen de lege rij die een bovenliggende tabel in een relatie bevat wanneer er een of meer rijen in de onderliggende tabel staan die niet-overeenkomende waarden bevatten voor de bovenliggende kolom. Zie het onderstaande voorbeeld voor een grondige uitleg.
De volgende tabel bevat een overzicht van de variaties van
ALL
die zijn opgegeven in DAXen de verschillen:Functie en gebruik Beschrijving ALL(Column)
Verwijdert alle filters uit de opgegeven kolom in de tabel; alle andere filters in de tabel, boven andere kolommen, zijn nog steeds van toepassing. ALL(Table)
Hiermee verwijdert u alle filters uit de opgegeven tabel. ALLEXCEPT(Table,Col1,Col2...)
Hiermee overschrijft u alle contextfilters in de tabel, met uitzondering van de opgegeven kolommen. ALLNOBLANK(table|column)
Retourneert vanuit de bovenliggende tabel van een relatie alle rijen, maar de lege rij, of alle afzonderlijke waarden van een kolom, maar de lege rij, en negeert eventuele contextfilters die mogelijk bestaan Zie ALL functievoor een algemene beschrijving van de werking van de ALL, samen met stapsgewijze voorbeelden die gebruikmaken van ALL(Tabel) en ALL(Kolom).
Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).
Voorbeeld
In de voorbeeldgegevens bevat de ResellerSales_USD tabel één rij met geen waarden en kan daarom niet worden gerelateerd aan een van de bovenliggende tabellen in de relaties in de werkmap. U gebruikt deze tabel in een draaitabel, zodat u het gedrag van de lege rij kunt zien en hoe u tellingen van niet-gerelateerde gegevens kunt verwerken.
Stap 1: De niet-gerelateerde gegevens controleren
Open het Power Pivot-vensteren selecteer vervolgens de ResellerSales_USD tabel. Filter in de kolom ProductKey op lege waarden. Eén rij blijft behouden. In die rij moeten alle kolomwaarden leeg zijn, met uitzondering van SalesOrderLineNumber.
Stap 2: een draaitabel maken
Maak een nieuwe draaitabel en sleep de kolom, datum/tijd. [Kalenderjaar], naar het deelvenster Rijlabels. In de volgende tabel ziet u de verwachte resultaten:
Rijlabels |
---|
2005 |
2006 |
2007 |
2008 |
Eindtotaal |
Let op het lege label tussen 2008 en eindtotaal. Dit lege label vertegenwoordigt het onbekende lid, een speciale groep die wordt gemaakt om rekening te houden met waarden in de onderliggende tabel die geen overeenkomende waarde hebben in de bovenliggende tabel, in dit voorbeeld de datum/tijd. [Kalenderjaar] kolom.
Wanneer u dit lege label in de draaitabel ziet, weet u dat in sommige tabellen die zijn gerelateerd aan de kolom datetime. [Kalenderjaar]: er zijn lege waarden of niet-overeenkomende waarden. De bovenliggende tabel is de tabel met het lege label, maar de rijen die niet overeenkomen, bevinden zich in een of meer onderliggende tabellen.
De rijen die aan deze lege labelgroep worden toegevoegd, zijn waarden die niet overeenkomen met een waarde in de bovenliggende tabel, bijvoorbeeld een datum die niet bestaat in de datum/tijd-tabel- of null-waarden, wat helemaal geen waarde voor datum betekent. In dit voorbeeld hebben we een lege waarde in alle kolommen van de onderliggende verkooptabel geplaatst. Het hebben van meer waarden in de bovenliggende tabel dan in de onderliggende tabellen veroorzaakt geen probleem.
Stap 3: Rijen tellen met ALL en ALLNOBLANK
Voeg de volgende twee metingen toe aan de datum/tijd-tabel om de tabelrijen te tellen: Countrows ALLNOBLANK of datetime, Countrows ALL datetime. De formules die u kunt gebruiken om deze metingen te definiëren, zijn:
// 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'))
Voeg op een lege draaitabel datum/tijd toe. De kolom [Calendar Year] aan de rijlabels en voeg vervolgens de zojuist gemaakte metingen toe. De resultaten moeten eruitzien zoals in de volgende tabel:
Rijlabels | Countrows ALLNOBLANK van datum/tijd | Countrows ALL van datum/tijd |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
Eindtotaal | 1280 | 1281 |
In de resultaten ziet u een verschil van 1 rij in het aantal tabelrijen. Als u echter het Power Pivot-venster opent en de datum/tijd-tabel selecteert, kunt u geen lege rij in de tabel vinden omdat de speciale lege rij die hier wordt vermeld het onbekende lid is.
Stap 4: Controleer of het aantal nauwkeurig is
Om te bewijzen dat de ALLNOBLANKROW geen echt lege rijen telt en alleen de speciale lege rij in de bovenliggende tabel verwerkt, voegt u de volgende twee metingen toe aan de ResellerSales_USD tabel: Countrows ALLNOBLANKROW van ResellerSales_USD, Countrows ALL van ResellerSales_USD.
Maak een nieuwe draaitabel en sleep de kolom datetime. [Kalenderjaar], naar het deelvenster Rijlabels. Voeg nu de metingen toe die u zojuist hebt gemaakt. De resultaten moeten er als volgt uitzien:
Rijlabels | Countrows ALLNOBLANKROW van ResellerSales_USD | Countrows ALL van ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
Eindtotaal | 60856 | 60856 |
Nu hebben de twee metingen dezelfde resultaten. Dat komt doordat de functie ALLNOBLANKROW niet echt lege rijen in een tabel telt, maar alleen de lege rij verwerkt die een speciaal geval is dat wordt gegenereerd in een bovenliggende tabel, wanneer een of meer onderliggende tabellen in de relatie niet-overeenkomende waarden of lege waarden bevatten.