Condividi tramite


ALL

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

Restituisce tutte le righe di una tabella o tutti i valori di una colonna, ignorando eventuali filtri che potrebbero essere stati applicati. Questa funzione è utile per cancellare i filtri e creare calcoli su tutte le righe di una tabella.

Sintassi

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )

Parametri

Termine Definizione
table Tabella su cui si desidera cancellare i filtri.
column Colonna su cui si desidera cancellare i filtri.

L'argomento della funzione ALL deve essere un riferimento a una tabella di base o un riferimento a una colonna di base. Non è possibile utilizzare espressioni di tabella o espressioni di colonna con la funzione ALL.

Valore restituito

Tabella o colonna con filtri rimossi.

Osservazioni

  • Questa funzione non viene usata da sola, ma funge da funzione intermedia che può essere usata per modificare il set di risultati su cui viene eseguito un altro calcolo.

  • Il comportamento normale per le espressioni DAX contenenti la funzione ALL() è che tutti i filtri applicati verranno ignorati. Tuttavia, esistono alcuni scenari in cui questo non è il caso a causa di auto-exist, una tecnologia DAX che ottimizza il filtro per ridurre la quantità di elaborazione necessaria per determinate query DAX. Un esempio in cui esistono automaticamente e ALL() forniscono risultati imprevisti è quando si filtrano due o più colonne della stessa tabella (ad esempio quando si usano filtri dei dati) ed è presente una misura sulla stessa tabella che usa ALL(). In questo caso, l'esistenza automatica unire più filtri in uno e filtra solo le combinazioni esistenti di valori. A causa di questa unione, la misura verrà calcolata in base alle combinazioni esistenti di valori e il risultato sarà basato su valori filtrati anziché su tutti i valori come previsto. Per altre informazioni sull'esistenza automatica e sul relativo effetto sui calcoli, vedere l'articolo understanding DAX Auto-Exist di Microsoft MVP Alberto Ferrari su sql.bi.com.

  • Nella tabella seguente viene descritto come usare le funzioni ALL e ALLEXCEPT in scenari diversi.

    Funzione e utilizzo Descrizione
    ALL() Rimuove tutti i filtri ovunque. ALL() può essere usato solo per cancellare i filtri, ma non per restituire una tabella.
    ALL(tabella) Rimuove tutti i filtri dalla tabella specificata. In effetti, ALL(Tabella) restituisce tutti i valori della tabella, rimuovendo eventuali filtri dal contesto che altrimenti potrebbero essere stati applicati. Questa funzione è utile quando si utilizzano molti livelli di raggruppamento e si vuole creare un calcolo che crea un rapporto di un valore aggregato al valore totale. Il primo esempio illustra questo scenario.
    ALL (Column[, Column[, ...]]) Rimuove tutti i filtri dalle colonne specificate nella tabella; tutti gli altri filtri su altre colonne della tabella vengono comunque applicati. Tutti gli argomenti di colonna devono provenire dalla stessa tabella. La variante ALL(colonna) è utile quando si desidera rimuovere i filtri di contesto per una o più colonne specifiche e mantenere tutti gli altri filtri di contesto. Il secondo e il terzo esempio illustrano questo scenario.
    ALLEXCEPT(tabella, colonna1 [,colonna2]...) Rimuove tutti i filtri di contesto nella tabella, ad eccezione dei filtri applicati alle colonne specificate. Si tratta di un collegamento pratico per le situazioni in cui si desidera rimuovere i filtri in molte colonne, ma non tutte, in una tabella.
  • 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 1

Calcolare il rapporto tra le vendite di categoria e le vendite totali

Si supponga di voler trovare l'importo delle vendite per la cella corrente, nella tabella pivot, diviso per le vendite totali per tutti i rivenditori. Per assicurarsi che il denominatore sia lo stesso indipendentemente dal modo in cui l'utente della tabella pivot potrebbe filtrare o raggruppare i dati, definire una formula che usa ALL per creare il totale complessivo corretto.

La tabella seguente mostra i risultati quando viene creata una nuova misura, All Reseller Sales Ratio, usando la formula illustrata nella sezione del codice. Per informazioni sul funzionamento, aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot e aggiungere il campo ProductCategoryName all'area etichette di colonna . Trascinare quindi la misura All Reseller Sales Ratio, nell'area Values della tabella pivot. Per visualizzare i risultati come percentuali, utilizzare le funzionalità di formattazione di Excel per applicare una formattazione numerica percentuale alle celle che contengono la misura.

Etichette di riga Accessoristica Biciclette Abbigliamento Componenti Totale complessivo
2005 0.02% 9.10% 0,04% 0,75% 9.91%
2006 0.11% 24.71% 0,60% 4.48% 29.90%
2007 0.36% 31.71% 1.07% 6.79% 39.93%
2008 0,20% 16.95% 0,48% 2.63% 20.26%
Totale complessivo 0,70% 82.47% 2.18% 14.65% 100,00%

formula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])

La formula viene costruita come segue:

  1. Il numeratore, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), è la somma dei valori in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con i filtri di contesto applicati a CalendarYear e ProductCategoryName.

  2. Per il denominatore, si inizia specificando una tabella, ResellerSales_USD e si usa la funzione ALL per rimuovere tutti i filtri di contesto nella tabella.

  3. Usare quindi la funzione SUMX per sommare i valori nella colonna ResellerSales_USD[SalesAmount_USD]. In altre parole, si ottiene la somma di ResellerSales_USD[SalesAmount_USD] per tutte le vendite dei rivenditori.

Esempio 2

Calcolare il rapporto tra vendite prodotto e vendite totali fino all'anno corrente

Si supponga di voler creare una tabella che mostra la percentuale di vendite confrontate negli anni per ogni categoria di prodotto (ProductCategoryName). Per ottenere la percentuale per ogni anno per ogni valore di ProductCategoryName, è necessario dividere la somma delle vendite per quel particolare anno e categoria di prodotto per la somma delle vendite per la stessa categoria di prodotti in tutti gli anni. In altre parole, si vuole mantenere il filtro in ProductCategoryName, ma rimuovere il filtro sull'anno quando si calcola il denominatore della percentuale.

Nella tabella seguente vengono illustrati i risultati quando viene creata una nuova misura, Reseller Sales Year, usando la formula illustrata nella sezione del codice. Per informazioni sul funzionamento, aggiungere il campo CalendarYear all'area Etichette di riga di una tabella pivot e aggiungere il campo ProductCategoryName all'area etichette di colonna . Per visualizzare i risultati come percentuali, utilizzare le funzionalità di formattazione di Excel per applicare un formato numerico percentuale alle celle contenenti la misura, Reseller Sales Year.

Etichette di riga Accessoristica Biciclette Abbigliamento Componenti Totale complessivo
2005 3.48% 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
Totale complessivo 100,00% 100,00% 100,00% 100,00% 100,00%

formula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))

La formula viene costruita come segue:

  1. Il numeratore, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), è la somma dei valori in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con i filtri di contesto applicati alle colonne CalendarYear e ProductCategoryName.

  2. Per il denominatore, rimuovere il filtro esistente in CalendarYear usando la funzione ALL(Colonna). In questo modo viene calcolata la somma delle righe rimanenti nella tabella ResellerSales_USD, dopo aver applicato i filtri di contesto esistenti dalle etichette di colonna. L'effetto netto è che per il denominatore la somma viene calcolata sul ProductCategoryName selezionato (filtro di contesto implicito) e per tutti i valori in Year.

Esempio 3

Calcolare il contributo delle categorie di prodotti alle vendite totali all'anno

Si supponga di voler creare una tabella che mostri la percentuale di vendite per ogni categoria di prodotti, su base annuale. Per ottenere la percentuale per ogni categoria di prodotto in un determinato anno, è necessario calcolare la somma delle vendite per quella particolare categoria di prodotto (ProductCategoryName) nell'anno n e quindi dividere il valore risultante per la somma delle vendite per l'anno n in tutte le categorie di prodotti. In altre parole, si vuole mantenere il filtro sull'anno, ma rimuovere il filtro in ProductCategoryName durante il calcolo del denominatore della percentuale.

La tabella seguente mostra i risultati quando viene creata una nuova misura, Reseller Sales CategoryName, usando la formula illustrata nella sezione del codice. Per informazioni sul funzionamento, aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot e aggiungere il campo ProductCategoryName all'area etichette di colonna . Aggiungere quindi la nuova misura all'area valori della tabella pivot. Per visualizzare i risultati come percentuali, utilizzare le funzionalità di formattazione di Excel per applicare un formato numerico percentuale alle celle che contengono la nuova misura, Reseller Sales CategoryName.

Etichette di riga Accessoristica Biciclette Abbigliamento Componenti Totale complessivo
2005 0,25% 91.76% 0.42% 7.57% 100,00%
2006 0,38% 82.64% 1.99% 14.99% 100,00%
2007 0,90% 79.42% 2.67% 17.01% 100,00%
2008 0,99% 83.69% 2.37% 12.96% 100,00%
Totale complessivo 0,70% 82.47% 2.18% 14.65% 100,00%

formula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))

La formula viene costruita come segue:

  1. Il numeratore, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), è la somma dei valori in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con i filtri di contesto applicati ai campi CalendarYear e ProductCategoryName.

  2. Per il denominatore, si usa la funzione ALL(Colonna) per rimuovere il filtro in ProductCategoryName e calcolare la somma sulle righe rimanenti nella tabella ResellerSales_USD, dopo aver applicato i filtri di contesto esistenti dalle etichette di riga. L'effetto netto è che, per il denominatore, la somma viene calcolata per l'anno selezionato (il filtro di contesto implicito) e per tutti i valori di ProductCategoryName.

funzioni filterALL funzioneALLEXCEPT funzioneFILTER