Filtrare i dati nelle formule DAX

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

In questa sezione viene descritto 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 che vengono utilizzati nei calcoli. Eseguire questa operazione si specifica una tabella come input per la formula e quindi la definizione di un'espressione di filtro. Espressione di filtro specificati viene utilizzato per i dati della query e restituire solo un sottoinsieme dei dati di origine. Viene applicato il filtro in modo dinamico ogni volta che si aggiornano i risultati della formula, in base al 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 (
filtro ('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, ovvero una tabella come argomento. SUMX calcola una somma in una tabella.

  • La seconda parte della formula, FILTER(table, expression),indica SUMX i dati da utilizzare. SUMX richiede una tabella o un'espressione che restituisce una tabella. In questo caso, invece di usare tutti i dati in una tabella, la funzione FILTER per specificare che le righe della tabella vengono utilizzate.

    All'espressione filter sono due parti: la prima parte definisce la tabella a cui è applicato il filtro. Nella seconda parte definisce un'espressione da utilizzare come la condizione di filtro. In questo caso, si sta filtrando rivenditori che ha venduto più di 5 unità e prodotti che costano più di 100 euro. L'operatore & &, è un operatore e logico, che indica che entrambe le parti della condizione devono essere vere per la riga in cui inserire il subset filtrato.

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

    Funzioni quali FILTER, che restituiscono una tabella, non restituiscono mai la tabella o le righe direttamente, ma vengono sempre incorporate in un'altra funzione. Per altre informazioni su FILTER e su altre funzioni usate per l'applicazione di filtri, inclusi ulteriori esempi, vedere Funzioni 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 ad applicare dei filtri per valori specifici, è possibile restituire un set univoco di valori da un'altra tabella o colonna. Questa operazione può essere utile se si desidera contare il numero di valori univoci in una colonna o utilizzare un elenco di valori univoci per altre operazioni. In DAX sono disponibili due funzioni per la restituzione di valori distinti: Funzione DISTINCT e Funzione VALUES.

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

  • Funzione VALUES anche restituisce un elenco di valori univoci, ma anche restituisce il membro sconosciuto. Questo è utile quando si utilizzano valori di due tabelle unite da una relazione e un valore è presente in altro e mancanti in una tabella. Per ulteriori 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]))

Torna all'inizio

Influenza del contesto sui filtri

Quando si aggiunge una formula DAX in una tabella pivot o grafico pivot, è possono applicare i risultati della formula in base al contesto. Se si lavora in una tabella PowerPivot, il contesto è la riga corrente e i relativi valori. Se si lavora in una tabella pivot o grafico pivot, il contesto indica che il set di o un sottoinsieme di dati definito da operazioni, ad esempio sezionare o filtro. La struttura di tabella pivot o grafico pivot vengono applicate anche il proprio contesto. Ad esempio, se si crea una tabella pivot che raggruppa vendite per regione e anno, solo i dati che si applica a tali aree geografiche e anni viene visualizzato nella tabella pivot. Pertanto le misure aggiunti alla tabella pivot vengono calcolate nel contesto di intestazioni di colonna e riga più filtri nella formula misura.

Per ulteriori informazioni, vedere Contesto nelle formule DAX.

Torna all'inizio

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

È possibile utilizzare la funzione ALL sostituiscano eventuali filtri applicati in precedenza e restituire tutte le righe nella tabella della funzione utilizzato per eseguire l'operazione di aggregata o un altro. Se si usa una o più colonne, invece di una tabella, come argomenti a ALL, la funzione ALL restituisce tutte le righe, ignorando i 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:

= SOMMA (vendite [Quantità]) / SUMX (vendite [Quantità], filtro (vendite, 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).

  • Nella seconda parte della formula, calcola il denominatore. Funzione ALL sostituisce eventuali filtri applicati alla tabella Products .

Per ulteriori informazioni, inclusi esempi dettagliati, vedere Funzione ALL.

Override di filtri specifici tramite la funzione ALLEXCEPT

Anche la funzione ALLEXCEPT esegue l'override di filtri esistenti, tuttavia è possibile specificare che alcuni dei filtri esistenti devono essere mantenuti. Le colonne nominate come argomenti della funzione ALLEXCEPT specificano quali colonne continueranno a essere filtrate. Se si desidera eseguire l'override dei filtri dalla maggior parte delle colonne ma non da tutte, la funzione ALLEXCEPT risulta più appropriata di ALL. La funzione ALLEXCEPT è particolarmente utile quando si creano tabelle pivot in cui potrebbero essere applicati filtri in numerose colonne diverse e si desidera controllare i valori utilizzati nella formula. Per ulteriori informazioni, incluso un esempio dettagliato dell'utilizzo di ALLEXCEPT in una tabella pivot, vedere Funzione ALLEXCEPT.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

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

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

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

×