Funzione ALLNOBLANKROW
Vengono restituite 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 vengono ignorati gli 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) |
Vengono restituite 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 vengono ignorati gli 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.
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:
Etichette di riga |
---|
2005 |
2006 |
2007 |
2008 |
|
Totale complessivo |
Si noti l'etichetta vuota tra 2008 e Totale complessivo. Tramite questa etichetta vuota viene rappresentato il membro sconosciuto, ovvero un gruppo speciale creato per gestire qualsiasi valore della tabella figlio che non dispone di 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.[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:
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 |
Totale complessivo |
1280 |
1281 |
I risultati mostrano una differenza di una 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:
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 |
Totale complessivo |
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'))