Filtrare i dati nelle formule DAX

Nota: Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l'articolo in lingua inglese per riferimento.

Questa sezione descrive come creare filtri all'interno delle formule di Data Analysis Expressions (DAX). È possibile creare filtri all'interno delle formule per limitare i valori dei dati di origine usati nei calcoli. A tale scopo, devi specificare una tabella come input per la formula e quindi definire un'espressione di filtro. L'espressione di filtro che fornisci viene usata per eseguire query sui dati e restituire solo un sottoinsieme dei dati di origine. Il filtro viene applicato in modo dinamico ogni volta che si aggiornano i risultati della formula, a seconda del contesto corrente dei dati.

In questo articolo

Creazione di un filtro in una tabella utilizzata in una formula

Filtri per la rimozione di duplicati

Influenza del contesto sui filtri

Rimozione di filtri

Override di tutti i filtri tramite la funzione ALL

Override di filtri specifici tramite la funzione ALLEXCEPT

Creazione di un filtro in una tabella utilizzata in una formula

È possibile applicare filtri nelle formule in cui viene utilizzata una tabella come input. Anziché immettere un nome di tabella, è possibile utilizzare la funzione FILTER per definire un subset di righe dalla tabella specificata. Il subset viene passato a un'altra funzione per operazioni quali aggregazioni personalizzate.

Si supponga, ad esempio, di disporre di una tabella di dati contenente informazioni sugli ordini dei rivenditori e che si desideri calcolare le quantità vendute da ogni rivenditore. Tuttavia, si desidera mostrare solo l'importo delle vendite di quei rivenditori che hanno venduto più unità di prodotti dal valore più elevato. Nella formula seguente, basata sulla cartella di lavoro di esempio di DAX, viene illustrato un esempio di come sia possibile creare questo calcolo utilizzando un filtro:

= SUMX (
     FILTER (' ResellerSales_USD ',' ResellerSales_USD ' [quantità] > 5 &&
     ' ResellerSales_USD ' [ProductStandardCost_USD] > 100),
     ' ResellerSales_USD ' [SalesAmt]
     )

  • La prima parte della formula specifica una delle funzioni di aggregazione PowerPivot, che accetta una tabella come argomento. SUMX calcola una somma in una tabella.

  • La seconda parte della formula FILTER(table, expression),indica a SUMX quali dati usare. SUMX richiede una tabella o un'espressione che si traduce in una tabella. In questo caso, invece di usare tutti i dati in una tabella, si usa la funzione FILTER per specificare quale delle righe della tabella vengono usate.

    L'espressione di filtro è composta da due parti: la prima parte assegna un nome alla tabella a cui si applica il filtro. La seconda parte definisce un'espressione da usare come condizione di filtro. In questo caso, è possibile filtrare i rivenditori che hanno venduto più di 5 unità e prodotti che costano più di $100. L'operatore, &&, è un operatore logico AND, che indica che entrambe le parti della condizione devono essere vere affinché la riga appartenga al sottoinsieme filtrato.

  • La terza parte della formula indica alla funzione SUMX i valori da sommare. In questo caso si utilizza solo l'importo delle vendite.

    Tieni presente che le funzioni, ad esempio filtro, che restituiscono una tabella, non restituiscono mai direttamente la tabella o le righe, ma sono sempre incorporate in un'altra funzione. Per altre informazioni sul filtro e altre funzioni usate per filtrare, inclusi altri esempi, Vedi funzioni di filtro (DAX).

    Nota: L'espressione di filtro è influenzata dal contesto nel quale viene utilizzata. Se ad esempio si utilizza un filtro in una misura e la misura viene utilizzata in una tabella pivot o in un grafico pivot, è possibile che il subset di dati restituito sia interessato da filtri o filtri dei dati aggiuntivi che l'utente ha applicato nella tabella pivot. Per ulteriori informazioni sul contesto, vedere Contesto nelle formule DAX.

Filtri per la rimozione di duplicati

Oltre a filtrare per valori specifici, è possibile restituire un set di valori univoco da un'altra tabella o colonna. Può essere utile quando si vuole contare il numero di valori univoci in una colonna oppure un elenco di valori univoci per altre operazioni. DAX offre due funzioni per la restituzione di valori distinti: funzione Distinct Function e Values.

  • La funzione DISTINCT esamina una singola colonna specificata come argomento della funzione e restituisce una nuova colonna contenente solo i valori distinti.

  • La funzione VALUEs restituisce anche un elenco di valori univoci, ma restituisce anche il membro sconosciuto. Questa operazione è utile quando si usano valori di due tabelle Uniti da una relazione e un valore mancante in una tabella e presente nell'altro. Per altre informazioni sul membro sconosciuto, vedere contesto nelle formule DAX.

Entrambe queste funzioni restituiscono un'intera colonna di valori; pertanto, vengono utilizzate le funzioni per ottenere un elenco di valori che viene quindi passato a un'altra funzione. Ad esempio, è possibile utilizzare la formula seguente per ottenere un elenco dei prodotti distinti venduti da un determinato rivenditore, tramite il codice Product Key univoco, quindi contare i prodotti in tale elenco tramite la funzione COUNTROWS:

= COUNTROWS (DISTINCT (' ResellerSales_USD ' [ProductKey]))

Inizio pagina

Influenza del contesto sui filtri

Quando si aggiunge una formula DAX a una tabella pivot o un grafico pivot, i risultati della formula possono essere interessati dal contesto. Se si lavora in una tabella di PowerPivot, il contesto è la riga corrente e i relativi valori. Se si utilizza una tabella pivot o un grafico pivot, il contesto indica il set o il subset di dati definiti da operazioni come l'affettamento o il filtro. La struttura della tabella pivot o del grafico pivot impone anche il proprio contesto. Se ad esempio si crea una tabella pivot che raggruppa le vendite per area geografica e anno, nella tabella pivot verranno visualizzati solo i dati applicabili a tali aree geografiche e anni. Di conseguenza, le eventuali misure aggiunte alla tabella pivot vengono calcolate nel contesto delle intestazioni di colonna e di riga, oltre a eventuali filtri della formula di misura.

Per ulteriori informazioni, vedere Contesto nelle formule DAX.

Inizio pagina

Rimozione di filtri

Quando si utilizzano formule complesse, potrebbe essere necessario sapere esattamente quali sono i filtri correnti o modificare il contesto di filtro come parte della formula. DAX fornisce numerose funzioni che consentono di rimuovere i filtri e di controllare quali colonne vengono mantenute come parte del contesto di filtro corrente. In questa sezione vengono fornite informazioni generali sull'influenza di queste funzioni sui risultati di una formula.

Override di tutti i filtri tramite la funzione ALL

Puoi usare la funzione ALL per eseguire l'override di tutti i filtri applicati in precedenza e restituire tutte le righe della tabella alla funzione che sta eseguendo l'aggregazione o un'altra operazione. Se si usano una o più colonne, invece di una tabella, come argomenti per ALL, la funzione ALL restituisce tutte le righe, ignorando eventuali filtri di contesto.

Nota: Se si ha familiarità con la terminologia relativa ai database relazionali, è possibile pensare a ALL come a una funzione che genera il left outer join naturale di tutte le tabelle.

Si supponga, ad esempio, di disporre di una tabella Sales e di una tabella Products e che si desideri creare una formula per calcolare la somma delle vendite del prodotto corrente divisa per le vendite di tutti i prodotti. È necessario prendere in considerazione il fatto che, se la formula viene utilizzata in una misura, l'utente della tabella pivot potrebbe avere utilizzato un filtro dei dati per applicare dei filtri a un determinato prodotto, con il nome del prodotto nelle righe. Per ottenere il valore reale del denominatore indipendentemente da filtri o filtri dei dati, è pertanto necessario aggiungere la funzione ALL per eseguire l'override di qualsiasi filtro. La formula seguente è un esempio di come utilizzare ALL per eseguire l'override degli effetti di filtri precedenti:

= SUM (Sales [Amount])/SUMX (Sales [Amount], FILTER (Sales, ALL (Products)))

  • La prima parte della formula, SUM (Sales[Amount]), consente di calcolare il numeratore.

  • Per la somma viene preso in considerazione il contesto corrente, pertanto se si aggiunge la formula in una colonna calcolata, viene applicato il contesto della riga e se si aggiunge la formula in una tabella pivot come misura, vengono applicati eventuali filtri applicati nella tabella pivot (contesto di filtro).

  • La seconda parte della formula calcola il denominatore. La funzione ALL sostituisce tutti i filtri che potrebbero essere applicati alla tabella Products .

Per altre informazioni, inclusi esempi dettagliati, vedere funzione all.

Override di filtri specifici tramite la funzione ALLEXCEPT

La funzione ALLEXCEPT esegue anche l'override dei filtri esistenti, ma è possibile specificare che alcuni filtri esistenti devono essere mantenuti. Le colonne denominate come argomenti della funzione ALLEXCEPT specificano quali colonne continueranno a essere filtrate. Se si vogliono ignorare i filtri della maggior parte delle colonne, ma non tutti, ALLEXCEPT è più comodo di tutti. La funzione ALLEXCEPT è particolarmente utile quando si creano tabelle pivot che potrebbero essere filtrate in più colonne diverse e si vogliono controllare i valori usati nella formula. Per altre informazioni, incluso un esempio dettagliato dell'uso di ALLEXCEPT in una tabella pivot, Vedi funzione ALLEXCEPT.

Inizio pagina

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×