IF

Si applica a:Calcolo visivo misuratabella calcolata colonnacalcolata

Controlla una condizione e restituisce un valore quando è TRUE. In caso contrario, restituisce un secondo valore.

Sintassi

IF(<logical_test>, <value_if_true>[, <value_if_false>])

Parametri

Termine Definizione
logical_test Qualsiasi valore o espressione che può dare come risultato TRUE o FALSE.
value_if_true Valore restituito se il test logico dà come risultato TRUE.
value_if_false (Facoltativo) Valore restituito se il test logico dà come risultato FALSE. Se omesso, viene restituito BLANK.

Valore restituito

value_if_true, value_if_false o BLANK.

Osservazioni:

  • La funzione IF può restituire un tipo di dati Variant se value_if_true e value_if_false sono tipi di dati diversi, ma la funzione tenta di restituire un unico tipo di dati se value_if_true e value_if_false sono entrambi tipi di dati numerici. Nel secondo caso la funzione IF convertirà in modo implicito i tipi di dati in modo da usare entrambi i valori.

    Ad esempio, la formula IF(<condition>, TRUE(), 0) restituisce TRUE o 0, ma la formula IF(<condition>, 1.0, 0) restituisce solo valori decimali anche se value_if_false è un tipo di dati numero intero. Per altre informazioni sulla conversione implicita dei tipi di dati, vedere Tipi di dati.

  • Per eseguire le espressioni di ramo indipendentemente dall'espressione della condizione, usare IF.EAGER.

Esempi

Le definizioni delle colonne calcolate della tabella Product seguenti usano la funzione IF in modi diversi per classificare ogni prodotto in base al prezzo di listino.

Nel primo esempio viene verificato se il valore della colonna List Price è inferiore a 500. Quando questa condizione è true, viene restituito il valore Low. Poiché non esiste alcun valore value_if_false, viene restituito BLANK.

Gli esempi in questo articolo possono essere usati con il modello campione di Adventure Works DW 2020 di Power BI Desktop. Per ottenere il modello, vedere modello campione DAX.

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low"
)

Nel secondo esempio viene usato lo stesso test, ma questa volta include un valore value_if_false. Quindi, la formula classifica ogni prodotto come Low o High.

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    "High"
)

Nel terzo esempio viene usato lo stesso test, ma questa volta con una funzione IF annidata per eseguire un test aggiuntivo. La formula classifica quindi ogni prodotto come Low, Medium o High.

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    IF(
        'Product'[List Price] < 1500,
        "Medium",
        "High"
    )
)

Suggerimento

Quando è necessario annidare più funzioni IF, la funzione SWITCH potrebbe essere un'opzione migliore. Questa funzione offre un modo più elegante per scrivere un'espressione che restituisce più di due valori possibili.

Funzione IF.EAGER
Funzione SWITCH (DAX)
Funzioni logiche