Condividi tramite


ALLNOBLANKROW

Si applica a: Calcolo visivo misura tabella calcolata colonna calcolata

Restituisce dalla tabella padre di una relazione tutte le righe ad eccezione della riga vuota o tutti i valori distinti di una colonna ad eccezione della riga vuota e ignora gli eventuali filtri di contesto esistenti.

Sintassi

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

Parametri

Termine Definizione
table Tabella da cui vengono eliminati tutti i filtri di contesto.
colonna Colonna da cui vengono eliminati tutti i filtri di contesto.

È necessario passare un solo parametro; il parametro è una tabella o una colonna.

Valore restituito

Una tabella, quando il parametro passato è una tabella o una colonna di valori, quando il parametro passato è una colonna.

Osservazioni:

  • La funzione ALLNOBLANKROW filtra solo la riga vuota che verrà mostrata da una tabella padre di una relazione in presenza di una o più righe della tabella figlio contenenti valori non corrispondenti alla colonna padre. Per una spiegazione completa, vedere l'esempio seguente.

  • La tabella seguente riepiloga le variazioni della funzione ALL fornite in DAX con le relative differenze:

    Funzione e utilizzo Descrizione
    ALL(Column) Rimuove tutti i filtri dalle colonne specificate nella tabella. Tutti gli altri filtri nella tabella, applicati alle altre colonne, vengono mantenuti.
    ALL(Table) Rimuove tutti i filtri dalla tabella specificata.
    ALLEXCEPT(Table,Col1,Col2...) Esegue l'override di tutti i filtri di contesto nella tabella, ad eccezione di quelli applicati alle colonne specificate.
    ALLNOBLANK(table|column) Restituisce dalla tabella padre di una relazione tutte le righe ad eccezione della riga vuota o tutti i valori distinti di una colonna ad eccezione della riga vuota e ignora gli eventuali filtri di contesto esistenti

    Per una descrizione generale del funzionamento di ALL, insieme a esempi dettagliati in cui vengono usate le funzioni ALL(Table) e ALL(Column), vedere Funzione ALL.

  • Questa funzione non è supportata per l'uso nella modalità DirectQuery se usata in colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio

Nei dati di esempio, la tabella ResellerSales_USD contiene una sola riga senza valori e non può pertanto essere correlata alle tabelle padre nelle relazioni presenti nella cartella di lavoro. Si userà questa tabella in una tabella pivot per seguire il comportamento della riga vuota e la modalità di gestione dei conteggi sui dati non correlati.

Passaggio 1: verificare i dati non correlati

Aprire la finestra di PowerPivot, quindi selezionare la tabella ResellerSales_USD. Nella colonna ProductKey filtrare i valori vuoti. Rimarrà una sola riga. In tale riga tutti i valori di colonna dovrebbero essere vuoti, ad eccezione di SalesOrderLineNumber.

Passaggio 2: Creare una tabella pivot

Creare una nuova tabella pivot, quindi trascinare la colonna datetime.[Calendar Year] sul riquadro delle etichette di riga. Nella tabella seguente vengono illustrati i risultati previsti:

Etichette di riga
2005
2006
2007
2008
Grand Total

Si noti l'etichetta vuota tra 2008 e Totale complessivo. Questa etichetta vuota rappresenta il membro sconosciuto, ovvero un gruppo speciale creato per gestire qualsiasi valore della tabella figlio che non ha un valore corrispondente nella tabella padre e che in questo esempio è indicato dalla colonna datetime.[Calendar Year].

La presenza di questa etichetta vuota nella tabella pivot indica che in alcune delle tabelle correlate alla colonna datetime.[Calendar Year] sono presenti valori vuoti o non corrispondenti. La tabella padre è quella che mostra l'etichetta vuota, ma le righe che non corrispondono si trovano in una o più delle tabelle figlio.

Le righe che vengono aggiunte a questo gruppo di etichette vuote sono valori che non corrispondono a valori della tabella padre, ad esempio una data che non esiste nella tabella datetime, oppure sono valori Null che indicano l'assenza di valori per la data. In questo esempio è stato inserito un valore vuoto in tutte le colonne della tabella delle vendite figlio. La presenza di un numero maggiore di valori nella tabella padre rispetto alle tabelle figlio non rappresenta un problema.

Passaggio 3: Contare le righe usando ALL e ALLNOBLANK

Aggiungere le due misure seguenti alla tabella datetime per contare le righe della tabella: Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. Le formule che è possibile usare per definire queste misure sono:

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

In una tabella pivot vuota aggiungere la colonna datetime.[Calendar Year] alle etichette di riga, quindi aggiungere le misure appena create. I risultati saranno simili alla tabella seguente:

Etichette di riga Countrows ALLNOBLANK of datetime Countrows ALL of datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Grand Total 1280 1281

Nei risultati viene mostrata una differenza di una riga nel conteggio delle righe della tabella. Tuttavia, se si apre la finestra di PowerPivot e si seleziona la tabella datetime, non è possibile trovare righe vuote in quanto la riga vuota speciale menzionata corrisponde al membro sconosciuto.

Passaggio 4: Verificare l'accuratezza del conteggio

Per avere la certezza che ALLNOBLANKROW non conti le righe realmente vuote e gestisca solo la riga vuota speciale nella tabella padre, aggiungere le due misure seguenti alla tabella ResellerSales_USD: Countrows ALLNOBLANKROW of ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Creare una nuova tabella pivot e quindi trascinare la colonna datetime.[Calendar Year] sul riquadro delle etichette di riga. A questo punto aggiungere le misure appena create. I risultati saranno simili ai seguenti:

Etichette di riga Countrows ALLNOBLANKROW of ResellerSales_USD Countrows ALL of ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Grand Total 60856 60856

Ora le due misure hanno gli stessi risultati. Il motivo è che la funzione ALLNOBLANKROW non conta le righe realmente vuote di una tabella, ma gestisce solo la riga vuota che rappresenta un caso speciale generato in una tabella padre, quando una o più delle tabelle figlio della relazione contengono valori non corrispondenti o valori vuoti.

Funzioni di filtro
Funzione ALL
Funzione FILTER