ALL
Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo
Restituisce all le righe di una tabella, orall il values in una colonna, ignorando eventuali filters che potrebbero essere state applicate. Questa funzione è utile per cancellare filtersand la creazione di calcoli su all le righe di una tabella.
Sintassi
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Parametri
Termine | Definizione |
---|---|
table |
Tabella in cui si desidera cancellare filters. |
column |
Colonna in cui si desidera cancellare filters. |
L'argomento della funzione ALL deve essere un riferimento a una tabella di base or un riferimento a una colonna di base. Non è possibile utilizzare espressioni di tabella or espressioni di colonna con la funzione ALL.
Restituisce value
La tabella or colonna con filters rimossa.
Osservazioni
Questa funzione è not 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 qualsiasi filters applicata verrà ignorata. Tuttavia, esistono alcuni scenari in cui si tratta di not 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 l'andALL() genera risultati imprevisti quando si filtrano due or più colonne della stessa tabella (ad esempio quando si usano filtri dei dati), and è presente un measure nella stessa tabella che usa ALL(). In questo caso, l'esistenza automatica merge più filters in un'unica and verrà filter solo su combinazioni esistenti di values. A causa di questa unione, il measure verrà calcolato sulle combinazioni esistenti di valuesand il risultato sarà basato su values filtrati anziché allvalues come previsto. Per altre informazioni sull'esistenza automaticai relativi sui calcoli, vedere l'articolo di Microsoft MVP Alberto Ferrari sull' suesistenza automatica . Nella tabella seguente viene descritto come usare le funzioni di ALLandALLEXCEPT in scenari diversi.
Utilizzo and della funzione Descrizione ALL() Rimuove allfilters ovunque. ALL() può essere usato solo per cancellare filters, ma not per restituire una tabella. ALL(tabella) Rimuove allfilters dalla tabella specificata. In effectALL(Tabella) restituisce all del values nella tabella, rimuovendo qualsiasi filters dal contesto che altrimenti potrebbe essere stato applicato. Questa funzione è utile quando si utilizzano molti livelli di raggruppamento, and si vuole creare un calcolo che crea un rapporto di un value aggregato al totale value. L'esempio first illustra questo scenario. ALL (Column[, Column[, ...]]) Rimuove allfilters dalle colonne specificate nella tabella; all altre filters su altre colonne della tabella sono ancora valide. All argomenti di colonna devono provenire dalla stessa tabella. La variante ALL(colonna) è utile quando si desidera rimuovere il filters di contesto per una or colonne più specifiche and mantenere all altro contesto filters. Il secondand terzo esempio illustra questo scenario. ALLEXCEPT(tabella, colonna1 [,colonna2]...) Rimuove allfilters di contesto nella tabella exceptfilters applicata alle colonne specificate. Si tratta di un collegamento pratico per le situazioni in cui si vuole rimuovere il filters in molti, ma notallcolonne in una tabella. Questa funzione è not supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate or regole di sicurezza a livello di riga.
Esempio 1
Calculate rapporto tra Category Sales e Total Sales
Si supponga di voler find l'importo delle vendite per la cella corrente, nella tabella pivot, diviso per le vendite totali per all rivenditori. Per assicurarsi che il denominatore sia lo stesso indipendentemente dal modo in cui l'utente della tabella pivot potrebbe filtrare or raggruppare i dati, è define una formula che usa ALL per creare il totale complessivo corretto.
La tabella seguente mostra i risultati quando viene creato un nuovo measure, 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
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:
Il numeratore,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, è il sum del values in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con il contesto filters applicato a CalendarYear and ProductCategoryName.Per il denominatore, si inizia specificando una tabella, ResellerSales_USD, and usare la funzione ALL per rimuovere all contesto filters nella tabella.
Si usa quindi la funzione SUMX per sum il values nella colonna ResellerSales_USD[SalesAmount_USD]. In altre parole, si ottiene la sum di ResellerSales_USD[SalesAmount_USD] per le vendite all rivenditori.
Esempio 2
Calculate Rapporto tra vendite Product e vendite totali tramite i Year correnti
Si supponga di voler creare una tabella che mostra la percentuale di vendite confrontate negli anni per ogni categoria di product (ProductCategoryName). Per ottenere la percentuale per ogni year per ogni value di ProductCategoryName, è necessario divide il sum delle vendite per tale particolare categoria di yearandproduct in base al sum delle vendite per la stessa categoria di product negli anni all. In altre parole, si vuole mantenere il filter in ProductCategoryName, ma rimuovere il filter sul year durante il calcolo del denominatore della percentuale.
Nella tabella seguente vengono illustrati i risultati quando viene creata una nuova measure, Reseller Sales Year, usando la formula illustrata nella sezione del codice. Per verificare il funzionamento di questa operazione, aggiungere il campo CalendarYear all 'area etichette di riga di una tabella pivot and aggiungere il campo ProductCategoryName all'area Etichette colonne. Per visualizzare i risultati come percentuali, utilizzare le funzionalità di formattazione di Excel per applicare un numero percentuale format alle celle contenenti il measure, 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:
Il numeratore,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, è il sum del values in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con contesto filters applicato alle colonne CalendarYear and ProductCategoryName.Per il denominatore, rimuovere il filter esistente in CalendarYear usando la funzione ALL(Column). In questo modo viene calcolato il sum sulle righe rimanenti nella tabella ResellerSales_USD, dopo aver applicato il contesto esistente filters dalle etichette di colonna. Il effect netto è che per il denominatore il sum viene calcolato sul filter di andcontesto implicito filtervaluesYear selezionato in .
Esempio 3
Calculate contributo delle categorie di Product al totale delle vendite per Year
Si supponga di voler creare una tabella che mostri la percentuale di vendite per ogni categoria di product, in base yearyear. Per ottenere la percentuale per ogni categoria di product in un determinato year, è necessario calculate il sum delle vendite per tale particolare categoria di product (ProductCategoryName) in year n, and quindi divide il value risultante dal sum delle vendite per il year n oltre le categorie di allproduct. In altre parole, si vuole mantenere il filter su year, ma rimuovere il filter in ProductCategoryName quando si calcola il denominatore della percentuale.
La tabella seguente mostra i risultati quando viene creata una nuova measure, Reseller Sales CategoryName, usando la formula illustrata nella sezione del codice. Per informazioni sul funzionamento, aggiungere il campo CalendarYear all'area etichette di riga
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:
Il numeratore,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, è il sum del values in ResellerSales_USD[SalesAmount_USD] per la cella corrente nella tabella pivot, con il contesto filters applicato nei campi CalendarYear and ProductCategoryName.Per il denominatore, si usa la funzione ALL(Colonna) per rimuovere il filter in ProductCategoryName andcalculate il sum sulle righe rimanenti nella tabella ResellerSales_USD, dopo aver applicato il contesto esistente filters dalle etichette di riga. Il effect netto è che, per il denominatore, il sum viene calcolato sulla Year selezionata (il contesto implicito filter) and per allvalues di ProductCategoryName.