weekend - kod ve grafik fonksiyonu
Bu fonksiyon, date değerini içeren takvim haftasının son gününün (Pazar) 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:
WeekEnd(date [, period_no[, first_week_day]])
Dönüş verileri türü: dual
weekend() fonksiyonu tarihin hangi haftanın içinde bulunduğunu belirler. Ardından söz konusu haftanın son milisaniyesi için tarih biçiminde bir zaman damgası döndürür. Haftanın ilk günü FirstWeekDay ortam değişkeni tarafından belirlenir. Ancak bu, weekend() fonksiyonundaki first_week_day bağımsız değişkeni tarafından geçersiz kılınabilir.
Bağımsız Değişken | Açıklama |
---|---|
date | Değerlendirilecek tarih veya zaman damgası. |
period_no | shift bir tamsayı olup, burada 0 değeri date içeren haftayı belirtir. Shift içindeki negatif değerler önceki haftaları; pozitif değerler ise sonraki haftaları gösterir. |
first_week_day |
Haftanın başladığı günü belirtir. Atlandığı takdirde, FirstWeekDay değişkeninin değeri kullanılır. Olabilecek first_week_day değerleri Pazartesi için 0, Salı için 1, Çarşamba için 2, Perşembe için 3, Cuma için 4, Cumartesi için 5 ve Pazar için 6'dır. Sistem değişkeni hakkında daha fazla bilgi için bkz. FirstWeekDay. |
broken_weeks |
broken_weeks öğesini belirtmezseniz BrokenWeeks değişkeninin değeri, haftaların bölünmüş olup olmadığını tanımlamak için kullanılır. Sistem değişkeni hakkında daha fazla bilgi için bkz. BrokenWeeks. |
Ne zaman kullanılır?
Genel olarak weekend() fonksiyonu, kullanıcının hesaplamada belirtilen tarih için haftanın kalan günlerini kullanmak istemesi durumunda, ifadenin içinde kullanılır. Örneğin, kullanıcı hafta içinde henüz oluşmamış toplam faizi hesaplamak istediğinde kullanılabilir.
Örnek | Sonuç |
---|---|
weekend('01/10/2013') | 01/12/2013 23:59:59 döndürür. |
weekend('01/10/2013', -1) | 01/05/2013 23:59:59. döndürür. |
weekend('01/10/2013', 0, 1) | 01/14/2013 23:59:59 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 – 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:
-
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 haftanın sonunun zaman damgasını döndüren end_of_week alanını oluşturma.
Komut dosyası
SET FirstWeekDay=6;
Transactions:
Load
*,
weekend(date) as end_of_week,
timestamp(weekend(date)) as end_of_week_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
-
end_of_week
-
end_of_week_timestamp
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/08/2022 | 01/8/2022 23:59:59 |
1/19/2022 | 01/22/2022 | 01/22/2022 23:59:59 |
2/5/2022 | 02/05/2022 | 02/5/2022 23:59:59 |
2/28/2022 | 03/05/2022 | 03/5/2022 23:59:59 |
3/16/2022 | 03/19/2022 | 03/19/2022 23:59:59 |
4/1/2022 | 04/02/2022 | 04/2/2022 23:59:59 |
5/7/2022 | 05/07/2022 | 05/7/2022 23:59:59 |
5/16/2022 | 05/21/2022 | 05/21/2022 23:59:59 |
6/15/2022 | 06/18/2022 | 06/18/2022 23:59:59 |
6/26/2022 | 07/02/2022 | 07/2/2022 23:59:59 |
7/9/2022 | 07/09/2022 | 07/9/2022 23:59:59 |
7/22/2022 | 07/23/2022 | 07/23/2022 23:59:59 |
7/23/2022 | 07/23/2022 | 07/23/2022 23:59:59 |
7/27/2022 | 07/30/2022 | 07/30/2022 23:59:59 |
8/2/2022 | 08/06/2022 | 08/6/2022 23:59:59 |
8/8/2022 | 08/13/2022 | 08/13/2022 23:59:59 |
8/19/2022 | 08/20/2022 | 08/20/2022 23:59:59 |
9/26/2022 | 10/01/2022 | 10/1/2022 23:59:59 |
10/14/2022 | 10/15/2022 | 10/15/2022 23:59:59 |
10/29/2022 | 10/29/2022 | 10/29/2022 23:59:59 |
end_of_week alanı, önceki LOAD deyiminde weekend() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
weekend() fonksiyonu tarih değerinin içinde bulunduğu haftayı belirler ve söz konusu haftanın son milisaniyesine ilişkin zaman damgasını döndürür.
8191 numaralı işlem 5 Şubat'ta gerçekleşmiştir. FirstWeekDay sistem değişkeni haftanın ilk günü olarak Pazar gününü ayarlar. weekend() fonksiyonu, 5 Şubat'tan sonraki ilk Cumartesi'nin (dolayısıyla haftanın sonunun) 5 Şubat olduğunu belirler. Bu nedenle söz konusu işlemin end_of_week değeri, o günün 5 Şubat 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:
-
İlk örnek ile aynı veri kümesi ve senaryo.
-
İşlemin gerçekleşmesinden önceki haftanın başlangıcına ilişkin zaman damgasını döndüren previous_week_end alanını oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekend(date,-1) as previous_week_end,
timestamp(weekend(date,-1)) as previous_week_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:
-
date
-
previous_week_end
-
previous_week_end_timestamp
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/01/2022 | 01/1/2022 23:59:59 |
1/19/2022 | 01/15/2022 | 01/15/2022 23:59:59 |
2/5/2022 | 01/29/2022 | 01/29/2022 23:59:59 |
2/28/2022 | 02/26/2022 | 02/26/2022 23:59:59 |
3/16/2022 | 03/12/2022 | 03/12/2022 23:59:59 |
4/1/2022 | 03/26/2022 | 03/26/2022 23:59:59 |
5/7/2022 | 04/30/2022 | 04/30/2022 23:59:59 |
5/16/2022 | 05/14/2022 | 05/14/2022 23:59:59 |
6/15/2022 | 06/11/2022 | 06/11/2022 23:59:59 |
6/26/2022 | 06/25/2022 | 06/25/2022 23:59:59 |
7/9/2022 | 07/02/2022 | 07/2/2022 23:59:59 |
7/22/2022 | 07/16/2022 | 07/16/2022 23:59:59 |
7/23/2022 | 07/16/2022 | 07/16/2022 23:59:59 |
7/27/2022 | 07/23/2022 | 07/23/2022 23:59:59 |
8/2/2022 | 07/30/2022 | 07/30/2022 23:59:59 |
8/8/2022 | 08/06/2022 | 08/6/2022 23:59:59 |
8/19/2022 | 08/13/2022 | 08/13/2022 23:59:59 |
9/26/2022 | 09/24/2022 | 09/24/2022 23:59:59 |
10/14/2022 | 10/08/2022 | 10/8/2022 23:59:59 |
10/29/2022 | 10/22/2022 | 10/22/2022 23:59:59 |
Bu örnekte, weekend() 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 haftayı belirler. Ardından bir önceki haftaya bakar ve o haftanın son milisaniyesini belirler.
8196 numaralı işlem 15 Haziran'da gerçekleşmiştir. weekend() fonksiyonu haftanın 12 Haziran'da başladığını belirler. Bu nedenle önceki hafta 11 Haziran saat 23:59:59'da sona erer; bu, previous_week_end alanı için döndürülen değerdir.
Örnek 3 – first_week_day
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, çalışma haftasının ilk gününü Salı olarak ayarlamamız gerekmektedir.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekend(date,0,1) as end_of_week,
timestamp(weekend(date,0,1)) as end_of_week_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
-
end_of_week
-
end_of_week_timestamp
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/10/2022 | 01/10/2022 23:59:59 |
1/19/2022 | 01/24/2022 | 01/24/2022 23:59:59 |
2/5/2022 | 02/07/2022 | 02/7/2022 23:59:59 |
2/28/2022 | 02/28/2022 | 02/28/2022 23:59:59 |
3/16/2022 | 03/21/2022 | 03/21/2022 23:59:59 |
4/1/2022 | 04/04/2022 | 04/4/2022 23:59:59 |
5/7/2022 | 05/09/2022 | 05/9/2022 23:59:59 |
5/16/2022 | 05/16/2022 | 05/16/2022 23:59:59 |
6/15/2022 | 06/20/2022 | 06/20/2022 23:59:59 |
6/26/2022 | 06/27/2022 | 06/27/2022 23:59:59 |
7/9/2022 | 07/11/2022 | 07/11/2022 23:59:59 |
7/22/2022 | 07/25/2022 | 07/25/2022 23:59:59 |
7/23/2022 | 07/25/2022 | 07/25/2022 23:59:59 |
7/27/2022 | 08/01/2022 | 08/1/2022 23:59:59 |
8/2/2022 | 08/08/2022 | 08/8/2022 23:59:59 |
8/8/2022 | 08/08/2022 | 08/8/2022 23:59:59 |
8/19/2022 | 08/22/2022 | 08/22/2022 23:59:59 |
9/26/2022 | 09/26/2022 | 09/26/2022 23:59:59 |
10/14/2022 | 10/17/2022 | 10/17/2022 23:59:59 |
10/29/2022 | 10/31/2022 | 10/31/2022 23:59:59 |
Bu örnekte, weekend() fonksiyonunda first_week_date bağımsız değişkeni için 1 kullanıldığından haftanın ilk günü Salı olarak ayarlanır.
8191 numaralı işlem 5 Şubat'ta gerçekleşmiştir. weekend() fonksiyonu bu tarihten önceki ilk Pazartesi'nin (dolayısıyla haftanın sonunun ve döndürülen değerin) 6 Şubat saat 23:59:59 olduğunu belirler.
Ö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 yapıldığı haftanın 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.
İşlemin gerçekleştiği haftanın başlangıcını hesaplamak için aşağıdaki hesaplamaları ekleyin:
-
=weekend(date)
-
=timestamp(weekend(date))
tarih | =weekend(date) | =timestamp(weekend(date)) |
---|---|---|
1/7/2022 | 01/08/2022 | 01/8/2022 23:59:59 |
1/19/2022 | 01/22/2022 | 01/22/2022 23:59:59 |
2/5/2022 | 02/05/2022 | 02/5/2022 23:59:59 |
2/28/2022 | 03/05/2022 | 03/5/2022 23:59:59 |
3/16/2022 | 03/19/2022 | 03/19/2022 23:59:59 |
4/1/2022 | 04/02/2022 | 04/2/2022 23:59:59 |
5/7/2022 | 05/07/2022 | 05/7/2022 23:59:59 |
5/16/2022 | 05/21/2022 | 05/21/2022 23:59:59 |
6/15/2022 | 06/18/2022 | 06/18/2022 23:59:59 |
6/26/2022 | 07/02/2022 | 07/2/2022 23:59:59 |
7/9/2022 | 07/09/2022 | 07/9/2022 23:59:59 |
7/22/2022 | 07/23/2022 | 07/23/2022 23:59:59 |
7/23/2022 | 07/23/2022 | 07/23/2022 23:59:59 |
7/27/2022 | 07/30/2022 | 07/30/2022 23:59:59 |
8/2/2022 | 08/06/2022 | 08/6/2022 23:59:59 |
8/8/2022 | 08/13/2022 | 08/13/2022 23:59:59 |
8/19/2022 | 08/20/2022 | 08/20/2022 23:59:59 |
9/26/2022 | 10/01/2022 | 10/1/2022 23:59:59 |
10/14/2022 | 10/15/2022 | 10/15/2022 23:59:59 |
10/29/2022 | 10/29/2022 | 10/29/2022 23:59:59 |
end_of_week hesaplaması, grafik nesnesinde weekend() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur. weekend() fonksiyonu tarih değerinin içinde bulunduğu haftayı belirler ve söz konusu haftanın son milisaniyesine ilişkin zaman damgasını döndürür.
8191 numaralı işlem 5 Şubat'ta gerçekleşmiştir. FirstWeekDay sistem değişkeni haftanın ilk günü olarak Pazar gününü ayarlar. weekend() fonksiyonu, 5 Şubat'tan sonraki ilk Cumartesi'nin (dolayısıyla haftanın sonunun) 5 Şubat olduğunu belirler. Bu nedenle söz konusu işlemin end_of_week değeri, o günün 5 Şubat 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 yüklenen bir veri kümesi.
-
Çalışan kimlikleri, çalışan adları ve her çalışanın günlük ortalama masraf taleplerinden oluşan veriler.
Son kullanıcı, haftanın 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.
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
Aşağıdakileri yapın:
-
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
employee_id
-
employee_name
-
-
Sonra biriken faizi hesaplamak için bir hesaplama oluşturun:
=(weekend(today(1))-today(1))*avg_daily_claim
-
Hesaplamanın Sayı Biçimini Para olarak ayarlayın.
employee_id | employee_name | =(weekend(today(1))-today(1))*avg_daily_claim |
---|---|---|
182 | Mark | $90.00 |
183 | Deryck | $75.00 |
184 | Dexter | $75.00 |
185 | Sydney | $162.00 |
186 | Agatha | $108.00 |
weekend() fonksiyonu bugünün tarihini tek bağımsız değişkeni olarak kullanır ve geçerli haftanın bitiş tarihini döndürür. Ardından ifade, bugünün tarihini haftanın bitiş tarihinden çıkararak bu haftanın kalan gün sayısını döndürür.
Bu değer daha sonra her çalışanın ortalama günlük masraf talebiyle çarpılarak her çalışanın haftanın kalan kısmında talep etmesi beklenen tahmini masraf tutarı hesaplanır.