Kalkulacje LOGICAL
Poniższy artykuł prezentuje wybrane kalkulacje warunkowe (LOGICAL) oraz ich zastosowanie w Tableau.
Czym są funkcje warunkowe?
Funkcje logiczne sprawdzają, czy określony warunek jest prawdziwy czy fałszywy. Budowane są w oparciu o wyrażenia (ang. Expressions). Przykładem jest kalkulacja:
[Profit] > 0
Pokazuje ona czy Profit był wyższy od zera (TRUE) lub niższy (FALSE).
Budowanie kalkulacji warunkowych
CASE
Funkcja CASE
przeprowadza logiczne testy, a następnie zwraca odpowiednie wartości. Jest alternatywą dla funkcji IF
/IIF
. W przypadku bardziej złożonych obliczeń funkcja ta jest bardziej zwięzła.
CASE <expression>
WHEN <value1> THEN <return1>
WHEN <value2> THEN <return2>
...
ELSE <default return>
END
Przykład:
CASE [Region] WHEN 'North' THEN 1 WHEN 'South' THEN 2 ELSE 3 END
✔ Wynik - wyrażenie testuje wartości w polu Region. Dla rekordów North oraz South zostały odpowiednio przypisane wartości 1 i 2. W przypadku niespełnienia warunku, prezentowana jest wartość 3.
IN
Funkcja IN
zwraca wartość TRUE, jeżeli <expr1> znajduje się w <expr2>. Mogą one przyjąć formę listy wartości, setów lub pól łączonych.
<expr1> IN <expr2>
Przykład 1:
"Central" IN [Region Set] = TRUE
✔ Wynik - funkcja sprawdza czy wartość Central znajduje się w polu Region Set i zwraca wartość TRUE.
Może też działać jako operator do grupowania danych.
Przykład 2:
CASE [Segment]
WHEN IN('Corporate','Home Office') THEN 'B2B'
ELSE 'B2C'
END
✔ Wynik - funkcja sprawdza czy wartości Corporate lub Home Office znajdują się w polu Segment i zwraca dla nich wartość B2B. Dla pozostałych wartości w Segment zwraca wartość B2C.
IF
Funkcja IF
testuje serię wyrażeń zwracając wartość <then> w przypadku pierwszego spełnionego wyrażenia.
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
Przykład:
IF SUM([Profit]) > 0 THEN "Zysk" ELSE "Strata" END
✔ Wynik - w przypadku, gdy Profit kształtuje się powyżej zera, przypisana zostaje wartość Zysk. W innym przypadku zostaje wpisana wartość Strata.
IFNULL
Funkcja IFNULL
zwraca <expr1> w przypadku braku wartości NULL, w innym przypadku zwraca <expr2>.
IFNULL(expr1, expr2),
Przykład:
IFNULL([Profit], 0)
✔ Wynik - gdy Profit wskazuje NULL, kalkulacja zamienia to na wartość 0.
IIF
Funkcja IIF
sprawdza, czy warunek został spełniony, następnie zwraca jedną wartość w momencie TRUE, kolejną w przypadku FALSE i trzecią opcjonalną lub NULL w przypadku braku wyniku.
IIF(test, then, else, [unknown])
Przykład:
IIF([Profit] > 0, ' Zysk ', 'Strata')
ISDATE
Funkcja ISDATE
zwraca wartość TRUE, jeżeli podany String jest poprawnie zapisaną datą.
ISDATE(string)
Przykład:
ISDATE(“11-11-2021") = TRUE
✔ Wynik TRUE - oznacza, że wartość 11-11-2021 jest poprawnie zapisaną datą.
ISNULL
Funkcja ISNULL
zwraca TRUE w przypadku braku wartości, tj. NULL.
ISNULL(expression)
MAX
Funkcja MAX
zwraca największy wynik z wyrażenia pośród wszystkich rekordów (w przypadku funkcji agregującej) lub większą wartość z dwóch kolumn.
MAX(expression)
MAX(expr1, expr2)
Przykład:
MAX([Sales]) //funkcja agregująca wartości
MAX([Purchase cost],[Discount]) //funkcja zwróci większą wartość z dwóch kolumn
MIN
Funkcja MIN
zwraca najmniejszy wynik z wyrażenia pośród wszystkich rekordów(w przypadku funkcji agregującej) lub mniejszą wartość z dwóch kolumn.
MIN(expression)
MIN(expr1, expr2)
Przykład:
MIN([Sales]) //funkcja agregująca wartości.
MAX([Purchase cost],[Discount]) //funkcja zwróci mniejszą wartość z dwóch kolumn
NOT
Operator NOT
wykonuje logiczną negację wyrażenia.
IF NOT <expr> THEN <then> END
Przykład:
IF NOT [Profit] > 0 THEN "Strata" END
✔ Wynik - w przypadku, gdy zysk nie jest większy od zera, przypisywana jest wartość Strata.
ZN
Funkcja ZN
zwraca wyrażenie w przypadku wartości nie będących NULL, w innym przypadku zwraca 0. Innymi słowy zastępuje NULL liczbą 0.
Przykład:
ZN([Sales])
✔ Wynik - obliczenia arytmetyczne na kolumnach z polami NULL zwrócą wynik NULL.
Dlatego też przed wykonaniem kalkulacji zastanów się, czy braki w danych nie powodują konieczności zastosowania funkcji ZN()
.
WHEN
Operator WHEN
nie jest funkcją tylko elementem wyrażenia CASE, znajduje on pierwszą wartość pasującą do wyrażenia i zwraca odpowiadającą jej wartość.
CASE <expr> WHEN <Value1> THEN <return1> ... [ELSE <else>] END
Przykład:
CASE [Kolory] WHEN 1 THEN ‘red’ WHEN 2 THEN ’green’ ELSE ‘pink’ END
AND
Operator AND
służy za łącznik dwóch wyrażeń.
<expr1> AND <expr2>
Przykład:
IF SUM([Profit])> 10000 AND SUM([Sales])> 15000 THEN 'red' END
✔ Wynik - powyższa funkcja przeszukuje wszystkie pozycje i znajduje te, które spełniły dwa warunki: miały zysk większy od 10000 ORAZ sprzedaż większą od 15000, a następnie je koloruje na czerwono.
OR
Operator OR
umożliwia wybranie alternatywnej opcji pośród dwóch wyrażeń. Pozwala wprowadzić warunki rozłączne.
IF <expr1> OR <expr2> THEN <then> END
Przykład:
IF [Profit] < 0 OR [Sales] < 0 THEN "Niekorzystne” END
✔ Wynik - w przypadku Profitu mniejszego od 0 LUB sprzedaży mniejszej od 0, przypisana zostaje wartość “Niekorzystne”
THEN
Operator THEN
nie jest funkcją tylko elementem wyrażenia IF
/CASE
. Określa zwracany element przy spełnieniu określonego warunku.
IF <expre> THEN <then> [ELSEIF, expr2> THEN <then2>...] [ELSE <else>] END
Przykład:
IF SUM([Profit]) > 0 THEN "Zysk" ELSE "Strata" END
ELSE
Operator ELSE
testuje serię wyrażeń zwracając wartość <then> dla pierwszego prawdziwego <expr>.
IF <expr> THEN <then> ELSE <else> END
Przykład:
IF [Sales] > 10000 THEN “Duża sprzedaż” ELSE “Normalna sprzedaż” END
✔ Wynik - jeżeli wartość sprzedaży przekracza 10000, to dla danego rekordu zostanie przypisane określenie Duża sprzedaż. W przypadku niespełnienia tego warunku, zostanie przypisane Normalna sprzedaż.
ELSEIF
Operator ELSEIF
testuje serię wyrażeń zwracając wartość <then> dla pierwszego <expr>
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
Przykład:
IF SUM([Sales]) < 100000 THEN 'Mała sprzedaż'
ELSEIF SUM([Sales]) < 200000 THEN "Średnia sprzedaż"
ELSE "Duża sprzedaż"
END
✔ Wynik - operator sprawdza tutaj trzy warunki. Jeżeli sprzedaż jest niższa od 100000 albo 200000 to rekordom przypisuje się odpowiednio wartości Mała sprzedaż i Średnia sprzedaż. W przypadku, gdy żaden z tych warunków nie zostanie spełniony, automatycznie przypisuje się wartość Duża sprzedaż.
END
Operator END
zamyka klauzule IF
/CASE
. Musi być umieszczona na końcu wyrażenia inaczej Tableau zwróci błąd funkcji.
IF <expr> THEN <then>
[ELSEIF <expr2> THEN <then2>...]
[ELSE <else>]
END
← Poprzednia strona
Następna strona →
Kontakt | Polityka prywatności
© Vizyble - Wszelkie prawa zastrzeżone