ALLNOBLANKROW
Dalla tabella padre di una relazione, restituisce tutte le righe ma la riga vuota o tutti i valori distinti di una colonna, ma la riga vuota e ignora tutti i filtri di contesto che potrebbero esistere.
Sintassi
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Parametri
Termine | Definizione |
---|---|
table |
Tabella in cui vengono rimossi tutti i filtri di contesto. |
column |
Colonna in cui vengono rimossi 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 era una tabella o una colonna di valori, quando il parametro passato era una colonna.
Osservazioni
La funzione ALLNOBLANKROW filtra solo la riga vuota visualizzata da una tabella padre, in una relazione, quando nella tabella figlio sono presenti una o più righe con valori non corrispondenti alla colonna padre. Per una spiegazione completa, vedere l'esempio seguente.
La tabella seguente riepiloga le varianti di
ALL
fornite in DAXe le relative differenze:Funzione e utilizzo Descrizione ALL(Column)
Rimuove tutti i filtri dalla colonna specificata nella tabella; tutti gli altri filtri nella tabella, su altre colonne, si applicano ancora. 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 delle colonne specificate. ALLNOBLANK(table|column)
Dalla tabella padre di una relazione, restituisce tutte le righe ma la riga vuota o tutti i valori distinti di una colonna, ma la riga vuota e ignora tutti i filtri di contesto che potrebbero esistere Per una descrizione generale del funzionamento della funzione ALL, insieme agli esempi passo passo che usano ALL(Tabella) e ALL(Colonna), vedere ALL funzione.
Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.
Esempio
Nei dati di esempio la tabella ResellerSales_USD contiene una riga che non contiene valori e pertanto non può essere correlata a nessuna delle tabelle padre nelle relazioni all'interno della cartella di lavoro. Questa tabella verrà usata in una tabella pivot in modo che sia possibile visualizzare il comportamento delle righe vuote e come gestire i conteggi su dati non correlati.
Passaggio 1: Verificare i dati non correlati
Aprire la finestra Power Pivot, quindi selezionare la tabella ResellerSales_USD. Nella colonna ProductKey filtrare i valori vuoti. Una riga rimarrà. In tale riga tutti i valori di colonna devono essere vuoti, ad eccezione di SalesOrderLineNumber.
Passaggio 2: Creare una tabella pivot
Creare una nuova tabella pivot, quindi trascinare la colonna datetime. [Anno calendario], nel riquadro Etichette di riga. La tabella seguente mostra i risultati previsti:
Etichette di riga |
---|
2005 |
2006 |
2007 |
2008 |
Totale complessivo |
Si noti l'etichetta vuota tra 2008 e totale complessivo. Questa etichetta vuota rappresenta il membro Unknown, ovvero un gruppo speciale creato per tenere conto di tutti i valori nella tabella figlio che non hanno alcun valore corrispondente nella tabella padre, in questo esempio datetime. [Anno calendario] colonna.
Quando viene visualizzata questa etichetta vuota nella tabella pivot, si sa che in alcune delle tabelle correlate alla colonna datetime. [Anno calendario], sono presenti valori vuoti o valori non corrispondenti. La tabella padre è quella che mostra l'etichetta vuota, ma le righe che non corrispondono si trovano in una o più tabelle figlio.
Le righe aggiunte a questo gruppo di etichette vuote sono valori che non corrispondono ad alcun valore nella tabella padre, ad esempio una data che non esiste nei valori datetime table- o Null, ovvero nessun valore per date. In questo esempio è stato inserito un valore vuoto in tutte le colonne della tabella di vendita figlio. La presenza di più valori nella tabella padre rispetto alle tabelle figlio non causa 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 di datetime, Countrows ALL di 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 datetime. [Calendar Year] colonna alle etichette di riga e quindi aggiungere le misure appena create. I risultati dovrebbero essere simili alla tabella seguente:
Etichette di riga | Countrows ALLNOBLANK di datetime | Countrows ALL di 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 1 riga nel conteggio delle righe della tabella. Tuttavia, se si apre la finestra Power Pivot e si seleziona la tabella datetime, non è possibile trovare alcuna riga vuota nella tabella perché la riga vuota speciale indicata qui è il membro Sconosciuto.
Passaggio 4: Verificare che il conteggio sia accurato
Per dimostrare che il ALLNOBLANKROW non conta righe veramente vuote e gestisce solo la riga vuota speciale solo nella tabella padre, aggiungere le due misure seguenti alla tabella ResellerSales_USD: Countrows ALLNOBLANKROW di ResellerSales_USD, Countrows ALL di ResellerSales_USD.
Creare una nuova tabella pivot e trascinare la colonna datetime. [Anno calendario], nel riquadro Etichette di riga. Aggiungere ora le misure appena create. I risultati dovrebbero essere simili ai seguenti:
Etichette di riga | Conteggio ALLNOBLANKROW di ResellerSales_USD | Conteggio ALL di ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
Totale complessivo | 60856 | 60856 |
Ora le due misure hanno gli stessi risultati. Ciò è dovuto al fatto che la funzione ALLNOBLANKROW non conta righe veramente vuote in una tabella, ma gestisce solo la riga vuota generata in una tabella padre, quando una o più tabelle figlio nella relazione contengono valori non corrispondenti o valori vuoti.