Ta funkcja zwraca wartość reprezentującą zakres miesięcy w okresie (sformatowany zgodnie ze stosowaną w skryptach zmienną MonthNames), a także rok. Bazowa wartość liczbowa odpowiada znacznikowi czasu pierwszej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza, który zawiera datę bazową.
Funkcja monthsname() dzieli rok na segmenty na podstawie podanego argumentu n_months. Następnie ocenia segment, do którego należy każda podana date, i zwraca nazwę miesiąca początkowego i końcowego tego segmentu, a także rok. Funkcja daje również możliwość zwracania tych granic z poprzednich lub następnych segmentów, a także redefiniowania, który jest pierwszym miesiącem roku.
Następujące segmenty roku są dostępne w funkcji jako argumenty n_month:
Możliwe argumenty n_month
Okresy
Liczba miesięcy
miesiąc
1
dwa miesiące
2
kwartał
3
cztery miesiące
4
pół roku
6
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).
date
Data lub znacznik czasu do oszacowania.
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.
Kiedy używać
Funkcja monthsname() jest przydatna, gdy chcesz udostępnić użytkownikowi funkcjonalność porównywania agregacji według wybranego samodzielnie okresu. Na przykład możesz podać zmienną wejściową, aby użytkownik mógł zobaczyć całkowitą sprzedaż produktów według miesiąca, kwartału lub półrocza.
Te wymiary można utworzyć w skrypcie ładowania, dodając funkcję jako pole w tabeli kalendarza głównego, lub tworząc wymiar bezpośrednio na wykresie jako wymiar obliczany.
Przykłady funkcji
Przykład
Wynik
monthsname(4, '10/19/2013')
Zwraca „Sep-Dec 2013”. W tym i pozostałych przykładach instrukcja SET Monthnames jest ustawiona na wartość Jan;Feb;Mar itd.
monthsname(4, '10/19/2013', -1)
Zwraca wartość „May-Aug 2013”.
monthsname(4, '10/19/2013', 0, 2)
Zwraca „Oct-Jan 2014”, ponieważ rok jest określony jako rozpoczynający się w miesiącu 2. W związku z tym okres czterech miesięcy kończy się w pierwszym miesiącu roku następnego.
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ład 1 — Przykład podstawowy
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”.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Utworzenie pola bi_monthly_range, które grupuje transakcje w segmenty dwumiesięczne i zwraca nazwy granic tego segmentu dla każdej transakcji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
bi_monthly_range
Tabela wynikowa
date
bi_monthly_range
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Pole bi_monthly_range jest tworzone w poprzedniej instrukcji load przy użyciu funkcji monthsname(). Pierwszy podany argument to 2, dzielący rok na segmenty dwumiesięczne. Pierwszy podany argument określa, które pole jest oceniane.
Transakcja 8195 ma miejsce 22 maja. Funkcja monthsname() początkowo dzieli rok na segmenty dwumiesięczne. Transakcja 8195 należy do segmentu od 1 maja do 30 czerwca. Dlatego funkcja zwraca te miesiące w formacie zmiennej systemowej MonthNames, a także rok, May-Jun 2022.
Przykład 2 – period_no
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Ten sam wbudowany zestaw danych i scenariusz co w pierwszym przykładzie.
Utworzenie pola prev_bi_monthly_range, które grupuje transakcje w segmenty dwumiesięczne i zwraca nazwy granic poprzedniego segmentu dla każdej transakcji.
Dodaj tutaj swój inny tekst, w razie potrzeby, z listami itp.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
prev_bi_monthly_range
Tabela wynikowa
date
prev_bi_monthly_range
2/19/2022
Nov-Dec 2021
3/7/2022
Jan-Feb 2022
3/30/2022
Jan-Feb 2022
4/5/2022
Jan-Feb 2022
4/16/2022
Jan-Feb 2022
5/1/2022
Mar-Apr 2022
5/7/2022
Mar-Apr 2022
5/22/2022
Mar-Apr 2022
6/15/2022
Mar-Apr 2022
6/26/2022
Mar-Apr 2022
7/9/2022
May-Jun 2022
7/22/2022
May-Jun 2022
7/23/2022
May-Jun 2022
7/27/2022
May-Jun 2022
8/2/2022
May-Jun 2022
8/8/2022
May-Jun 2022
8/19/2022
May-Jun 2022
9/26/2022
Jul-Aug 2022
10/14/2022
Jul-Aug 2022
10/29/2022
Jul-Aug 2022
W tym przykładzie wartość -1 jest używana jako argument period_no w funkcji monthsname(). Po początkowym podzieleniu roku na segmenty dwumiesięczne funkcja zwraca granice poprzedniego segmentu, gdy ma miejsce transakcja.
Transakcja 8195 należy do segmentu od maja do czerwca. W związku z tym poprzedni segment dwumiesięczny miał miejsce między 1 marca a 30 kwietnia, więc funkcja zwraca Mar-Apr 2022.
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:
Ten sam wbudowany zestaw danych i scenariusz co w pierwszym przykładzie.
Utworzenie innego pola, bi_monthly_range, które grupuje transakcje w segmenty dwumiesięczne i zwraca granice segmentu dla każdej transakcji.
Jednak w tym przykładzie musimy również ustawić kwiecień jako pierwszy miesiąc roku obrotowego.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
bi_monthly_range
Tabela wynikowa
date
bi_monthly_range
2/19/2022
Feb-Mar 2021
3/7/2022
Feb-Mar 2021
3/30/2022
Feb-Mar 2021
4/5/2022
Apr-May 2022
4/16/2022
Apr-May 2022
5/1/2022
Apr-May 2022
5/7/2022
Apr-May 2022
5/22/2022
Apr-May 2022
6/15/2022
Jun-Jul 2022
6/26/2022
Jun-Jul 2022
7/9/2022
Jun-Jul 2022
7/22/2022
Jun-Jul 2022
7/23/2022
Jun-Jul 2022
7/27/2022
Jun-Jul 2022
8/2/2022
Aug-Sep 2022
8/8/2022
Aug-Sep 2022
8/19/2022
Aug-Sep 2022
9/26/2022
Aug-Sep 2022
10/14/2022
Oct-Nov 2022
10/29/2022
Oct-Nov 2022
Kiedy wartość 4 jest używana jako argument first_month_of_year w funkcji monthsname(), funkcja rozpoczyna rok 1 kwietnia, a następnie dzieli rok na segmenty dwumiesięczne: Apr-May,Jun-Jul,Aug-Sep,Oct-Nov,Dec-Jan,Feb-Mar.
Tekst akapitu dotyczący wyników.
Transakcja 8195 miała miejsce 22 maja i należy do segmentu od 1 kwietnia do 31 maja. W związku z tym funkcja zwraca Apr-May 2022.
Przykład 4 — przykład z obiektem wykresu
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera ten sam wbudowany zestaw danych i scenariusz co w pierwszym przykładzie. Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenie, które grupuje transakcje w segmenty dwumiesięczne i zwraca granice segmentu dla każdej transakcji zostaje utworzone jako miara w obiekcie wykresu aplikacji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:date.
Utwórz następującą miarę:
=monthsname(2,date)
Tabela wynikowa
date
=monthsname(2,date)
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Pole bi_monthly_range jest tworzone jako miara w obiekcie wykresu przy użyciu funkcji monthsname(). Pierwszy podany argument to 2, dzielący rok na segmenty dwumiesięczne. Pierwszy podany argument określa, które pole jest oceniane.
Transakcja 8195 ma miejsce 22 maja. Funkcja monthsname() początkowo dzieli rok na segmenty dwumiesięczne. Transakcja 8195 należy do segmentu od 1 maja do 30 czerwca. Dlatego funkcja zwraca te miesiące w formacie zmiennej systemowej MonthNames, a także rok, May-Jun 2022.
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 zawierający transakcje za rok 2022, który jest ładowany do tabeli o nazwie Transactions.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał całkowitą sprzedaż w wybranym przez siebie okresie. Można to osiągnąć nawet wtedy, gdy ten wymiar nie jest dostępny w modelu danych, używając funkcji monthsname() jako wymiaru obliczanego, który jest dynamicznie modyfikowany przy użyciu elementu sterującego do wprowadzania zmiennych.
Na początku skryptu ładowania została utworzona zmienna (vPeriod), która zostanie powiązana z kontrolką wejściową zmiennej. Następnie skonfiguruj zmienną jako obiekt niestandardowy w arkuszu.
Wykonaj następujące czynności:
W panelu zasobów kliknij opcję Obiekty niestandardowe.
Wybierz Qlik Dashboard bundle i utwórz obiekt Wprowadzanie zmiennych.
Wprowadź tytuł obiektu wykresu.
W polu Zmienna wybierz vPeriod jako nazwę i ustaw obiekt tak, aby był wyświetlany jako lista rozwijana.
W obszarze Wartości skonfiguruj obiekt tak, aby używał wartości dynamicznych. Wprowadź:
Utwórz nową tabelę i dodaj następujący wymiar wyliczany:
=monthsname($(vPeriod),date)
Dodaj tę miarę, aby obliczyć całkowitą sprzedaż:
=sum(amount)
Ustaw Formatowanie liczb miary na Waluta. Kliknij przycisk Koniec edycji. Możesz teraz modyfikować dane pokazane w tabeli, dostosowując segment czasu w obiekcie zmiennych.
Tak będzie wyglądać tabela wyników po wybraniu opcji tertial :
Tabela wynikowa
monthsname($(vPeriod),date)
=sum(amount)
Jan-Mar 2022
253.89
May-Aug 2022
713.58
Sep-Dec 2022
248.12
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ć!