Del via


ALLNOBLANKROW

gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning

Fra den overordnede tabellen i en relasjon returnerer alle rader bortsett fra den tomme raden, eller alle distinkte verdier i en kolonne, bortsett fra den tomme raden, og ignorerer eventuelle kontekstfiltre som kan eksistere.

Syntaks

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

Parametere

Vilkår Definisjon
table Tabellen som alle kontekstfiltre fjernes over.
column En kolonne der alle kontekstfiltre fjernes.

Bare én parameter må sendes. parameteren er enten en tabell eller en kolonne.

Returverdi

En tabell, når den sendte parameteren var en tabell eller en kolonne med verdier, da den sendte parameteren var en kolonne.

Merknader

  • Funksjonen ALLNOBLANKROW filtrerer bare den tomme raden som en overordnet tabell, i en relasjon, vises når det er én eller flere rader i den underordnede tabellen som har verdier som ikke samsvarer med den overordnede kolonnen. Se eksemplet nedenfor for en grundig forklaring.

  • Tabellen nedenfor oppsummerer variasjonene av ALL som er angitt i DAX, og forskjellene deres:

    Funksjon og bruk Beskrivelse
    ALL(Column) Fjerner alle filtre fra den angitte kolonnen i tabellen. Alle andre filtre i tabellen, over andre kolonner, gjelder fortsatt.
    ALL(Table) Fjerner alle filtre fra den angitte tabellen.
    ALLEXCEPT(Table,Col1,Col2...) Overstyrer alle kontekstfiltre i tabellen bortsett fra de angitte kolonnene.
    ALLNOBLANK(table|column) Returnerer alle rader bortsett fra den tomme raden eller alle distinkte verdier i en kolonne, bortsett fra den tomme raden, fra den overordnede tabellen i en relasjon, og ignorerer eventuelle kontekstfiltre som kan eksistere

    Hvis du vil ha en generell beskrivelse av hvordan funksjonen ALL fungerer, sammen med trinnvise eksempler som bruker ALL(tabell) og ALL(kolonne), kan du se ALL funksjonen.

  • Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).

Eksempel

I eksempeldataene inneholder den ResellerSales_USD tabellen én rad som ikke har noen verdier, og som derfor ikke kan være relatert til noen av de overordnede tabellene i relasjonene i arbeidsboken. Du vil bruke denne tabellen i en pivottabell, slik at du kan se virkemåten for tomme rader og hvordan du håndterer tellinger på ikke-relaterte data.

Trinn 1: Kontrollere de ikke-relaterte dataene

Åpne Power Pivot-vinduet, og velg deretter tabellen ResellerSales_USD. Filtrer etter tomme verdier i ProductKey-kolonnen. Én rad blir værende. I denne raden skal alle kolonneverdiene være tomme, bortsett fra SalesOrderLineNumber.

Trinn 2: Opprette en pivottabell

Opprett en ny pivottabell, og dra deretter kolonnen, datetime. [Kalenderår], til Radetiketter-ruten. Tabellen nedenfor viser de forventede resultatene:

Radetiketter
2005
2006
2007
2008
Totalsum

Legg merke til den tomme etiketten mellom 2008 og totalsum. Denne tomme etiketten representerer det ukjente medlemmet, som er en spesiell gruppe som er opprettet for å ta hensyn til eventuelle verdier i den underordnede tabellen som ikke har noen samsvarende verdi i den overordnede tabellen, i dette eksemplet datetime. [Kalenderår]-kolonnen.

Når du ser denne tomme etiketten i pivottabellen, vet du at i noen av tabellene som er relatert til kolonnen, datetime. [Kalenderår], det er enten tomme verdier eller verdier som ikke samsvarer. Den overordnede tabellen er den som viser den tomme etiketten, men radene som ikke samsvarer, er i én eller flere av de underordnede tabellene.

Radene som legges til i denne tomme etikettgruppen, er enten verdier som ikke samsvarer med noen verdi i den overordnede tabellen, for eksempel en dato som ikke finnes i datetime-tabellen– eller nullverdier, noe som betyr ingen verdi for dato i det hele tatt. I dette eksemplet har vi plassert en tom verdi i alle kolonnene i den underordnede salgstabellen. Det er ikke noe problem å ha flere verdier i den overordnede tabellen enn i underordnede tabeller.

Trinn 3: Telle rader ved hjelp av ALL og ALLNOBLANK

Legg til følgende to mål i datetime-tabellen for å telle tabellradene: Countrows ALLNOBLANK for datetime, Countrows ALL datetime. Formlene du kan bruke til å definere disse målene, er:

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

Legg til datetime i en tom pivottabell. [Kalenderår]-kolonnen i radetikettene, og legg deretter til de nyopprettede målene. Resultatene skal se ut som følgende tabell:

Radetiketter Countrows ALLNOBLANK for datetime Countrows ALL datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Totalsum 1280 1281

Resultatene viser en forskjell på én rad i antall tabellrader. Hvis du imidlertid åpner Power Pivot-vinduet og velger datetime-tabellen, finner du ingen tom rad i tabellen fordi den spesielle tomme raden som er nevnt her, er det ukjente medlemmet.

Trinn 4: Kontroller at antallet er nøyaktig

For å bevise at ALLNOBLANKROW ikke teller noen virkelig tomme rader, og bare håndterer den spesielle tomme raden bare i den overordnede tabellen, legger du til følgende to mål i ResellerSales_USD tabellen: Countrows ALLNOBLANKROW av ResellerSales_USD, Countrows ALL av ResellerSales_USD.

Opprett en ny pivottabell, og dra kolonnen, datetime. [Kalenderår], til Radetiketter-ruten. Legg nå til målene du nettopp opprettet. Resultatene skal se slik ut:

Radetiketter Countrows ALLNOBLANKROW av ResellerSales_USD Countrows ALL av ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Totalsum 60856 60856

Nå har de to målene de samme resultatene. Det er fordi ALLNOBLANKROW-funksjonen ikke teller virkelig tomme rader i en tabell, men bare håndterer den tomme raden som er et spesielt tilfelle generert i en overordnet tabell, når én eller flere av de underordnede tabellene i relasjonen inneholder verdier som ikke samsvarer eller tomme verdier.

FilterfunksjonerALL funksjonFILTER funksjon