Ta funkcja sprawdza, czy znacznik czasu mieści się w tym samym okresie miesięcznym, dwumiesięcznym, kwartalnym, czteromiesięcznym lub półrocznym, jako data bazowa. Można także wyszukać, czy znacznik czasu przypada w okresie poprzednim lub następnym.
W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Funkcja inmonths() dzieli rok na segmenty na podstawie przekazanego argumentu n_months. Następnie określa, czy każdy z ocenianych znaczników czasu wypada w tym samym segmencie, co argument base_date. Jeśli jednak zostanie przekazany argument period_no, funkcja określa, czy znaczniki czasu wypadają w poprzednim lub następnym okresie od base_date.
Następujące segmenty roku są dostępne w funkcji jako argumenty n_month.
Argumenty funkcji n_month
Okres
Liczba miesięcy
miesiąc
1
dwa miesiące
2
kwartał
3
cztery miesiące
4
pół roku
6
Kiedy używać
Funkcja inmonths() zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w if expression. Za pomocą funkcji inmonths() możesz wybrać okres, który chcesz sprawdzić. Na przykład możesz pozwolić użytkownikowi zidentyfikować produkty wytworzone w miesiącu, kwartale lub półroczu określonego okresu.
Typ zwracanych danych: Wartość logiczna
W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Argumenty
Argument
Opis
n_months
Liczba miesięcy określająca okres. Wartość całkowita lub wyrażenie, którego wynikiem jest jedna z następujących wartości całkowitych: 1 (równoważnik funkcji inmonth()), 2 (dwa miesiące), 3 (równoważnik funkcji inquarter()), 4 (cztery miesiące) lub 6 (pół roku).
timestamp
Data, która ma być porównana z wartością base_date.
base_date
Data używana do oceny okresu.
period_no
Okres może być przesunięty o wartość period_no — liczbę całkowitą lub wyrażenie, którego wynikiem jest liczba całkowita, gdzie wartość 0 wskazuje dzień zawierający wartość base_date. Wartości ujemne parametru period_no oznaczają okresy poprzednie, a wartości dodatnie — okresy następne.
first_month_of_year
Jeśli użytkownik zamierza korzystać z lat (obrotowych), które nie zaczynają się w styczniu, powinien wskazać wartość od 2 do 12 jako parametr first_month_of_year.
Aby ustawić pierwszy miesiąc roku w argumencie first_month_of_year, możesz użyć następujących wartości:
first_month_of_year values
Miesiąc
Wartość
Luty
2
Marzec
3
Kwiecień
4
May
5
Czerwiec
6
Lipiec
7
Sierpień
8
Wrzesień
9
Październik
10
Listopad
11
Grudzień
12
Ustawienia regionalne
Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji SET DateFormat w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.
Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.
Przykłady funkcji
Przykład
Wynik
inmonths(4, '01/25/2013', '04/25/2013', 0)
Zwraca wartość TRUE. Ponieważ wartość znacznika, 01/25/2013, zawiera się w okresie czteromiesięcznym od 01/01/2013 do 04/30/2013, w którym przypada base_date, 04/25/2013.
inmonths(4, '05/25/2013', '04/25/2013', 0)
Zwraca wartość FALSE. Ponieważ data 05/25/2013 przypada poza tym samym okresem co poprzedni przykład.
inmonths(4, '11/25/2012', '02/01/2013', -1 )
Zwraca wartość TRUE. Ponieważ wartość period_no, -1 powoduje przesunięcie okresu wyszukiwania w tył o jeden okres czterech miesięcy (wartość n-months), przez co okres wyszukiwania przypada od 09/01/2012 do 12/31/2012.
inmonths(4, '05/25/2006', '03/01/2006', 0, 3)
Zwraca wartość TRUE. Ponieważ wartość first_month_of_year jest ustawiona na 3, co sprawia, że okres wyszukiwania jest od 03/01/2006 do 07/30/2006 zamiast od 01/01/2006 do 04/30/2006.
Przykład 1 — bez dodatkowych argumentów
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie Transactions.
Poprzedzające ładowanie z dodatkową zmienną in_months, która określa, które transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja 2022 roku.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_months
Tabela wynikowa
date
in_months
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Pole in_months jest tworzone w poprzedniej instrukcji ładowania przy użyciu funkcji inmonths(). Pierwszy podany argument to 3. Dzieli on rok na kwartały. Drugi argument określa, które pole jest ewaluowane – pole daty w tym przypadku. Trzeci argument to wpisana bezpośrednio w kod data 15 maja, która jest datą base_date. Ostatnim argumentem jest period_no o wartości 0.
Maj wypada w drugim kwartale roku. W związku z tym każda transakcja, która ma miejsce między 1 kwietnia a 30 czerwca, spowoduje zwrócenie w wyniku wartości logicznej TRUE. Można to zweryfikować w tabeli wyników.
Przykład 2 – period_no
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie Transactions.
Poprzedzające ładowanie z dodatkową zmienną previous_quarter, które określa, czy transakcje miały miejsce w kwartale przed 15 maja 2022 roku.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_quarter
Tabela wynikowa
date
poprzedni kwartał
2/19/2022
-1
3/7/2022
-1
3/30/2022
-1
4/5/2022
0
4/16/2022
0
5/1/2022
0
5/7/2022
0
5/22/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Funkcja sprawdza, czy transakcje zostały zawarte w pierwszym kwartale roku za pomocą wywołania funkcji inmonths() z argumentem period_no o wartości -1. 15 maja to data base_date, która wypada w drugim kwartale roku (kwiecień–czerwiec).
W związku z tym każda transakcja zawarta między styczniem i marcem spowoduje zwrócenie w wyniku logicznej prawdy.
Przykład 3 — first_month_of_year
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie Transactions.
Poprzedzające ładowanie z dodatkową zmienną in_months, która określa, które transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja 2022 roku.
W tym przykładzie przyjęto, że marzec ma być pierwszym miesiącem roku podatkowego.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_months
Tabela wynikowa
date
in_months
2/19/2022
0
3/7/2022
-1
3/30/2022
-1
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Przekazując wartość 3 jako argument first_month_of_year funkcji inmonths(), sprawiamy że funkcja ta uznaje za początek roku 1 marca. Następnie funkcja inmonths() dzieli rok na kwartały: marzec–maj, czerwiec–sierpień, wrzesień–listopad, grudzień–luty. W związku z tym 15 maja wypada w pierwszym kwartale roku (marzec–maj).
Każda transakcja zawarta w tych miesiącach spowoduje zwrócenie logicznej prawy.
Przykład 4 — przykład z obiektem wykresu
Przegląd
Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Jednak w tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Obliczenia określające, czy transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja, jest tworzone jako miara w wykresie w aplikacji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:
date
Aby obliczyć, czy transakcje zostały zawarte w tym samym kwartale, w którym wypada 15 maja, utwórz następującą miarę:
=inmonths(3,date,'05/15/2022', 0)
Tabela wynikowa
date
=inmonths(3,date,'05/15/2022', 0)
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Pole in_months jest tworzone w wykresie za pomocą funkcji inmonths(). Pierwszy podany argument to 3. Dzieli on rok na kwartały. Drugi argument określa, które pole jest ewaluowane – pole daty w tym przypadku. Trzeci argument to wpisana bezpośrednio w kod data 15 maja, która jest datą base_date. Ostatnim argumentem jest period_no o wartości 0.
Maj wypada w drugim kwartale roku. W związku z tym każda transakcja, która ma miejsce między 1 kwietnia a 30 czerwca, spowoduje zwrócenie w wyniku wartości logicznej TRUE. Można to zweryfikować w tabeli wyników.
Przykład 5 — scenariusz
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Products.
Tabela zawiera następujące pola:
identyfikator produktu,
typ produktu,
data produkcji,
cena.
Użytkownik chciałby, aby wykres wyświetlał według typu produktu koszt produktów wyprodukowanych w pierwszym segmencie roku 2021. Użytkownik chciałby móc zdefiniować długość tego segmentu.
Funkcja inmonths() używa danych wprowadzonych przez użytkownika jako swojego argumentu określającego rozmiar początkowego segmentu roku. Funkcja przekazuje datę produkcji każdego z produktów jako drugi argument funkcji inmonths(). Przekazanie daty 1 stycznia jako trzeciego argumentu funkcji inmonths() powoduje, że produkty o dacie produkcji wypadającej w otwierającym segmencie roku będą powodować zwrot w wyniku logicznej prawdy, co będzie skutkowało sumowaniem ich kosztów.
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!