quarterstart - kod ve grafik fonksiyonu
Bu fonksiyon, date içeren çeyreğin ilk 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:
QuarterStart(date[, period_no[, first_month_of_year]])
Dönüş verileri türü: dual
quarterstart() fonksiyonu, date tarihinin hangi çeyreğin içinde bulunduğunu belirler. Ardından o çeyreğin ilk ayının ilk milisaniyesi için tarih biçiminde bir zaman damgası döndürür.
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. |
Ne zaman kullanılır?
Genel olarak quarterstart() fonksiyonu, kullanıcının hesaplamada çeyreğin şu ana kadar geçen kısmını kullanmak istemesi durumunda, ifadenin içinde kullanılır. Örneğin, kullanıcı çeyreğin başından bugüne kadar birikmiş olan faizi hesaplamak istediğinde kullanılabilir.
Örnek | Sonuç |
---|---|
quarterstart('10/29/2005') | 10/01/2005 döndürür. |
quarterstart('10/29/2005', -1 ) | 07/01/2005 döndürür. |
quarterstart('10/29/2005', 0, 3) | 09/01/2005 döndürür. |
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 1 – Ek bağımsız değişken yok
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:
-
"Transactions" adlı tabloya yüklenen, 2022'nin işlemlerini içeren bir veri kümesi.
-
Tarih alanı DateFormat sistem değişkeninde (AA/GG/YYYY) biçiminde sağlanmıştır.
-
İşlemlerin gerçekleştiği çeyreğin başlangıcına ilişkin zaman damgasını döndüren start_of_quarter alanını oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date) as start_of_quarter,
timestamp(quarterstart(date)) as start_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:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
tarih | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
"start_of_quarter" alanı, önceki Load deyiminde quarterstart() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur. quarterstart() fonksiyonu önce tarih değerinin içinde bulunduğu çeyreği belirler. Ardından, o çeyreğin ilk milisaniyesi için bir zaman damgası döndürür.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterstart() fonksiyonu işlemin üçüncü çeyrekte gerçekleştiğini belirler ve o çeyreğin 1 Temmuz saat 00:00:00 olan ilk 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:
-
İlk örnek ile aynı veri kümesi ve senaryo.
-
İşlemin gerçekleştiği çeyrekten önceki çeyreğin başlangıcına ilişkin zaman damgasını döndüren previous_quarter_start alanını oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,-1) as previous_quarter_start,
timestamp(quarterstart(date,-1)) as previous_quarter_start_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:
-
date
-
previous_quarter_start
-
previous_quarter_start_timestamp
tarih | previous_quarter_start | previous_quarter_start_timestamp |
---|---|---|
1/7/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
1/19/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/5/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/28/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
3/16/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
4/1/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/15/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/26/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
7/9/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/22/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/23/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/27/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/2/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/8/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/19/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
9/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
10/14/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
10/29/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
Bu örnekte, quarterstart() fonksiyonunda offset bağımsız değişkeni olarak değeri -1 olan period_no kullanıldığından, fonksiyon önce işlemlerin gerçekleştiği çeyreği belirler. Ardından bir önceki çeyreğe geçer ve bu çeyreğin ilk milisaniyesini belirler.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterstart() fonksiyonu işlemin gerçekleşmesinden önceki çeyreğin 1 Nisan ile 30 Haziran arası olduğunu belirler. Ardından o çeyreğin 1 Nisan saat 00:00:00 olan ilk milisaniyesini döndürür.
Örnek 3 – first_month_of_year
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.
Komut dosyası ilk örnek ile aynı veri kümesini ve senaryoyu içerir. Öte yandan bu örnekte, mali yılın başlangıcını 1 Mart olarak ayarlamamız gerekir.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,0,3) as start_of_quarter,
timestamp(quarterstart(date,0,3)) as start_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:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
tarih | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
1/19/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/5/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/28/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
3/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
4/1/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/7/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
6/15/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
6/26/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/9/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/22/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/23/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/27/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/2/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/8/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/19/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
Bu örnekte, quarterstart() 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 Mart-Mayıs, Haziran-Ağustos, Eylül-Kasım ve Aralık-Şubat aralıklarıdır. quarterstart() 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 1 Haziran saat 00:00:00 olan ilk milisaniyesini döndürür.
Örnek 4 – Grafik nesnesi örneği
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.
Komut dosyası ilk örnek ile aynı veri kümesini ve senaryoyu içerir.
Ancak bu örnekte uygulamaya değiştirilmemiş veri kümesi yüklenmektedir. İşlemin gerçekleştiği çeyreğin sonu için zaman damgasını döndüren hesaplama, uygulamanın grafik nesnesinde bir hesaplama olarak oluşturulur.
Komut dosyası
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 alanı boyut olarak ekleyin: date.
Aşağıdaki hesaplamaları ekleyin:
-
=quarterstart(date)
-
=timestamp(quarterstart(date))
tarih | =quarterstart(date) | =timestamp(quarterstart(date)) |
---|---|---|
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
start_of_quarter hesaplaması, grafik nesnesinde quarterstart() fonksiyonu kullanılarak ve date alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
quarterstart() fonksiyonu tarih değerinin içinde bulunduğu çeyreği belirler ve o çeyreğin ilk milisaniyesinin zaman damgasını döndürür.
8203 numaralı işlem 8 Ağustos'ta gerçekleşmiştir. quarterstart() fonksiyonu işlemin üçüncü çeyrekte gerçekleştiğini belirler ve o çeyreğin ilk milisaniyesini döndürür. Döndürülen bu değer 1 Temmuz saat 00:00:00'dı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:
-
Kredi bakiyelerini içeren ve Loans adlı tabloya yüklenen bir veri kümesi.
-
Kredi kimlikleri, çeyreğin başındaki bakiye ve her krediye uygulanan yıllık basit faiz oranından oluşan veriler.
Son kullanıcı, çeyreğin başından bugüne kadar her kredide biriken cari faizi kredi kimliğine göre görüntüleyen bir grafik nesnesi istemektedir.
Komut dosyası
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
Sonuçlar
Aşağıdakileri yapın:
-
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
loan_id
-
start_balance
-
-
Ardından, biriken faizi hesaplamak için şu hesaplamayı oluşturun:
=start_balance*(rate*(today(1)-quarterstart(today(1)))/365)
-
Hesaplamanın Sayı Biçimini Para olarak ayarlayın.
loan_id | start_balance | =start_balance*(rate*(today(1)-quarterstart(today(1)))/365) |
---|---|---|
8188 | $10000.00 | $15.07 |
8189 | $15000.00 | $128.84 |
8190 | $17500.00 | $63.29 |
8191 | $21000.00 | $107.59 |
8192 | $90000.00 | $1139.18 |
quarterstart() fonksiyonu bugünün tarihini tek bağımsız değişkeni olarak kullanarak cari yılın başlangıç tarihini döndürür. İfade, bu sonucu geçerli tarihten çıkararak bu çeyrek içinde şimdiye kadar geçen gün sayısını döndürür.
Sonra bu değer faiz oranıyla çarpılıp 365'e bölünerek bu dönemde biriken efektif faiz oranı döndürülür. Ardından, sonuç kredinin başlangıç bakiyesiyle çarpılarak bu çeyrek içinde şimdiye kadar biriken faiz döndürülür.