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

  • Met de functie ALLNOBLANKROW wordt alleen de lege rij gefilterd die een bovenliggende tabel in een relatie weergeeft wanneer er een of meer rijen in de onderliggende tabel staan met niet-overeenkomende waarden 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 DAX en de verschillen:

    Functie en gebruik Beschrijving
    ALL(kolom) 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(tabel|kolom) 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 DE functie ALL voor een algemene beschrijving van de werking van de functie ALL, samen met stapsgewijze voorbeelden waarin ALL(Table) en ALL(Column) worden gebruikt.

  • 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).

Opmerking

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-venster en 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 van datum/tijd, Countrows ALL of 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 of datetime
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 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 of 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.

Filterfuncties
ALL, functie
FILTER, functie