Funzione ISFILTERED (DAX)
Viene restituito TRUE quando il parametro columnName viene filtrato direttamente. Se non è disponibile alcun filtro della colonna o se si attiva un filtro perché una colonna diversa nella stessa tabella o in una tabella correlata viene filtrata, tramite la funzione viene restituito FALSE.
Sintassi
ISFILTERED(<columnName>)
Parametri
- columnName
Nome di una colonna esistente tramite la sintassi DAX standard. Non può essere un'espressione.
Valore restituito
TRUE quando il parametro columnName viene filtrato direttamente.
Osservazioni
Il parametro columnName viene definito filtrato direttamente quando il filtro o i filtri vengono applicati alla colonna. Una colonna viene definita a filtro incrociato quando un filtro applicato a un'altra colonna nella stessa tabella o in una tabella correlata ha effetto sulla colonna columnName filtrando anche quest'ultima.
Tramite la funzione correlata Funzione ISCROSSFILTERED (DAX) viene restituito TRUE quando il parametro columnName, o un'altra colonna nella stessa tabella o in una correlata, viene filtrato.
Esempio
Nell'esempio seguente viene creata una misura e successivamente presentati scenari diversi per spiegare il comportamento di ISFILTERED(). È possibile utilizzare gli scenari scaricando il foglio di calcolo relativo ai dati di esempio delle espressioni DAX (Data Analysis Expression).
Creare innanzitutto la misura seguente [Is ProductName Filtered directly] nella tabella [Product].
=ISFILTERED(Product[ProductName])
Informazioni su ISFILTERED():
Dopo aver creato la misura, nella tabella pivot viene mostrato che [Is ProductName Filtered directly] è FALSE, perché l'espressione non è stata filtrata. A questo punto, il risultato dovrebbe essere simile al seguente:
Is ProductName Filtered directly
FALSE
Se nella tabella pivot non viene mostrato alcun risultato, trascinare [Is ProductName Filtered directly] nella casella Values.
Trascinare ProductCategory[ProductCategoryName] nella casella Row Labels; tutti i valori dovrebbero essere ancora FALSE e la tabella dovrebbe essere simile alla seguente:
Row Labels
Is ProductName Filtered directly
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
Grand Total
FALSE
Il motivo per cui nella tabella sono contenuti valori FALSE è che tramite ProductCategory[ProductCategoryName] vengono applicati filtri in modo indiretto o a incrocio a Product[ProductName], ma non si tratta di un filtro diretto della colonna.
Trascinare Product[Status] nella casella Column Labels; tutti i valori dovrebbero essere ancora FALSE e la tabella dovrebbe essere simile alla seguente:
Is ProductName Filtered directly
Column Labels
Row Labels
Current
Grand Total
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Grand Total
FALSE
FALSE
FALSE
Nella tabella sono ancora presenti molti valori FALSE perché Product[Name] non viene filtrato direttamente mediante Product[Status].
L'ultimo passaggio in questo processo consiste nel trascinare Product[Name] nella casella Report Filter. A questo punto nessun elemento dovrebbe essere stato modificato; tuttavia, una volta selezionato un nome di prodotto, i valori della tabella dovrebbero essere impostati su TRUE. A seconda del prodotto selezionato, la tabella dovrebbe essere simile alla seguente:
ProductName
Mountain-400-W Silver, 38
Is ProductName Filtered directly
Column Labels
Row Labels
Current
Grand Total
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
Grand Total
TRUE
TRUE
In conclusione, ISFILTERED() consente all'utente di determinare se columnName è filtrato direttamente nel contesto in cui viene valutata l'espressione.
In questo esempio viene utilizzato il modello del foglio di calcolo di esempio di DAX_AdventureWorks