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.
reference_day
reference_day öğesini belirtmezseniz ReferenceDay değişkeninin değeri, 1. haftayı tanımlamak için Ocak ayındaki hangi günün referans gün olarak ayarlanacağını tanımlamak için kullanılır. Varsayılan olarak, Qlik Sense fonksiyonları referans gün olarak 4 kullanır. Bu da 1. haftanın 4 Ocak gününü içermesi gerektiği veya başka bir deyişle 1. haftanın Ocak ayında her zaman en az 4 günü olması gerektiği anlamına gelir.
Sistem değişkeni hakkında daha fazla bilgi için bkz. ReferenceDay.
week() fonksiyonu, tarihin hangi hafta içinde kaldığını belirler ve hafta numarasını döndürür.
Qlik Sense'te, uygulama oluşturulurken bölgesel ayarlar getirilir ve karşılık gelen ayarlar komut dosyasında ortam değişkenleri olarak saklanır. Bunlar, hafta numarasını belirlemek için kullanılır.
Bu, çoğu Avrupalı uygulama geliştiricisinin ISO 8601 tanımına karşılık gelen aşağıdaki ortam değişkenlerini aldığı anlamına gelir:
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
Kuzey Amerikalı bir uygulama geliştiricisi, sıklıkla şu ortam değişkenlerini alır:
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
Haftanın ilk günü FirstWeekDay sistem değişkeni tarafından belirlenir. Haftanın ilk gününü ayrıca week() fonksiyonundaki first_week_day bağımsız değişkenini kullanarak da değiştirebilirsiniz.
Uygulamanız bölünmüş haftalar kullanıyorsa, hafta numarası sayımı 1 Ocak'ta başlar ve kaç geçtiğine bakılmaksızın FirstWeekDay sistem değişkeninden önceki gün biter.
Uygulamanız bölünmemiş haftalar kullanıyorsa, 1. hafta önceki yılda veya Ocak'ın ilk birkaç gününde başlayabilir. Bu, FirstWeekDay ve ReferenceDay ortam değişkenlerini nasıl kullandığınıza bağlıdır.
Ne zaman kullanılır?
The week() fonksiyonu, haftalara göre toplamaları karşılaştırmak istediğinizde yararlıdır. Örneğin haftaya göre ürünlerin toplam satışlarını görmek istediğinizde kullanılabilir. Kullanıcı hesaplamada uygulamanın BrokenWeeks, FirstWeekDay ve ReferenceDay sistem değişkenlerini kullanmak zorunda olmak istemezse weekname() fonksiyonu yerine week() tercih edilir.
Örneğin ürünlerin toplam satışlarını haftalara göre görmek istediğinizde.
Uygulama bölünmemiş haftalar kullanıyorsa, 1. hafta önceki yılın Aralık ayından tarihler içerebilir veya mevcut yılın Ocak ayındaki tarihleri hariç tutabilir. Uygulama bölünmüş haftalar kullanıyorsa 1. hafta yediden daha az gün içerebilir.
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.
Aşağıdaki örneklerde varsayılanlar
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Fonksiyon örnekleri
Örnek
Sonuç
week('12/28/2021')
52 döndürür.
week(44614)
02/22/2022 için seri numara olduğundan 8 döndürür.
week('01/03/2021')
53 döndürür.
week('01/03/2021',6)
1 döndürür.
Örnek 1 – Varsayılan sistem değişkenleri
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:
2021'in son haftası ile 2022'nin ilk iki haftasına ilişkin işlemleri içeren ve Transactions adlı tabloya yüklenen 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 yılı ve hafta numarasını döndüren week_number alanını oluşturma.
Her işlem tarihinin haftanın günü tarihini gösteren week_day adlı alanı oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
week_day
week_number
Sonuçlar tablosu
id
date
week_day
week_number
8183
12/27/2021
Pzt
53
8184
12/28/2021
Sal
53
8185
12/29/2021
Çar
53
8186
12/30/2021
Per
53
8187
12/31/2021
Cum
53
8188
01/01/2022
Cmt
1
8189
01/02/2022
Paz
2
8190
01/03/2022
Pzt
2
8191
01/04/2022
Sal
2
8192
01/05/2022
Çar
2
8193
01/06/2022
Per
2
8194
01/07/2022
Cum
2
8195
01/08/2022
Cmt
2
8196
01/09/2022
Paz
3
8197
01/10/2022
Pzt
3
8198
01/11/2022
Sal
3
8199
01/12/2022
Çar
3
8200
01/13/2022
Per
3
8201
01/14/2022
Cum
3
week_number alanı, önceki yükleme deyiminde week() fonksiyonu kullanılarak ve date alanı fonksiyona bağımsız değişken olarak geçilerek oluşturulur.
Fonksiyona başka parametre geçirilmez ve bu nedenle week() fonksiyonunu etkileyen aşağıdaki varsayılan değişkenler geçerli olur:
BrokenWeeks: Hafta sayısı 1 Ocak'ta başlar
FirstWeekDay: Haftanın ilk günü Pazar'dır
Uygulama varsayılan BrokenWeeks sistem değişkenini kullandığından, 1. haftanın başlangıcı 1 Ocak Cumartesi günüdür.
Varsayılan FirstWeekDay sistem değişkeni nedeniyle, haftalar Pazar günü başlar. 1 Ocak'tan sonraki ilk Pazar günü 2 Ocak tarihlidir ve 2. hafta bu tarihte başlar.
Örnek 2 – first_week_day
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:
İşlemlerin gerçekleştiği yılı ve hafta numarasını döndüren week_number alanını oluşturma.
Her işlem tarihinin haftanın günü tarihini gösteren week_day adlı alanı oluşturma.
Bu örnekte, çalışma haftasını Salı günü başlayacak şekilde ayarlamak istemekteyiz.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
week_day
week_number
Sonuçlar tablosu
id
date
week_day
week_number
8183
12/27/2021
Pzt
52
8184
12/28/2021
Sal
53
8185
12/29/2021
Çar
53
8186
12/30/2021
Per
53
8187
12/31/2021
Cum
53
8188
01/01/2022
Cmt
1
8189
01/02/2022
Paz
1
8190
01/03/2022
Pzt
1
8191
01/04/2022
Sal
2
8192
01/05/2022
Çar
2
8193
01/06/2022
Per
2
8194
01/07/2022
Cum
2
8195
01/08/2022
Cmt
2
8196
01/09/2022
Paz
2
8197
01/10/2022
Pzt
2
8198
01/11/2022
Sal
3
8199
01/12/2022
Çar
3
8200
01/13/2022
Per
3
8201
01/14/2022
Cum
3
Uygulama yine bölünmüş haftaları kullanmaktadır. Bununla birlikte, week() fonksiyonunda first_week_day bağımsız değişkeni 1 olarak ayarlanmıştır. Dolayısıyla haftanın ilk günü Sayı olur.
Uygulama varsayılan BrokenWeeks sistem değişkenini kullandığından, 1. haftanın başlangıcı 1 Ocak Cumartesi günüdür.
week() fonksiyonunun first_week_day bağımsız değişkeni haftanın ilk gününü Salı günü olarak ayarlar. Bu nedenle 53. hafta 28 Aralık 2021'de başlar.
Öte yandan fonksiyon yine bölünmüş haftaları kullandığından ve 1 Ocak'tan sonraki ilk Salı günü 3 Ocak tarihli olduğundan, 1. hafta yalnızca iki gün uzunluğunda olacaktır.
Örnek 3 – unbroken_weeks
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.
Bu örnekte bölünmemiş haftaları kullanmaktayız.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
week_day
week_number
Sonuçlar tablosu
id
date
week_day
week_number
8183
12/27/2021
Pzt
52
8184
12/28/2021
Sal
52
8185
12/29/2021
Çar
52
8186
12/30/2021
Per
52
8187
12/31/2021
Cum
52
8188
01/01/2022
Cmt
52
8189
01/02/2022
Paz
1
8190
01/03/2022
Pzt
1
8191
01/04/2022
Sal
1
8192
01/05/2022
Çar
1
8193
01/06/2022
Per
1
8194
01/07/2022
Cum
1
8195
01/08/2022
Cmt
1
8196
01/09/2022
Paz
2
8197
01/10/2022
Pzt
2
8198
01/11/2022
Sal
2
8199
01/12/2022
Çar
2
8200
01/13/2022
Per
2
8201
01/14/2022
Cum
2
first_week_date parametresi 1 olarak ayarlandığından haftanın ilk günü Salı olur. broken_weeks parametresi 0 olarak ayarlanmıştır ve bu ayar fonksiyonu bölünmemiş haftaları kullanmaya zorlar. Son olarak, üçüncü parametre reference_day değerini 2 olarak ayarlar.
first_week_date parametresi 6 olarak ayarlandığından, haftanın ilk günü Pazar olur. broken_weeks parametresi 0 olarak ayarlanmıştır ve bu ayar fonksiyonu bölünmemiş haftaları kullanmaya zorlar.
Bölünmemiş haftalar kullanıldığında 1. haftanın 1 Ocak'ta başlaması gerekmez; bunun yerine, en az dört günden oluşması gerekir. Dolayısıyla, veri kümesinde 52. hafta 1 Ocak 2022 Cumartesi günü sona erer. 1. hafta, 2 Ocak Cuma olan FirstWeekDay sistem değişkeninde başlar. Bu hafta izleyen 8 Ocak Cumartesi günü sona erer.
Örnek 4 – reference_day
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:
Üçüncü örnekle aynı veri kümesi ve senaryo.
İşlemlerin gerçekleştiği yılı ve hafta numarasını döndüren week_number alanını oluşturma.
Her işlem tarihinin haftanın günü tarihini gösteren week_day adlı alanı oluşturma.
Ayrıca aşağıdaki koşullara da uyulması gerekir:
Çalışma haftası Salı günü başlar.
Şirket bölünmemiş haftaları kullanır.
reference_day değeri 2'dir. Diğer bir deyişle, Ocak ayının 1. haftaya dahil olan günlerinin sayısı en az 2 olacaktır.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
week_day
week_number
Sonuçlar tablosu
id
date
week_day
week_number
8183
12/27/2021
Pzt
52
8184
12/28/2021
Sal
1
8185
12/29/2021
Çar
1
8186
12/30/2021
Per
1
8187
12/31/2021
Cum
1
8188
01/01/2022
Cmt
1
8189
01/02/2022
Paz
1
8190
01/03/2022
Pzt
1
8191
01/04/2022
Sal
2
8192
01/05/2022
Çar
2
8193
01/06/2022
Per
2
8194
01/07/2022
Cum
2
8195
01/08/2022
Cmt
2
8196
01/09/2022
Paz
2
8197
01/10/2022
Pzt
2
8198
01/11/2022
Sal
3
8199
01/12/2022
Çar
3
8200
01/13/2022
Per
3
8201
01/14/2022
Cum
3
first_week_date parametresi 1 olarak ayarlandığından haftanın ilk günü Salı olur. broken_weeks parametresi 0 olarak ayarlanmıştır ve bu ayar fonksiyonu bölünmemiş haftaları kullanmaya zorlar. Son olarak, üçüncü parametre reference_day değerini 2 olarak ayarlar.
Fonksiyon bölünmemiş haftaları kullandığından ve parametre olarak 2 reference_day değeri kullanıldığından, 1. haftanın Ocak ayından yalnızca iki gün içermesi gerekir. Haftanın günleri Salı ile başladığından, 1. hafta 28 Aralık 2021'de başlar ve 3 Ocak 2022 Pazartesi günü sona erer.
Örnek 5 – 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. Hafta numarasını döndüren hesaplama, grafik nesnesinde bir hesaplama olarak oluşturulur.
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun.
Aşağıdaki alanları boyut olarak ekleyin:
id
date
Sonra aşağıdaki hesaplamayı oluşturun:
=week (date)
Her işlem tarihinin haftanın günü değerini göstermek için bir , week_day hesaplaması oluşturun:
=weekday(date)
Sonuçlar tablosu
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Pzt
8184
12/28/2021
53
Sal
8185
12/29/2021
53
Çar
8186
12/30/2021
53
Per
8187
12/31/2021
53
Cum
8188
01/01/2022
1
Cmt
8189
01/02/2022
2
Paz
8190
01/03/2022
2
Pzt
8191
01/04/2022
2
Sal
8192
01/05/2022
2
Çar
8193
01/06/2022
2
Per
8194
01/07/2022
2
Cum
8195
01/08/2022
2
Cmt
8196
01/09/2022
3
Paz
8197
01/10/2022
3
Pzt
8198
01/11/2022
3
Sal
8199
01/12/2022
3
Çar
8200
01/13/2022
3
Per
8201
01/14/2022
3
Cum
week_number alanı, önceki Load deyiminde week() fonksiyonu kullanılarak ve date alanı fonksiyona bağımsız değişken olarak geçilerek oluşturulur.
Fonksiyona başka parametre geçirilmez ve bu nedenle week() fonksiyonunu etkileyen aşağıdaki varsayılan değişkenler geçerli olur:
BrokenWeeks: Hafta sayısı 1 Ocak'ta başlar
FirstWeekDay: Haftanın ilk günü Pazar'dır
Uygulama varsayılan BrokenWeeks sistem değişkenini kullandığından, 1. haftanın başlangıcı 1 Ocak Cumartesi günüdür.
Varsayılan FirstWeekDay sistem değişkeni nedeniyle, haftalar Pazar günü başlar. 1 Ocak'tan sonraki ilk Pazar günü 2 Ocak tarihlidir ve 2. hafta bu tarihte başlar.
Örnek 6 – 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:
2019'un son haftası ile 2020'nin ilk iki haftası için işlemler içeren ve Transactions adlı tabloya yüklenen bir veri kümesi.
Tarih alanı DateFormat sistem değişkeninde (AA/GG/YYYY) biçiminde sağlanmıştır.
Uygulama, panelinde öncelikli olarak bölünmüş haftaları kullanır. Ancak son kullanıcı, bölünmemiş haftaları kullanarak haftaya göre toplam satışları gösteren bir grafik nesnesi istemektedir. Salı günü başlayan haftalarla, referans günü 2 Ocak olacaktır. Bu, veri modelinde bu boyut mevcut olmadığında bile, grafikte hesaplanan boyut olarak week() fonksiyonunun kullanılmasıyla elde edilebilir.