Funzione ALL
Vengono restituite tutte le righe in una tabella o tutti i valori in una colonna, ignorando qualsiasi filtro che potrebbe essere stato applicato. 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 per cui si desidera cancellare i filtri. |
column |
Colonna per 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 i filtri rimossi.
Osservazioni
Questa funzione non viene utilizzata da sola, ma serve come funzione intermedia che è possibile utilizzare per modificare il set di risultati su cui viene eseguito qualche altro calcolo.
<Stato dell'argomento:> alcune informazioni riportate in questo argomento rappresentano una documentazione non definitiva e sono soggette a modifiche nelle versioni future. Nelle informazioni sulla versione preliminare sono descritte nuove funzionalità o modifiche alle funzionalità esistenti in Microsoft SQL Server 2012 Service Pack 1 (SP1) Community Technology Preview 4 (CTP4). nei casi in cui [Column] è contrassegnato come colonna data mediante Contrassegna come tabella data
Come descritto nella tabella seguente, è possibile utilizzare le funzioni ALL e ALLEXCEPT in scenari diversi.
Funzione e utilizzo |
Descrizione |
---|---|
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 utilizzano numerosi livelli di raggruppamento e si desidera creare un calcolo che produca un rapporto di un valore aggregato con il valore totale. Questo scenario è illustrato nel primo esempio. |
ALL (Column[, Column[, …]]) |
Vengono rimossi 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 desidera 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. Questo è un metodo veloce e utile per situazioni in cui si desidera rimuovere i filtri da molte colonne di una tabella, ma non da tutte. |
Esempio: Calcolo del rapporto tra vendite di una categoria e vendite totali
Descrizione
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 utilizzata la funzione ALL per calcolare il totale complessivo corretto.
Nella tabella seguente sono illustrati i risultati ottenuti quando una nuova misura denominata All Reseller Sales Ratio viene creata utilizzando la formula riportata nella sezione di codice. Per visualizzarne il 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 Valori della tabella pivot. Per visualizzare i risultati sotto forma di percentuali, utilizzare le caratteristiche di formattazione di Excel per applicare una formattazione di numero percentuale alle celle in cui è contenuta la misura.
All Reseller Sales |
Column Labels |
|
|
|
|
---|---|---|---|---|---|
Etichette di riga |
Accessories |
Bikes |
Clothing |
Components |
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% |
Codice
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Commenti
La formula viene creata come indicato di seguito:
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.
Per il denominatore si inizia specificando una tabella, ResellerSales_USD, e si utilizza la funzione ALL per rimuovere tutti i filtri di contesto della tabella.
Per sommare i valori nella colonna ResellerSales_USD[SalesAmount_USD], si utilizza quindi la funzione SUMX. In altre parole, si ottiene la somma di ResellerSales_USD[SalesAmount_USD] per tutte le vendite dei rivenditori.
Per ulteriori informazioni sulla creazione delle misure, vedere Creare una misura in una tabella pivot o in un grafico pivot.
[!NOTA]
Nell'esempio precedente vengono utilizzate le tabelle ResellerSales_USD, DateTime e ProductCategory della cartella di lavoro di esempio DAX. Per ulteriori informazioni sugli esempi, vedere la pagina relativa all'acquisizione dei dati di esempio.
Esempio: Calcolo del rapporto tra vendite prodotto e vendite totali dell'anno corrente
Descrizione
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 desidera mantenere il filtro applicato a ProductCategoryName, ma rimuovere il filtro applicato all'anno quando si calcola il denominatore della percentuale.
Nella tabella seguente sono illustrati i risultati ottenuti quando una nuova misura denominata Reseller Sales Year viene creata utilizzando la formula riportata nella sezione di codice. Per visualizzarne il funzionamento, aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot e aggiungere il campo ProductCategoryName all'area Etichette di colonna. Per visualizzare i risultati sotto forma di percentuali, utilizzare le caratteristiche di formattazione di Excel per applicare una formattazione di numero percentuale alle celle in cui è contenuta la misura Reseller Sales Year.
Reseller Sales Year |
Column Labels |
|
|
|
|
---|---|---|---|---|---|
Etichette di riga |
Accessories |
Bikes |
Clothing |
Components |
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% |
Codice
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Commenti
La formula viene creata come indicato di seguito:
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.
Per il denominatore si rimuove il filtro esistente su CalendarYear tramite 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.
Per ulteriori informazioni sulla creazione delle misure, vedere Creare una misura in una tabella pivot o in un grafico pivot.
[!NOTA]
In questo esempio vengono utilizzate le tabelle ResellerSales_USD, DateTime e ProductCategory della cartella di lavoro di esempio DAX. Per ulteriori informazioni sugli esempi, vedere la pagina relativa all'acquisizione dei dati di esempio.
Esempio: Calcolo del contributo delle categorie di prodotto rispetto alle vendite totali per anno
Descrizione
Si supponga di voler creare una tabella in cui visualizzare 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 desidera mantenere il filtro applicato a Year, ma rimuovere il filtro applicato a ProductCategoryName quando si calcola il denominatore della percentuale.
Nella tabella seguente sono illustrati i risultati ottenuti quando una nuova misura denominata Reseller Sales CategoryName viene creata utilizzando la formula riportata nella sezione di codice. Per visualizzarne il 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 sotto forma di percentuali, utilizzare le caratteristiche di formattazione di Excel per applicare una formattazione di numero percentuale alle celle che contengono la nuova misura Reseller Sales CategoryName.
Reseller Sales CategoryName |
Column Labels |
|
|
|
|
---|---|---|---|---|---|
Etichette di riga |
Accessories |
Bikes |
Clothing |
Components |
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% |
Codice
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Commenti
La formula viene creata come indicato di seguito:
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.
Per il denominatore si utilizza 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 alle etichette di riga. Il risultato finale è che per il denominatore la somma viene calcolata sugli elementi della colonna Year selezionati (filtro di contesto implicito) e per tutti i valori di ProductCategoryName.
Per ulteriori informazioni sulla creazione delle misure, vedere Creare una misura in una tabella pivot o in un grafico pivot.
[!NOTA]
In questo esempio vengono utilizzate le tabelle ResellerSales_USD, DateTime e ProductCategory della cartella di lavoro di esempio DAX. Per ulteriori informazioni sugli esempi, vedere la pagina relativa all'acquisizione dei dati di esempio.