ALLNOBLANKROW

Från den överordnade tabellen i en relation returnerar alla rader utom den tomma raden, eller alla distinkta värden för en kolumn men den tomma raden, och ignorerar eventuella kontextfilter som kan finnas.

Syntax

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

Parametrar

Period Definition
table Tabellen som alla kontextfilter tas bort över.
column En kolumn där alla kontextfilter tas bort.

Endast en parameter måste skickas. parametern är antingen en tabell eller en kolumn.

Returvärde

En tabell, när den skickade parametern var en tabell eller en kolumn med värden, när den skickade parametern var en kolumn.

Anmärkningar

  • Funktionen ALLNOBLANKROW filtrerar bara den tomma rad som en överordnad tabell i en relation visar när det finns en eller flera rader i den underordnade tabellen som har värden som inte matchar den överordnade kolumnen. Se exemplet nedan för en grundlig förklaring.

  • I följande tabell sammanfattas varianterna av ALLA som anges i DAX och deras skillnader:

    Funktion och användning beskrivning
    ALL(Column) Tar bort alla filter från den angivna kolumnen i tabellen. alla andra filter i tabellen, över andra kolumner, gäller fortfarande.
    ALL(Table) Tar bort alla filter från den angivna tabellen.
    ALLEXCEPT(Table,Col1,Col2...) Åsidosätter alla kontextfilter i tabellen förutom de angivna kolumnerna.
    ALLNOBLANK(table|column) Från den överordnade tabellen i en relation returnerar alla rader utom den tomma raden, eller alla distinkta värden för en kolumn men den tomma raden, och bortser från eventuella kontextfilter som kan finnas

    En allmän beskrivning av hur funktionen ALL fungerar tillsammans med stegvisa exempel som använder ALL(Table) och ALL(Column) finns i FUNKTIONEN ALLA.

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Exempel

I exempeldata innehåller tabellen ResellerSales_USD en rad som inte har några värden och därför inte kan relateras till någon av de överordnade tabellerna i relationerna i arbetsboken. Du kommer att använda den här tabellen i en pivottabell så att du kan se beteendet för tomma rader och hur du hanterar antalet orelaterade data.

Steg 1: Verifiera orelaterade data

Öppna Power Pivot-fönstret och välj sedan tabellen ResellerSales_USD. I kolumnen ProductKey filtrerar du efter tomma värden. En rad kommer att finnas kvar. På den raden ska alla kolumnvärden vara tomma förutom SalesOrderLineNumber.

Steg 2: Skapa en pivottabell

Skapa en ny pivottabell och dra sedan kolumnen datetime. [Kalenderår] till fönstret Radetiketter. Följande tabell visar förväntade resultat:

Radetiketter
2005
2006
2007
2008
Totalsumma

Observera den tomma etiketten mellan 2008 och Totalsumma. Den här tomma etiketten representerar den okända medlemmen, som är en särskild grupp som skapas för att ta hänsyn till alla värden i den underordnade tabellen som inte har något matchande värde i den överordnade tabellen, i det här exemplet datetime. [Kalenderår] kolumn.

När du ser den här tomma etiketten i pivottabellen vet du att i några av tabellerna som är relaterade till kolumnen, datetime. [Kalenderår], det finns antingen tomma värden eller icke-matchande värden. Den överordnade tabellen är den som visar den tomma etiketten, men raderna som inte matchar finns i en eller flera av de underordnade tabellerna.

De rader som läggs till i den här tomma etikettgruppen är antingen värden som inte matchar något värde i den överordnade tabellen, till exempel ett datum som inte finns i datetime-tabellen eller nullvärden, vilket innebär att inget värde för datum alls. I det här exemplet har vi placerat ett tomt värde i alla kolumner i den underordnade försäljningstabellen. Att ha fler värden i den överordnade tabellen än i underordnade tabeller orsakar inget problem.

Steg 3: Räkna rader med ALLA och ALLNOBLANK

Lägg till följande två mått i datetime-tabellen för att räkna tabellraderna: Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. De formler som du kan använda för att definiera dessa mått är:

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

Lägg till datetime i en tom pivottabell. [Kalenderår] kolumn till radetiketterna och lägg sedan till de nyligen skapade måtten. Resultatet bör se ut som i följande tabell:

Radetiketter Countrows ALLNOBLANK för datetime Countrows ALL of datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Totalsumma 1280 1281

Resultatet visar en skillnad på 1 rad i antalet tabellrader. Men om du öppnar Power Pivot-fönstret och väljer tabellen datetime kan du inte hitta någon tom rad i tabellen eftersom den särskilda tomma raden som nämns här är okänd medlem.

Steg 4: Kontrollera att antalet är korrekt

För att bevisa att ALLNOBLANKROW inte räknar några verkligt tomma rader och endast hanterar den särskilda tomma raden i den överordnade tabellen lägger du till följande två mått i tabellen ResellerSales_USD: Countrows ALLNOBLANKROW av ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Skapa en ny pivottabell och dra kolumnen datetime. [Kalenderår] till fönstret Radetiketter. Lägg nu till de mått som du nyss skapade. Resultatet bör se ut så här:

Radetiketter Countrows ALLNOBLANKROW av ResellerSales_USD Countrows ALL of ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Totalsumma 60856 60856

Nu har de två måtten samma resultat. Det beror på att funktionen ALLNOBLANKROW inte räknar verkligt tomma rader i en tabell, utan endast hanterar den tomma rad som är ett specialfall som genereras i en överordnad tabell, när en eller flera av de underordnade tabellerna i relationen innehåller icke-matchande värden eller tomma värden.

Filterfunktioner
FUNKTIONEN ALLA
FILTER-funktion