Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

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

Contenuto dell'articolo

Creazione di un filtro in una tabella usata in una formula

È possibile applicare filtri nelle formule che accettano una tabella come input. Invece di immettere un nome di tabella, usare la funzione FILTRO per definire un sottoinsieme di righe della tabella specificata. Questo sottoinsieme viene quindi passato a un'altra funzione, per operazioni come aggregazioni personalizzate.

Si supponga, ad esempio, di avere una tabella di dati che contiene informazioni sugli ordini relativi ai rivenditori e di voler calcolare la quantità di vendita di ogni rivenditore. Tuttavia, si vuole mostrare l'importo delle vendite solo per i rivenditori che hanno venduto più unità dei prodotti a valore più alto. La formula seguente, basata sulla cartella di lavoro di esempio DAX, mostra un esempio di come è possibile creare questo calcolo usando un filtro:

=SOMMA.SOMMA.SE(
     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 Power Pivot di aggregazione, che accetta una tabella come argomento. SOMMA.VALORI calcola una somma su una tabella.

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

    L'espressione di filtro è di due parti: la prima parte nomina la tabella a cui si applica il filtro. La seconda parte definisce un'espressione da usare come condizione di filtro. In questo caso, si filtrano 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 perché la riga appartenga al sottoinsieme filtrato.

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

    Si noti che funzioni come 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 su FILTRO e altre funzioni usate per il filtro, inclusi altri esempi, vedere Funzioni di filtro (DAX).

    Nota: L'espressione di filtro è influenzata dal contesto in cui viene usata. Ad esempio, se si usa un filtro in una misura e la misura viene usata in una tabella pivot o in un grafico pivot, il sottoinsieme di dati restituiti potrebbe essere interessato da filtri o filtri dei dati aggiuntivi applicati dall'utente nella tabella pivot. Per altre informazioni sul contesto, vedere Contesto nelle formule DAX.

Filtri che rimuovono i duplicati

Oltre a filtrare valori specifici, è possibile restituire un set univoco di valori da un'altra tabella o colonna. Questa operazione può risultare utile quando si vuole contare il numero di valori univoci in una colonna o usare un elenco di valori univoci per altre operazioni. DAX fornisce due funzioni per la restituzione di valori distinti: Distinct Function e VALUES Function.

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

  • La funzione VALORI restituisce anche un elenco di valori univoci, ma restituisce anche il membro Sconosciuto. Questa opzione è utile quando si usano valori di due tabelle unite da una relazione e un valore non è presente in una tabella e presente nell'altra. Per altre informazioni sul membro Sconosciuto, vedere Contesto nelle formule DAX.

Entrambe queste funzioni restituiscono un'intera colonna di valori. Di conseguenza, le funzioni vengono usate per ottenere un elenco di valori che vengono quindi passati a un'altra funzione. Ad esempio, è possibile usare la formula seguente per ottenere un elenco dei prodotti distinti venduti da un particolare rivenditore, usando il codice Product Key univoco, quindi contare i prodotti nell'elenco usando la funzione CONTA.RIGHE:

=CONTA.RIGHE(DISTINCT('ResellerSales_USD'[ProductKey]))

Inizio pagina

Influenza del contesto sui filtri

Quando si aggiunge una formula DAX a una tabella pivot o a grafico pivot, i risultati della formula possono essere influenzati dal contesto. Se si lavora in una tabella Power Pivot, il contesto è la riga corrente e i relativi valori. Se si lavora in una tabella pivot o in un grafico pivot, il contesto indica il set o il sottoinsieme di dati definito da operazioni come il seggio o il filtro. La progettazione della tabella pivot o grafico pivot impone anche il proprio contesto. Ad esempio, se si crea una tabella pivot che raggruppa le vendite in base all'area geografica e all'anno, nella tabella pivot vengono visualizzati solo i dati applicabili a tali aree e anni. Di conseguenza, tutte le misure che si aggiungono alla tabella pivot vengono calcolate nel contesto delle intestazioni di colonna e di riga più eventuali filtri nella formula di misura.

Per altre informazioni, vedere Contesto nelle formule DAX.

Inizio pagina

Rimozione di filtri

Quando si lavora con formule complesse, è consigliabile sapere esattamente quali sono i filtri correnti oppure modificare la parte del filtro della formula. DAX fornisce diverse funzioni che consentono di rimuovere i filtri e di controllare quali colonne vengono mantenute come parte del contesto di filtro corrente. Questa sezione fornisce una panoramica dell'effetto di queste funzioni sui risultati in una formula.

Override di tutti i filtri con la funzione ALL

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

Nota: Se si ha familiarità con la terminologia dei database relazionali, è possibile ALL generare il left outer join naturale di tutte le tabelle.

Si supponga, ad esempio, di avere le tabelle Vendite e Prodotti e di voler creare una formula che calcoli la somma delle vendite per il prodotto corrente divisa per le vendite di tutti i prodotti. È necessario tenere conto del fatto che, se la formula viene usata in una misura, l'utente della tabella pivot potrebbe usare un filtro dei dati per filtrare per un determinato prodotto, con il nome del prodotto nelle righe. Di conseguenza, per ottenere il valore true del denominatore indipendentemente da eventuali filtri o filtri dei dati, è necessario aggiungere la funzione ALL per eseguire l'override di qualsiasi filtro. La formula seguente è un esempio di come usare TUTTI per ignorare gli effetti dei filtri precedenti:

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

  • La prima parte della formula, SOMMA (Vendite[Importo]), calcola il numeratore.

  • La somma prende in considerazione il contesto corrente, ovvero se si aggiunge la formula in una colonna calcolata, viene applicato il contesto di riga e, se si aggiunge la formula in una tabella pivot come misura, vengono applicati tutti i filtri applicati nella tabella pivot (il contesto di filtro).

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

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

Override di filtri specifici con la funzione ALLEXCEPT

La funzione ALLEXCEPT sostituisce anche i filtri esistenti, ma è possibile specificare che alcuni dei filtri esistenti devono essere mantenuti. Le colonne specificate 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 di tutte, ALLEXCEPT è più comodo di TUTTI. La funzione ALLEXCEPT è particolarmente utile quando si creano tabelle pivot che potrebbero essere filtrate in base a molte colonne diverse e si vogliono controllare i valori usati nella formula. Per altre informazioni, incluso un esempio dettagliato di come usare ALLEXCEPT in una tabella pivot, vedere Funzione ALLEXCEPT.

Inizio pagina

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×