Funkcja IF
Sprawdza, czy jest spełniony warunek podany jako pierwszy argument. Zwraca jedną wartość, jeśli warunek jest spełniony, i drugą wartość, jeśli warunek nie jest spełniony.
Składnia
IF(logical_test>,<value_if_true>, value_if_false)
Parametry
Termin |
Definicja |
---|---|
logical_test |
Dowolna wartość lub wyrażenie, które może przyjąć wartość PRAWDA lub FAŁSZ. |
value_if_true |
Wartość zwracana, jeśli wynikiem testu logicznego jest PRAWDA. W przypadku pominięcia tego argumentu zwracana jest wartość PRAWDA. |
value_if_false |
Wartość zwracana, jeśli wynikiem testu logicznego jest FAŁSZ. W przypadku pominięcia tego argumentu zwracana jest wartość FAŁSZ. |
Wartość zwracana
Dowolny typ wartości, który może zostać zwrócony przez wyrażenie.
Uwagi
Jeśli argument value_if_true lub value_if_false zostanie pominięty, funkcja IF traktuje go jak wartość ciągu pustego ("").
Jeśli wartość, do której odwołuje się wyrażenie, jest kolumną, funkcja IF zwraca wartość odpowiadającą bieżącemu wierszowi.
Funkcja IF próbuje zwrócić pojedynczy typ danych w kolumnie. Dlatego jeśli wartości zwracane przez argumenty value_if_true i value_if_false mają różne typy danych, funkcja IF niejawnie konwertuje typy danych, aby zwrócić obie wartości w kolumnie. Na przykład formuła IF(<condition>,TRUE(),0) zwraca kolumnę jedności i zer i wyniki mogą zostać zsumowane, ale formuła IF(<condition>,TRUE(),FALSE()) zwraca tylko wartości logiczne. Aby uzyskać więcej informacji dotyczących niejawnej konwersji typów danych, zobacz temat Typy danych obsługiwane w skoroszytach programu PowerPivot.
Przykład
W poniższym przykładzie są używane zagnieżdżone funkcje IF, które zwracają liczbę z kolumny Calls tabeli FactCallCenter w bazie danych Adventure Works DW Multidimensional 2012 . Funkcja przypisuje etykietę w następujący sposób: low, jeśli liczba połączeń (wartość Calls) jest mniejsza niż 200, medium, jeśli liczba połączeń jest mniejsza niż 300 i nie mniejsza niż 200 oraz high dla wszystkich innych wartości.
=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))
W poniższym przykładzie pobierana jest lista miast potencjalnych klientów w obszarze California przy użyciu kolumn z tabeli ProspectiveBuyer w bazie danych Adventure Works DW Multidimensional 2012 . Ta lista ma być wykorzystana w kampanii skierowanej do osób pozostających w związku małżeńskim lub wychowujących dzieci, więc funkcja IF sprawdza wartość w kolumnach [MaritalStatus] (stan cywilny) i [NumberChildrenAtHome] (liczba dzieci na wychowaniu) i zwraca miasto, jeśli któryś z warunków dotyczących tych kolumn jest spełniony i klient pochodzi z obszaru California. W przeciwnym wypadku zwraca ciąg pusty.
=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])
Należy zwrócić uwagę, że w celu określenia kolejności, w jakiej mają być używane operatory ORAZ (&&) i LUB (||) zastosowano nawiasy. Należy również zwrócić uwagę, że nie określono wartości argumentu value_if_false. Dlatego funkcja zwraca wartość domyślną, którą jest ciąg pusty.