Condividi tramite


Funzione IF (DAX)

Controlla se viene soddisfatta una condizione fornita come primo argomento. Restituisce un valore se la condizione è TRUE e un altro valore se la condizione è FALSE.

Sintassi

IF(logical_test>,<value_if_true>, value_if_false)

Parametri

Termine

Definizione

logical_test

Qualsiasi valore o espressione che restituisca TRUE o FALSE.

value_if_true

Valore restituito se il test logico è TRUE. Se viene omesso, viene restituito TRUE.

value_if_false

Valore restituito se il test logico è FALSE. Se viene omesso, viene restituito FALSE.

Valore restituito

Qualsiasi tipo di valore che può essere restituito da un'espressione.

Osservazioni

Se il valore di value_if_true o value_if_false viene omesso, IF tratta l'argomento come valore di stringa vuoto ("").

Se il valore a cui viene fatto riferimento nell'espressione è una colonna, IF restituisce il valore corrispondente alla riga corrente.

La funzione IF tenta di restituire un singolo tipo di dati in una colonna. Se, pertanto, i valori restituiti da value_if_true e value_if_false sono di tipi di dati diversi, tramite la funzione IF verrà eseguita la conversione implicita dei tipi di dati per adattare entrambi i valori nella colonna. La formula IF(<condition>,TRUE(),0) restituisce, ad esempio, una colonna di valori uno e zero e i risultati possono essere sommati, ma formula IF(<condition>,TRUE(),FALSE()) restituisce solo valori logici. Per ulteriori informazioni sulla conversione implicita dei tipi di dati, vedere Tipi di dati supportati nelle cartelle di lavoro di PowerPivot.

Esempio

Nell'esempio seguente vengono utilizzate funzioni IF nidificate che restituiscono il numero nella colonna Calls della tabella FactCallCenter in Adventure Works DW2008R2. Tramite la funzione viene assegnata un'etichetta come indicato di seguito: low se il numero di chiamate è minore di 200, medium se il numero di chiamate è minore di 300 ma maggiore di 200 e high per tutti gli altri valori.

=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))

L'esempio seguente consente di ottenere un elenco di città che contengono clienti potenziali nell'area della California utilizzando le colonne della tabella ProspectiveBuyer in Adventure Works DW2008R2. Poiché l'elenco serve per pianificare per una campagna destinata a persone sposate o con figli in casa, la condizione nella funzione IF consente di controllare il valore delle colonne [MaritalStatus] e [NumberChildrenAtHome] e di restituire la città se viene soddisfatta la condizione e il cliente si trova in California. In caso contrario, viene restituita una stringa vuota. 

=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])

Si noti che le parentesi vengono utilizzate per controllare l'ordine con cui vengono utilizzati gli operatori AND (&&) e OR (||). Si noti inoltre che non è stato specificato alcun valore per value_if_false. La funzione restituisce pertanto il valore predefinito, ovvero una stringa vuota.