Condividi tramite


Funzione FILTER (DAX)

Restituisce una tabella che rappresenta un subset di un'altra tabella o espressione.

Sintassi

FILTER(<table>,<filter>)

Parametri

Termine

Definizione

table

Tabella da filtrare. L'argomento table può essere anche un'espressione che restituisce una tabella.

filter

Espressione booleana da valutare per ogni riga della tabella. Ad esempio, [Amount] > 0 o [Region] = "France"

Valore restituito

Tabella che contiene solo le righe filtrate.

Osservazioni

Tramite FILTER è possibile ridurre il numero di righe utilizzate nella tabella e utilizzare solo dati specifici nei calcoli. La funzione FILTER non viene utilizzata in modo indipendente, ma come funzione incorporata in altre funzioni che richiedono una tabella come argomento.

Esempio

Nell'esempio seguente viene creato un report delle vendite Internet fuori dagli Stati Uniti utilizzando una misura che esclude le vendite effettuate negli Stati Uniti e quindi selezionando in base alle categorie di prodotto e all'anno del calendario. Per creare tale misura, è necessario filtrare la tabella Internet Sales USD in relazione a Sales Territory. La tabella filtrata può quindi essere utilizzata in una funzione SUMX.

In questo esempio, l'espressione FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") restituisce una tabella che rappresenta il subset delle vendite Internet meno tutte le righe che rappresentano le vendite effettuate negli Stati Uniti. La funzione RELATED collega la chiave Territory della tabella Internet Sales a SalesTerritoryCountry della tabella SalesTerritory.

La tabella seguente è un modello di prova per la misura NON USA Internet Sales, come illustrato nella formula per la quale e fornita la sezione di codice seguente. La tabella consente un confronto tra tutte le vendite Internet e le vendite Internet non realizzate negli Stati Uniti per mostrare che l'espressione di filtro funziona tramite l'esclusione delle vendite degli Stati Uniti dal calcolo.

Per ricreare questa tabella, aggiungere il campo SalesTerritoryCountry all'area Etichette di riga della tabella pivot.

Tabella 1. Confronto delle vendite totali degli Stati Uniti rispetto alle altre regioni

Row Labels

Internet Sales

Non USA Internet Sales

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

Grand Total

$26,054,827.45

$16,665,347.67

La tabella del report finale mostra i risultati quando si crea una tabella pivot utilizzando la misura NON USA Internet Sales. Aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot, quindi aggiungere il campo ProductCategoryName all'area Etichette di colonna.

Tabella 2. Confronto delle vendite non effettuate negli Stati Uniti in base alla categoria di prodotto

Non USA Internet Sales

Column Labels

 

 

 

Row Labels

Accessories

Bikes

Clothing

Grand Total

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Grand Total

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67

SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
     ,'InternetSales_USD'[SalesAmount_USD])