Udostępnij za pośrednictwem


IF

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Sprawdza warunek, and zwraca jeden value, gdy jest TRUE, w przeciwnym razie zwraca secondvalue.

Składnia

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

Parametry

Termin Definicja
logical_test Dowolne wyrażenie valueor, które można ocenić w celu TRUEorFALSE.
value_if_true Zwrócona valueifif test logiczny jest .
value_if_false (Opcjonalnie) Zwrócona valueifif test logiczny jest . If pominięty, BLANK jest zwracany.

Zwracanie value

Albo value_if_true, value_if_false, orBLANK.

Uwagi

  • Funkcja IF może zwrócić typ danych wariantu, ifvalue_if_trueandvalue_if_false są różne typy danych, ale funkcja próbuje zwrócić pojedynczy typ danych if oba value_if_trueandvalue_if_false są typami danych liczbowych. W tym ostatnim przypadku funkcja IF będzie niejawnie convert typów danych, aby pomieścić oba values.

    Na przykład formuła IF(<condition>, TRUE(), 0) zwraca TRUEor 0, ale formuła IF(<condition>, 1.0, 0) zwraca tylko valueseven dziesiętne, chociaż value_if_false jest typu danych liczby całkowitej. Aby dowiedzieć się więcej na temat niejawnej konwersji typów danych, zobacz Typy danych.

  • Aby wykonać wyrażenia gałęzi niezależnie od wyrażenia warunku, użyj IF.EAGER zamiast tego.

Przykłady

Poniższe definicje kolumn obliczeniowych w tabeli Product używają funkcji IF na różne sposoby klasyfikowania poszczególnych product na podstawie jej listy price.

Przykładowy first sprawdza, czy kolumna Price listy value jest mniejsza niż 500. Gdy ten warunek jest true, zwracany jest valueNiski. Ponieważ nie ma value_if_falsevalue, zwracany jest BLANK.

Przykłady w tym artykule mogą być używane z modelem sample Adventure Works DW 2020 Power BI Desktop. Aby uzyskać model, zobacz DAXsample model.

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

W przykładzie second jest używany ten sam test, ale ten time zawiera value_if_falsevalue. Dlatego formuła klasyfikuje każdą product jako jedną z LoworHigh.

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

Trzeci przykład używa tego samego testu, ale ten time zagnieżdża funkcję IF w celu wykonania dodatkowego testu. Dlatego formuła klasyfikuje każdą product jako Low, Medium, orHigh.

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

Napiwek

Jeśli konieczne jest zagnieżdżanie wielu funkcji IF, funkcja SWITCH może być lepszym rozwiązaniem. Ta funkcja zapewnia bardziej elegancki sposób na napisanie wyrażenia zwracającego więcej niż dwa możliwe values.

funkcja IF.EAGERSWITCH (DAX)funkcje logiczne