Bu fonksiyon, ISO 8601 uyarınca hafta numarasını temsil eden bir tamsayı döndürür. Hafta numarası, standart sayı yorumlamasına göre ifadenin tarih yorumlamasından hesaplanır.
Hafta numarası sayısı 1 Ocak'ta başlar (çünkü Qlik Sense varsayılan olarak bölünmüş haftaları kullanacak şekilde ayarlanmıştır). İlk hafta, içinde kaç gün olduğuna bakılmaksızın, FirstWeekDay sistem değişkeninden bir önceki gün sona erer. week() fonksiyonunun içinde FirstWeekDay sistem değişkeni first_week_day bağımsız değişkeni tarafından geçersiz kılınabilir.
Ayrıca week() fonksiyonu, broken_weeks bağımsız değişkeni aracılığıyla bölünmüş haftaların mı yoksa bölünmemiş haftaların mı kullanılacağını belirtme olanağı da sağlar. Bölünmüş hafta işlevselliği kullanılıyorsa, 1. hafta Ocak ayında ReferenceDay sistem değişkeninde tanımlanan belirli sayıda günü içermelidir. Bu nedenle, 1. haftanın Aralık'ta başlama olasılığı vardır ya da alternatif olarak, 52. veya 53. hafta Ocak'ta devam edebilir. Son olarak, reference_day bağımsız değişkeni fonksiyonun ReferenceDay sistem değişkenini geçersiz kılmasını sağlar.
weekname() fonksiyonundan farklı olarak week() fonksiyonu yıl değerini de döndürmez. Bu sayede birden çok yıldaki haftaları karşılaştıran toplamalar yapılabilir.
Bu fonksiyonla kullanılabilen dört bağımsız değişken vardır.
Bağımsız değişken 1: timestamp
Bu, dönüştürmek üzere zaman damgası olarak veya zaman damgasına çözümlenecek ifade olarak değerlendirilecek olan tarihtir, örneğin'2012-10-12'.
Bağımsız değişken 2: first_week_day
first_week_day öğesini belirtmezseniz FirstWeekDay değişkeninin değeri haftanın ilk günü olarak kullanılır.
Haftanın ilk günü olarak başka bir günü kullanmak istiyorsanız first_week_day ayarını şöyle yapın:
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
Pazar için 6
Fonksiyonun döndürdüğü tamsayı artık, first_week_day ile ayarladığınız haftanın ilk gününü kullanır.
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.
Farklı bir referans gün ayarlamak için aşağıdaki değerler kullanılabilir:
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.
Bunun yanı sıra, birden çok yılı karşılaştırmak istediğinizde de week() fonksiyonu tercih edilir. Kullanıcı week() fonksiyonunu kullanarak, bu değişkenler arasından fonksiyonla birlikte kullanılacak olan kendi değişken bileşimini oluşturabilir.
Bu boyutlar, Ana Takvim tablosunda bir alan oluşturmak için fonksiyon kullanılarak komut dosyasında oluşturulabilir veya grafiğin içinde doğrudan bir hesaplanan boyut olarak kullanılabilir.
Fonksiyon örnekleri
Örnek
Sonuç
week(
'10/12/2012')
41 döndürür.
week(
'35648')
32 döndürür, çünkü 35648 = 08/06/1997.
week('10/12/2012', 0, 1)
42 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 – 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 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 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.