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])
Vedere anche