Condividi tramite


Funzione ALLNOBLANKROW (DAX)

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 eventuali filtri di contesto esistenti.

Sintassi

ALLNOBLANKROW(<table>|<column>)

Parametri

Termine

Definizione

table

Tabella da cui vengono rimossi tutti i filtri di contesto.

column

Colonna da cui vengono rimossi tutti i filtri di contesto.

È necessario passare solo un 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 una tabella padre di una relazione mostra in presenza di una o più righe della tabella figlio contenenti valori non corrispondenti alla colonna padre. Vedere l'esempio riportato di seguito per una spiegazione approfondita.

Nella tabella seguente vengono riepilogate le variazioni della funzione ALL fornite in DAX con le relative differenze:

Funzione e utilizzo

Descrizione

ALL(Column)

Rimuove tutti i filtri dalla colonna specificata 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 eventuali filtri di contesto esistenti.

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

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. Questa tabella verrà utilizzata 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. Rimane 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.[Anno di calendario] sul riquadro delle etichette di riga. Nella tabella seguente vengono illustrati i risultati previsti:

Row Labels

2001

2002

2003

2004

 

Grand Total

Si noti l'etichetta vuota tra 2004 e Grand Total. Questa etichetta vuota rappresenta il membro sconosciuto, ovvero un gruppo speciale creato da PowerPivot per gestire i valori della tabella figlio che non presentano un valore corrispondente nella tabella padre e che in questo esempio corrisponde alla colonna datetime.[Anno di calendario].

La presenza di questa etichetta vuota nella tabella pivot indica che in alcune delle tabelle correlate alla colonna datetime.[Anno di calendario] 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 causa problemi.

Passaggio 3: Contare le righe mediante ALL e ALLNONBLANK

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 consentono di definire queste misure vengono fornite nella sezione di codice seguente.

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

Row Labels

Countrows ALLNOBLANK of datetime

Countrows ALL of datetime

2001

1280

1281

2002

1280

1281

2003

1280

1281

2004

1280

1281

 

1280

1281

Grand Total

1280

1281

I risultati mostrano una differenza di 1 riga nel conteggio delle righe della tabella. Se, tuttavia, 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, quindi trascinare la colonna datetime.[Anno di calendario] sul riquadro delle etichette di riga. A questo punto aggiungere le misure appena create. I risultati saranno simili ai seguenti:

Row Labels

Countrows ALLNOBLANKROW of ResellerSales_USD

Countrows ALL of ResellerSales_USD

2001

60856

60856

2002

60856

60856

2003

60856

60856

2004

60856

60856

 

60856

60856

Grand Total

60856

60856

Le due misure presentano ora gli stessi risultati. Il motivo di ciò è 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.

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

Vedere anche

Riferimento

Altre risorse