ALL

Si applica a:Calcolo visivo misuratabella calcolata colonnacalcolata

Restituisce tutte le righe di una tabella o tutti i valori di una colonna ignorando i filtri eventualmente applicati. Questa funzione è utile per cancellare i filtri e creare calcoli in tutte le righe di una tabella.

Sintassi

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

Parametri

Termine Definizione
table Tabella in cui cancellare i filtri.
colonna Colonna in cui 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 usare espressioni di tabella o espressioni di colonna con la funzione ALL.

Valore restituito

Tabella o colonna con i filtri rimossi.

Osservazioni:

  • Questa funzione non viene usata da sola, ma serve come funzione intermedia che è possibile usare per modificare il set di risultati su cui viene eseguito qualche altro calcolo.

  • Il comportamento normale per le espressioni DAX che contengono la funzione ALL() prevede che tutti i filtri applicati vengano ignorati. Questo tuttavia non accade in alcuni scenari grazie ad Auto Exist, una tecnologia DAX che ottimizza l'applicazione dei filtri per ridurre le operazioni di elaborazione necessarie per determinate query DAX. Auto Exist e ALL(), ad esempio, danno risultati imprevisti quando si applicano filtri a due o più colonne della stessa tabella (come quando si usano i filtri dei dati) e in questa stessa tabella è presente una misura che usa ALL(). In questo caso, Auto Exist unirà i diversi filtri in uno solo e lo applicherà solo alle combinazioni esistenti di valori. A causa di questa unione, la misura verrà calcolata sulle combinazioni di valori esistenti e il risultato sarà basato sui valori filtrati invece che su tutti i valori come previsto. Per altre informazioni su Auto Exist e su come influisce sui calcoli, vedere l'articolo Understanding DAX Auto-Exist (Informazioni sulla tecnologia Auto Exist di DAX) del Microsoft MVP Alberto Ferrari su sql.bi.com.

  • La tabella seguente descrive come è possibile usare le funzioni ALL e ALLEXCEPT in scenari diversi.

    Funzione e utilizzo Descrizione
    ALL() Rimuove tutti i filtri ovunque. Si può usare ALL() solo per cancellare i filtri, ma non per restituire una tabella.
    ALL(Table) Rimuove tutti i filtri dalla tabella specificata. ALL(Table) restituisce in pratica tutti i valori di una tabella, rimuovendo qualsiasi filtro applicato nel contesto. Questa funzione è utile quando si usano numerosi livelli di raggruppamento e si vuole creare un calcolo che produca un rapporto di un valore aggregato con il valore totale. Questo scenario è illustrato nel primo esempio.
    ALL (Column[, Column[, …]]) Rimuove tutti i filtri dalle colonne specificate nella tabella. Tutti gli altri filtri in altre colonne nella tabella vengono mantenuti. Tutti gli argomenti della colonna devono provenire dalla stessa tabella. La variante ALL(Column) è utile quando si vogliono rimuovere i filtri di contesto per una o più colonne specifiche e mantenere tutti gli altri filtri di contesto. Questo scenario è illustrato nel secondo e nel terzo esempio.
    ALLEXCEPT(Table, Column1 [,Column2]...) Rimuove tutti i filtri di contesto nella tabella ad eccezione dei filtri applicati alle colonne specificate. Si tratta di un metodo veloce e utile per le situazioni in cui si vogliono rimuovere i filtri da molte colonne di una tabella, ma non da tutte.
  • 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 1

Calcolare il rapporto tra vendite di una categoria e vendite totali

Si supponga di voler calcolare 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 dai filtri o dai raggruppamenti applicati dall'utente alla tabella pivot, è possibile definire una formula in cui viene usata la funzione ALL per calcolare il totale complessivo corretto.

La tabella seguente mostra i risultati quando viene creata una nuova misura, All Reseller Sales Ratio, usando la formula mostrata nella sezione relativa al codice. Per vedere come funziona, 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 dei valori della tabella pivot. Per visualizzare i risultati sotto forma di percentuali, usare le funzionalità di formattazione di Excel per applicare una formattazione di numero percentuale alle celle che contengono la misura.

Etichette di riga Accessori Bikes Clothing Componenti Grand Total
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%
Grand Total 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 si crea 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 della tabella.

  3. Si usa poi 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 dell'anno corrente

Si supponga di voler creare una tabella in cui mettere a confronto la percentuale di vendite 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 l'anno specifico e la categoria di prodotto per la somma delle vendite della stessa la categoria di prodotto nel corso di tutti gli anni. In altre parole, si vuole mantenere il filtro applicato a ProductCategoryName, ma rimuovere il filtro applicato all'anno quando si calcola il denominatore della percentuale.

La tabella seguente mostra i risultati quando viene creata una nuova misura, Reseller Sales Year, usando la formula mostrata nella sezione del codice. Per vedere come funziona, aggiungere il campo CalendarYear all'area Etichette di riga di una tabella pivot, poi aggiungere il campo ProductCategoryName all'area Etichette di colonna. Per visualizzare i risultati sotto forma di percentuali, usare le funzionalità di formattazione di Excel per applicare una formattazione di numero percentuale alle celle che contengono la misura Reseller Sales Year.

Etichette di riga Accessori Bikes Clothing Componenti Grand Total
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%
Grand Total 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 si crea 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 si rimuove il filtro esistente su CalendarYear usando la funzione ALL(Column). Questa operazione consente di calcolare la somma sulle righe restanti della tabella ResellerSales_USD, dopo avere applicato i filtri di contesto esistenti dalle etichette di colonna. Il risultato finale è che per il denominatore la somma viene calcolata sugli elementi ProductCategoryName selezionati (filtro di contesto implicito) e per tutti i valori di Year.

Esempio 3

Calcolare il contributo delle categorie di prodotto rispetto alle vendite totali per anno

Si supponga di voler creare una tabella che mostra la percentuale di vendite per ogni categoria di prodotto su base annua. Per ottenere la percentuale per ogni categoria di prodotto per un determinato anno, è necessario calcolare la somma delle vendite per quella specifica categoria di prodotto, ProductCategoryName, nell'anno n, quindi dividere il valore risultante per la somma delle vendite per l'anno n per tutte le categorie di prodotto. In altre parole, si vuole mantenere il filtro applicato all'anno, ma rimuovere il filtro applicato a ProductCategoryName quando si calcola il denominatore della percentuale.

La tabella seguente mostra i risultati quando viene creata una nuova misura, Reseller Sales CategoryName, usando la formula mostrata nella sezione del codice. Per vedere come funziona, aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot, poi aggiungere il campo ProductCategoryName all'area Etichette di colonna. Aggiungere quindi la nuova misura all'area dei valori della tabella pivot. Per visualizzare i risultati sotto forma di percentuali, usare le funzionalità di formattazione di Excel per applicare una formattazione di numero percentuale alle celle che contengono la nuova misura Reseller Sales CategoryName.

Etichette di riga Accessori Bikes Clothing Componenti Grand Total
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%
Grand Total 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 si crea 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(Column) per rimuovere il filtro in ProductCategoryName e si calcola la somma delle righe rimanenti nella tabella ResellerSales_USD, dopo avere applicato i filtri di contesto esistenti dalle etichette di riga. Il risultato finale è che, per il denominatore, la somma viene calcolata sull'anno selezionato (filtro di contesto implicito) e per tutti i valori di ProductCategoryName.

Funzioni di filtro
Funzione ALL
Funzione ALLEXCEPT
Funzione FILTER