Web Analytics
Kalkulacje LOGICAL
🎱

Kalkulacje LOGICAL

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().

image

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

Kalkulacje DATE

Następna strona →

Kalkulacje NUMBER