yearstart - kod ve grafik fonksiyonu
Bu fonksiyon, date içeren yılın ilk gününün başlangıcına karşılık gelen bir zaman damgası döndürür. Varsayılan çıktı biçimi kodda ayarlanan DateFormat olur.
Söz Dizimi:
YearStart(date[, period_no[, first_month_of_year]])
Diğer bir deyişle yearstart() fonksiyonu tarihin içinde kaldığı yılı belirler. Daha sonra tarih biçiminde o yılın ilk milisaniyesi bir zaman damgası döndürür. Yılın ilk ayı varsayılan olarak Ocak'tır. Ancak, hangi ayın ilk olarak ayarlandığını yearstart() fonksiyonundaki first_month_of_year bağımsız değişkenini kullanarak değiştirebilirsiniz.
Ne zaman kullanılır?
yearstart() fonksiyonu; hesaplamanın yılın şimdiye kadar geçen kısmını kullanmasını istediğinizde ifadenin parçası olarak kullanılır. Örneğin, yıl başından bugüne birike faizi hesaplamak istediğinizde.
Dönüş verileri türü: dual
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 yılı belirtir. period_no içindeki negatif değerler önceki yılları; pozitif değerler ise sonraki yılları 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. |
first_month_of_year argument için şu aylar kullanılabilir:
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ç |
---|---|
yearstart('10/19/2001') | 01/01/2001 00:00:00 döndürür. |
yearstart('10/19/2001',-1) | 01/01/2000 00:00:00 döndürür. |
yearstart('10/19/2001',0,4) | 04/01/2001 00:00:00 döndürür. |
Ö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:
-
2020 ile 2022 arasında yapılan bir işlemler kümesini içeren bir veri kümesi "Transactions" adlı tabloya yüklenir.
-
Tarih alanı DateFormat sistem değişkeninde MM/DD/YYYY biçiminde sağlanmıştır.
-
Şunları içeren önceki bir Load deyimi:
-
year_start alanı olarak ayarlanan yearstart() fonksiyonu.
-
year_start_timestamp alanı olarak ayarlanan Timestamp() fonksiyonu
-
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date) as year_start,
timestamp(yearstart(date)) as year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/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
-
year_start
-
year_start_timestamp
kimlik | tarih | year_start | year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8189 | 02/26/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8190 | 03/27/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8191 | 04/16/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8192 | 05/21/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8193 | 08/14/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8194 | 10/07/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8195 | 12/05/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8196 | 01/22/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8197 | 02/03/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8198 | 03/17/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8199 | 04/23/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8200 | 05/04/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8201 | 06/30/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8202 | 07/26/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8203 | 12/27/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8204 | 06/06/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8205 | 07/18/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8206 | 11/14/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8207 | 12/12/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
"year_start" alanı, önceki Load deyiminde yearstart() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
yearstart() fonksiyonu önce tarih değerinin içinde kaldığı yılı belirler ve o yılın ilk milisaniyesinin zaman damgasını döndürür.
8199 numaralı işlem 23 Nisan 2021'de yapılmıştır. yearstart() fonksiyonu o yılın 1 Ocak 12:00:00 olan ilk milisaniyesini döndürür.
Örnek 2 – period_no
Genel bakış
Birinci örnekteki veri kümesi ve senaryo kullanılır.
Ancak bu örnekte görev, bir işlemin yapıldığı yıldan önceki yılın başlangıç tarihinin zaman damgasını döndüren "previous_year_start" alanını oluşturmaktır.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date,-1) as previous_year_start,
timestamp(yearstart(date,-1)) as previous_year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/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_year_start
-
previous_ year_start_timestamp
kimlik | tarih | previous_year_start | previous_year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8189 | 02/26/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8190 | 03/27/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8191 | 04/16/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8192 | 05/21/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8193 | 08/14/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8194 | 10/07/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8195 | 12/05/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8196 | 01/22/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8197 | 02/03/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8198 | 03/17/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8199 | 04/23/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8200 | 05/04/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8201 | 06/30/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8202 | 07/26/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8203 | 12/27/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8204 | 06/06/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8205 | 07/18/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8206 | 11/14/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8207 | 12/12/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
Bu örnekte, yearstart() fonksiyonunda kaydırma bağımsız değişkeni period_no için -1 kullanıldığından, fonksiyon önce işlemlerin yapıldığı yılı tanımlar. Sonra bir önceki yıla bakar ve o yılın ilk milisaniyesini belirler.
8199 numaralı işlem 23 Nisan 2021'de yapılmıştır. yearstart() fonksiyonu "previous_year_start" alanı için önceki yılın 1 Ocak 2020 12:00:00 olan ilk milisaniyesini döndürür.
Örnek 3 – first_month_of_year
Genel bakış
Birinci örnekteki veri kümesi ve senaryo kullanılır.
Ancak bu örnekte şirket politikası yılın 1 Nisan'da başlamasıdır.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date,0,4) as year_start,
timestamp(yearstart(date,0,4)) as year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/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
-
year_start
-
year_start_timestamp
kimlik | tarih | year_start | year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8189 | 02/26/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8190 | 03/27/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8191 | 04/16/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8192 | 05/21/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8193 | 08/14/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8194 | 10/07/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8195 | 12/05/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8196 | 01/22/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8197 | 02/03/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8198 | 03/17/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8199 | 04/23/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8200 | 05/04/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8201 | 06/30/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8202 | 07/26/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8203 | 12/27/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8204 | 06/06/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8205 | 07/18/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8206 | 11/14/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8207 | 12/12/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
Bu örnekte, yearstart() fonksiyonunda first_month_of_year bağımsız değişkeni için 4 kullanıldığından fonksiyon yılın ilk gününü 1 Nisan, son gününü ise 31 Mart olarak ayarlar.
8199 numaralı işlem 23 Nisan 2021'de yapılmıştır. yearstart() fonksiyonu yılın başlangıcını 1 Nisan olarak ayarladığı ve bunu işlemin "year_start" değeri olarak döndürdüğü için.
Ö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. Bir işlemin yapıldığı yılın başlangıç tarihinin zaman damgasını döndüren hesaplama, uygulamanın bir grafik nesnesinde bir hesaplama olarak oluşturulur.
Komut dosyası
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/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
Bir işlemin hangi yılda yapıldığını hesaplamak için şu hesaplamayı oluşturun:
-
=yearstart(date)
-
=timestamp(yearstart(date))
kimlik | tarih | =yearstart(date) | =timestamp(yearstart(date)) |
---|---|---|---|
8188 | 06/06/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8189 | 07/18/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8190 | 11/14/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8191 | 12/12/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8192 | 01/22/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8193 | 02/03/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8194 | 03/17/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8195 | 04/23/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8196 | 05/04/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8197 | 06/30/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8198 | 07/26/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8199 | 12/27/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8200 | 01/13/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8201 | 02/26/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8202 | 03/27/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8203 | 04/16/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8204 | 05/21/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8205 | 08/14/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8206 | 10/07/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8207 | 12/05/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
"start_of_year" hesaplaması, grafik nesnesinde yearstart() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
yearstart() fonksiyonu önce tarih değerinin içinde kaldığı yılı belirler ve o yılın ilk milisaniyesinin zaman damgasını döndürür.
8199 numaralı işlem 23 Nisan 2021'de yapılmıştır. yearstart() fonksiyonu o yılın 1 Ocak 12:00:00 olan ilk 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:
-
"Loans" adlı bir tabloya bir veri kümesi yüklenir. Tablo aşağıdaki alanları içermektedir:
-
Kredi kimlikleri.
-
Yılın başlangıcında bilanço.
-
Her krediden alınan yıllık basit faiz.
-
Son kullanıcı, yıl başından bu yana 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
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
loan_id
-
start_balance
Biriken faizi hesaplamak için şu hesaplamayı oluşturun:
=start_balance*(rate*(today(1)-yearstart(today(1)))/365)
Hesaplamanın Sayı Biçimini Para olarak ayarlayın.
loan_id | start_balance | =start_balance*(rate*(today(1)-yearstart(today(1)))/365) |
---|---|---|
8188 | $10000.00 | $39.73 |
8189 | $15000.00 | $339.66 |
8190 | $17500.00 | $166.85 |
8191 | $21000.00 | $283.64 |
8192 | $90000.00 | $3003.29 |
yearstart() 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 yıl içinde şimdiye kadar geçen gün sayısını döndürür.
Bu değer daha sonra faiz oranıyla çarpılıp 365'e bölünerek dönem için efektif faiz oranı elde edilir. Dönem için efektif faiz oranı ise kredinin başlangıç bakiyesi ile çarpılarak bu yıl içinde şimdiye kadar faiz oranı elde edilir.