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.