quarterend - kod ve grafik fonksiyonu
Bu fonksiyon, date içeren çeyreğin son milisaniyesinin zaman damgasına karşılık gelen bir değer döndürür. Varsayılan çıktı biçimi kodda ayarlanan DateFormat olur.
Söz Dizimi:
QuarterEnd(date[, period_no[, first_month_of_year]])
Dönüş verileri türü: dual
quarterend() fonksiyonu tarihin hangi çeyreğin içinde bulunduğunu belirler. Ardından o çeyreğin son ayının son milisaniyesi için tarih biçiminde bir zaman damgası döndürür. Yılın ilk ayı varsayılan olarak Ocak'tır. Ancak quarterend() fonksiyonunda first_month_of_year bağımsız değişkenini kullanarak ayarlanan ilk ayı değiştirebilirsiniz.
Ne zaman kullanılır?
Genel olarak quarterend() fonksiyonu, hesaplamada çeyreğin henüz oluşmamış kısmını kullanmak istemeniz durumunda, ifadenin içinde kullanılır. Örneğin çeyrek içinde henüz oluşmamış toplam faizi hesaplamak isteyebilirsiniz.
Bağımsız Değişken | Açıklama |
---|---|
date | Değerlendirilecek tarih veya zaman damgası. |
period_no | period_no bir tamsayı olup, burada 0 değeri date içeren çeyreği belirtir. period_no içindeki negatif değerler önceki çeyrekleri; pozitif değerler ise sonraki çeyrekleri gösterir. |
first_month_of_year | Ocak'ta başlamayan (mali) yıllarla çalışmak istiyorsanız, first_month_of_year içinde 2 ile 12 arasında bir değer belirtin. |
Yılın ilk ayını ayarlamak için first_month_of_year bağımsız değişkeninde aşağıdaki değerleri kullanabilirsiniz:
Ay | Değer |
---|---|
Şubat | 2 |
Mart | 3 |
Nisan | 4 |
May | 5 |
Haziran | 6 |
Temmuz | 7 |
Ağustos | 8 |
Eylül | 9 |
Ekim | 10 |
Kasım | 11 |
Aralık |
12 |
Bölgesel ayarlar
Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: AA/GG/YYYY. Tarih formatı, veri yükleme kodunuzda SET DateFormat deyiminde belirtilir. Varsayılan tarih formatı, bölgesel ayarlarınız ve diğer unsurlar nedeniyle sisteminizde farklı olabilir. Aşağıdaki örneklerdeki formatları ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz. Dilerseniz yükleme kodunuzdaki formatları aşağıdaki örneklere uyacak şekilde değiştirebilirsiniz.
Uygulamalardaki bölgesel ayarlarda Qlik Sense'in yüklü olduğu bilgisayarın veya sunucunun bölgesel sistem ayarları temel alınır. Eriştiğiniz Qlik Sense sunucusu İsveç olarak ayarlıysa, Veri yükleme düzenleyicisi tarihler, saat ve para birimi için İsveç bölgesel ayarlarını kullanır. Bu bölgesel format ayarları, Qlik Sense kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Sense, kullandığınız tarayıcıyla aynı dilde görüntülenir.
Örnek | Sonuç |
---|---|
quarterend('10/29/2005') | Returns 12/31/2005 23:59:59. |
quarterend('10/29/2005', -1) | Returns 09/30/2005 23:59:59. |
quarterend('10/29/2005', 0, 3) | Returns 11/30/2005 23:59:59. |
Örnek 1 – Temel örnek
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
2022'de gerçekleşen işlemleri içeren ve "Transactions" adlı tabloya yüklenen bir veri kümesi.
-
Şunları içeren önceki bir yükleme:
-
"end_of_quarter" alanı olarak ayarlanan ve işlemin gerçekleştiği çeyreğin sonunun zaman damgasını döndüren quarterend() fonksiyonu.
-
"end_of_quarter_timestamp" alanı olarak ayarlanan ve seçilen çeyreğin sonunun zaman damgasını döndüren timestamp() fonksiyonu.
-
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterend(date) as end_of_quarter,
timestamp(quarterend(date)) as end_of_quarter_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
id
-
date
-
end_of_quarter
-
end_of_quarter_timestamp
id | tarih | end_of_quarter | end_of_quarter_timestamp |
---|---|---|---|
8188 | 1/7/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8189 | 1/19/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8190 | 2/5/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8191 | 2/28/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8192 | 3/16/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8193 | 4/1/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8194 | 5/7/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8195 | 5/16/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8196 | 6/15/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8197 | 6/26/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8198 | 7/9/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8199 | 7/22/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8200 | 7/23/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8201 | 7/27/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8202 | 8/2/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8203 | 8/8/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8204 | 8/19/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8205 | 9/26/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8206 | 10/14/2022 | 12/31/2022 | 12/31/2022 23:59:59 |
8207 | 10/29/2022 | 12/31/2022 | 12/31/2022 23:59:59 |
"end_of_quarter" alanı, önceki LOAD deyiminde quarterend() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
quarterend() fonksiyonu önce tarih değerinin içinde bulunduğu çeyreği belirler ve o çeyreğin son milisaniyesinin zaman damgasını döndürür.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterend() fonksiyonu işlemin üçüncü çeyrekte gerçekleştiğini belirler ve bu çeyreğin 30 Eylül saat 23:59:59 olan son milisaniyesini döndürür.
Örnek 2 – period_no
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
2022'de gerçekleşen işlemleri içeren ve "Transactions" adlı tabloya yüklenen bir veri kümesi.
-
Şunları içeren önceki bir yükleme:
-
"previous_quarter_end" alanı olarak ayarlanan ve işlemin gerçekleşmesinden önceki çeyreğin sonu için bir zaman damgası döndüren quarterend() fonksiyonu.
-
"previous_end_of_quarter_timestamp" alanı olarak ayarlanan ve işlemin gerçekleşmesinden önceki çeyreğin sonunun tam zaman damgasını döndüren timestamp() fonksiyonu.
-
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterend(date, -1) as previous_quarter_end,
timestamp(quarterend(date, -1)) as previous_quarter_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
id
-
date
-
previous_quarter_end
-
previous_quarter_end_timestamp
id | tarih | previous_quarter_end | previous_quarter_end_timestamp |
---|---|---|---|
8188 | 1/7/2022 | 12/31/2021 | 12/31/2021 23:59:59 |
8189 | 1/19/2022 | 12/31/2021 | 12/31/2021 23:59:59 |
8190 | 2/5/2022 | 12/31/2021 | 12/31/2021 23:59:59 |
8191 | 2/28/2022 | 12/31/2021 | 12/31/2021 23:59:59 |
8192 | 3/16/2022 | 12/31/2021 | 12/31/2021 23:59:59 |
8193 | 4/1/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8194 | 5/7/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8195 | 5/16/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8196 | 6/15/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8197 | 6/26/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8198 | 7/9/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8199 | 7/22/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8200 | 7/23/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8201 | 7/27/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8202 | 8/2/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8203 | 8/8/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8204 | 8/19/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8205 | 9/26/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8206 | 10/14/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8207 | 10/29/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
quarterend() fonksiyonunda offset bağımsız değişkeni olarak period_no için -1 kullanıldığından, fonksiyon önce işlemlerin yapıldığı çeyreği belirler. Ardından bir önceki çeyreğe geçer ve bu çeyreğin son milisaniyesini belirler.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterend() fonksiyonu işlemin gerçekleşmesinden önceki çeyreğin 1 Nisan ile 30 Haziran arası olduğunu belirler. Ardından fonksiyon o çeyreğin 30 Haziran saat 23:59:59 olan son milisaniyesini döndürür.
Örnek 3 – first_month_of_year
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
2022'de gerçekleşen işlemleri içeren ve "Transactions" adlı tabloya yüklenen bir veri kümesi.
-
Şunları içeren önceki bir yükleme:
-
"end_of_quarter" alanı olarak ayarlanan ve işlemin gerçekleştiği çeyreğin sonunun zaman damgasını döndüren quarterend() fonksiyonu.
-
"end_of_quarter_timestamp" alanı olarak ayarlanan ve seçilen çeyreğin sonunun zaman damgasını döndüren timestamp() fonksiyonu.
-
Öte yandan bu örnekte, şirket politikasına göre mali yıl 1 Mart'ta başlamaktadır.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterend(date, 0, 3) as end_of_quarter,
timestamp(quarterend(date, 0, 3)) as end_of_quarter_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Sonuçlar
id | tarih | end_of_quarter | end_of_quarter_timestamp |
---|---|---|---|
8188 | 1/7/2022 | 02/28/2022 | 02/28/2022 23:59:59 |
8189 | 1/19/2022 | 02/28/2022 | 02/28/2022 23:59:59 |
8190 | 2/5/2022 | 02/28/2022 | 02/28/2022 23:59:59 |
8191 | 2/28/2022 | 02/28/2022 | 02/28/2022 23:59:59 |
8192 | 3/16/2022 | 05/31/2022 | 05/31/2022 23:59:59 |
8193 | 4/1/2022 | 05/31/2022 | 05/31/2022 23:59:59 |
8194 | 5/7/2022 | 05/31/2022 | 05/31/2022 23:59:59 |
8195 | 5/16/2022 | 05/31/2022 | 05/31/2022 23:59:59 |
8196 | 6/15/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8197 | 6/26/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8198 | 7/9/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8199 | 7/22/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8200 | 7/23/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8201 | 7/27/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8202 | 8/2/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8203 | 8/8/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8204 | 8/19/2022 | 08/31/2022 | 08/31/2022 23:59:59 |
8205 | 9/26/2022 | 11/30/2022 | 11/30/2022 23:59:59 |
8206 | 10/14/2022 | 11/30/2022 | 11/30/2022 23:59:59 |
8207 | 10/29/2022 | 11/30/2022 | 11/30/2022 23:59:59 |
quarterend() fonksiyonunda first_month_of_year bağımsız değişkeni olarak 3 kullanıldığından, yılın başlangıcı 1 Ocak'tan 1 Mart'a kaydırılır.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. Yılın başlangıcı 1 Mart olduğundan, yıl içinde çeyrekler Mar-May, Haz-Ağu, Eyl-Kas ve Ara-Şub aralıklarıdır.
quarterend() fonksiyonu işlemin Haziran'ın başı ile Ağustos'un sonu arasındaki çeyrekte gerçekleştiğini belirler ve söz konusu çeyreğin 31 Ağustos saat 23:59:59 olan son milisaniyesini döndürür.
Örnek 4 – Grafik nesnesi örneği
Genel bakış
Birinci örnekteki veri kümesi ve senaryo kullanılır.
Ancak bu örnekte veri kümesi değişmez ve uygulamaya yüklenir. İşlemlerin gerçekleştiği çeyreğin sonu için bir zaman damgası döndüren hesaplama, uygulamadaki grafikte bir hesaplama olarak oluşturulur.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
id
-
date
İşlemin gerçekleştiği çeyreğin bitiş tarihini hesaplamak için aşağıdaki hesaplamaları oluşturun:
-
=quarterend(date)
-
=timestamp(quarterend(date))
id | date | =quarterend(date) | =timestamp(quarterend(date)) |
---|---|---|---|
8188 | 1/7/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8189 | 1/19/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8190 | 2/5/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8191 | 2/28/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8192 | 3/16/2022 | 03/31/2022 | 03/31/2022 23:59:59 |
8193 | 4/1/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8194 | 5/7/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8195 | 5/16/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8196 | 6/15/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8197 | 6/26/2022 | 06/30/2022 | 06/30/2022 23:59:59 |
8198 | 7/9/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8199 | 7/22/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8200 | 7/23/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8201 | 7/27/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8202 | 8/2/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8203 | 8/8/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8204 | 8/19/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8205 | 9/26/2022 | 09/30/2022 | 09/30/2022 23:59:59 |
8206 | 10/14/2022 | 12/31/2022 | 12/31/2022 23:59:59 |
8207 | 10/29/2022 | 12/31/2022 | 12/31/2022 23:59:59 |
"end_of_quarter" alanı, önceki LOAD deyiminde quarterend() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
quarterend() fonksiyonu önce tarih değerinin içinde bulunduğu çeyreği belirler ve o çeyreğin son milisaniyesinin zaman damgasını döndürür.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterend() fonksiyonu işlemin üçüncü çeyrekte gerçekleştiğini belirler ve bu çeyreğin 30 Eylül saat 23:59:59 olan son milisaniyesini döndürür.
Örnek 5 – Senaryo
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
"Employee_Expenses" adlı tabloya bir veri kümesi yüklenir. Tablo aşağıdaki alanları içermektedir:
-
Çalışan kimlikleri
-
Çalışan adları
-
Her çalışanın günlük ortalama masraf talebi.
-
Son kullanıcı, çeyreğin kalan kısmında oluşacak tahmini masraf talebini çalışan kimliğine ve adına göre görüntüleyen bir grafik nesnesi istemektedir. Mali yıl Ocak'ta başlamaktadır.
Komut dosyası
Employee_Expenses:
Load
*
Inline
[
employee_id,employee_name,avg_daily_claim
182,Mark, $15
183,Deryck, $12.5
184,Dexter, $12.5
185,Sydney,$27
186,Agatha,$18
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
employee_id
-
employee_name
Biriken faizi hesaplamak için şu hesaplamayı oluşturun:
-
=(quarterend(today(1))-today(1))*avg_daily_claim
Hesaplamanın Sayı Biçimini Para olarak ayarlayın.
employee_id | employee_name | =(quarterend(today(1))-today(1))*avg_daily_claim |
---|---|---|
182 | Mark | $480.00 |
183 | Deryck | $400.00 |
184 | Dexter | $400.00 |
185 | Sydney | $864.00 |
186 | Agatha | $576.00 |
quarterend() fonksiyonu, tek bağımsız değişkeni olarak bugünün tarihini kullanır ve geçerli ayın bitiş tarihini döndürür. Ardından bugünün tarihini yılın bitiş tarihinden çıkarır ve ifade bu ayın kalan gün sayısını döndürür.
Sonra bu değer her çalışanın günlük ortalama masraf talebiyle çarpılarak her çalışanın çeyreğin kalan kısmında talep etmesi beklenen tahmini talep tutarı hesaplanır.