Tableau Prep - modelowanie danych
Poniższy artykuł przedstawia wybrane kalkulacje na datach (DATE) oraz prezentuje możliwości wykorzystania daty oraz pól kalkulowanych
Pierwszym krokiem, jeszcze przed rozpoczęciem budowania kalkulacji na datach, jest zapewnienie poprawnego formatu danych. Ważnym jest, by pole daty miało typ danych Date. Wtedy uzyskamy pełnię możliwości pracy z tym typem danych. Gdyby pole było oznaczone jako String, należy dokonać jego konwersji do Date. W zależności, gdzie się znajdujesz:
Przejdź do Data Source
a następnie wybierz ikonę znajdującą się obok nazwy pola. Z rozwijanej listy wybierz opcję Date
.
Poprawność daty możesz również zmienić w arkuszu. Kliknij prawym przyciskiem na wybraną miarę. Następnie wybierz Change Data Type
i zaznacz Date
.
Wynik kalkulacji opartych o typ danych Date może być prezentowane pod postacią:
Start_of_week dla wielu funkcji jest to parametr opcjonalny, który określa dzień będący początkiem tygodnia, od którego liczona jest data.
ISO jest ustandaryzowanym systemem daty, gdzie początkiem tygodnia zawsze jest poniedziałek. Więcej informacji o tym formacie daty znajdziesz na stronie Tableau ▶ tutaj ◀.
Date_part jest kluczowym zagadnieniem w funkcjach daty w Tableau. Jest ono stałym argumentem, który określa, jaki wycinek czasu chcemy obliczyć. Istnieją następujące wyrażenia:
Funkcja DATEADD
zwraca wybraną datę powiększoną o określony interwał czasu (liczbę okresów).
DATEADD(date_part, interval, date)
Przykład:
DATEADD('year',3,#01-01-2021#) = 01-01-2024
✔ Wynik 01-01-2024 - funkcja dodała 3 lata do daty 01-01-2021.
Funkcja DATEDIFF
zwraca różnicę pomiędzy dwiema datami wyrażoną w jednostkach date_part.
DATEDIFF(date_part, date1, date2, [start_of_week])
Przykład:
DATEDIFF('week', #2013-07-22#, #2013-09-24#) = 9
✔ Wynik 9 tygodni - funkcja zwróciła różnicę w tygodniach pomiędzy 2013-7-22 oraz 2013-09-24.
Funkcja DATENAME
zwraca część daty jako String*.*
DATENAME (date_part, date, [start_of_week])
Przykład:
DATENAME('year',#01-01-2021#,'Monday') = 2021
✔ Wynik 2021 rok - rok zwracany jest jako String.
Funkcja DATEPARSE
konwertuje String na Date. Funkcja jest użyteczna, gdy Tableau nie radzi sobie z automatyczną konwersją na typ danych Date. Aby poprawnie rozpracować tekst na datę, musisz zdefiniować wzorzec, tzw. pattern.
DATEPARSE(date_format, [date_string])
Przykład:
DATEPARSE('dd.MM.yyyy','01.01.2021') = 01-01-2021
✔ Wynik 01.01.2021 jako data - poprzez funkcję ciąg znaków zostaje przekształcony na datę.
Funkcja DATEPART
zwraca część daty jako Integer.
DATEPART(date_part, date, [start_of_week])
Przykład:
DATEPART('month', #01-01-2021#) = 1
✔ Wynik 1 jako pierwszy miesiąc w roku - z daty 01-01-2021 zostaje wyciągnięty miesiąc, który następnie zostaje zwrócony jako Integer.
Funkcja DATETRUNC
przycina aktualnie wybraną datę do pierwszego dnia okresu z wybranego przez nas date_part.
DATETRUNC(date_part, date, [start_of_week])
Przykład:
DATETRUNC('month',#12-12-2021#) = 01-12-2021
✔ Wynik 01-12-2021 - data 12-12-2021 zostaje przycięta do pierwszego dnia miesiąca, w wyniku tego powstaje nowa data: 01-12-2021.
Funkcja ISDATE
zwraca wartość True w przypadku poprawnego formatu daty zapisanej jako ciąg znaków.
ISDATE(string)
Przykład:
ISDATE("January 01, 2001") = true
✔ Wynik true - funkcja potwierdziła poprawny formaty daty "January 01, 2001" jako ciąg znaków.
Funkcja MAKEDATE
zwraca datę, która powstaje w wyniku połączenia roku, miesiąca i dnia.
MAKEDATE(year, month, day)
Przykład:
MAKEDATE(2020,2,12) = 12-02-2020
✔ Wynik 12-02-2020 - data, która powstała ze wskazanych wartości.
Funkcja MAKETIME
zwraca czas który powstaje w wyniku połączenia godziny, minuty i sekundy.
MAKETIME(hour, minute, second)
Przykład:
MAKETIME(6,12,12) = 06:12:12
✔ Wynik 06:12:12 - godzina, która powstała z podanych wartości.
Funkcja MAKEDATETIME łączy w sobie datę oraz czas.
Przykład:
MAKEDATETIME(#01-01-2021#, #14:38#) = 01-01-2021 14:38
✔ Wynik 01-01-2021 14:38 - nowa wartość w formacie DateTime, która ****powstała z podanych wartości daty 01-01-2021 i czasu 14:28.
Funkcja MAX
zwraca największą ze wskazanych wartości.
MAX(expression)
MAX(expr1, expr2)