weekname - kod ve grafik fonksiyonu
Bu fonksiyon, date öğesini içeren haftanın ilk gününün ilk milisaniyesinin zaman damgasına karşılık gelen bir temel sayısal değerle yıl ve hafta sayısını gösteren bir değer döndürür.
Söz Dizimi:
WeekName(date[, period_no[,first_week_day]])
weekname() fonksiyonu, tarihin hangi hafta içinde kaldığını belirler ve o haftanın hafta numarasını ve yılını döndürür. Haftanın ilk günü FirstWeekDay sistem değişkeni tarafından belirlenir. Ancak weekname() fonksiyonundaki first_week_day bağımsız değişkenini kullanarak haftanın ilk gününü de değiştirebilirsiniz.
Varsayılan olarak, Qlik Sense uygulamaları bölünmüş haftalar (BrokenWeeks sistem değişkeni tarafından tanımlanan) kullanır ve bu nedenle hafta numarası sayma 1 Ocak'ta başlar ve kaç gün geçtiğine bakılmaksızın FirstWeekDay sistem değişkeninden önceki gün biter.
Ancak uygulamanız bölünmemiş haftalar kullanıyorsa, 1. hafta önceki yılda veya Ocak'ın ilk günlerinde başlayabilir. Bu, ReferenceDay ve FirstWeekDay sistem değişkenlerini nasıl kullandığınıza bağlıdır.
Ne zaman kullanılır?
weekname() fonksiyonu, toplamaları haftalara göre karşılaştırmak istediğinizde yararlıdır.
Örneğin ürünlerin toplam satışlarını haftalara göre görmek istediğinizde. Uygulamada BrokenWeeks ortam değişkeni ile tutarlılığı korumak için lunarweekname() yerine weekname() kullanın. 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.
Dönüş verileri türü: dual
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. |
Haftanın başladığı günü ayarlamak için first_week_day bağımsız değişkeninde aşağıdaki değerleri kullanabilirsiniz:
Gün | Değer |
---|---|
Pazartesi | 0 |
Salı | 1 |
Çarşamba | 2 |
Perşembe | 3 |
Cuma | 4 |
Cumartesi | 5 |
Pazar | 6 |
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ç |
---|---|
weekname('01/12/2013') | 2013/02 döndürür. |
weekname('01/12/2013', -1) | Returns 2013/01. |
weekname('01/12/2013', 0, 1) | 2013/02 döndürür. |
Örnek 1 – Ek bağımsız değişken olmadan tarih
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ı bir tabloya yüklenen, 2021 yılının son iki haftası ve 2022 yılının ilk iki haftası için işlemler içeren bir veri kümesi.
-
MM/DD/YYYY biçimine ayarlanan DateFormat sistem değişkeni.
-
1 olarak ayarlanan BrokenWeeks sistem değişkeni.
-
6 olarak ayarlanan FirstWeekDay sistem değişkeni.
-
Şunları içeren önceki bir yükleme:
-
İşlem yapıldığında yılı ve hafta numarasını döndüren, "week_number" alanı olarak ayarlanan weekday() fonksiyonu.
-
Her işlem tarihinin haftanın günü değerini göstermek için "week_day" adlı alan olarak ayarlanan weekname() fonksiyonu.
-
Komut dosyası
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day,
Weekname(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
id | date | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Pzt | 2021/53 |
8184 | 12/28/2021 | Sal | 2021/53 |
8185 | 12/29/2021 | Çar | 2021/53 |
8186 | 12/30/2021 | Per | 2021/53 |
8187 | 12/31/2021 | Cum | 2021/53 |
8188 | 01/01/2022 | Cmt | 2022/01 |
8189 | 01/02/2022 | Paz | 2022/02 |
8190 | 01/03/2022 | Pzt | 2022/02 |
8191 | 01/04/2022 | Sal | 2022/02 |
8192 | 01/05/2022 | Çar | 2022/02 |
8193 | 01/06/2022 | Per | 2022/02 |
8194 | 01/07/2022 | Cum | 2022/02 |
8195 | 01/08/2022 | Cmt | 2022/02 |
8196 | 01/09/2022 | Paz | 2022/03 |
8197 | 01/10/2022 | Pzt | 2022/03 |
8198 | 01/11/2022 | Sal | 2022/03 |
8199 | 01/12/2022 | Çar | 2022/03 |
8200 | 01/13/2022 | Per | 2022/03 |
8201 | 01/14/2022 | Cum | 2022/03 |
"week_number" alanı, önceki Load deyiminde weekname() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
weekname() fonksiyonu, başlangıçta tarih değerinin içinde kaldığı haftayı tanımlar ve işlemin yapıldığı hafta numarası sayısını ve yılı döndürür.
FirstWeekDay sistem değişkeni haftanın ilk günü olarak Pazar'ı ayarlar. BrokenWeeks sistem değişkeni, uygulamayı bölünmüş haftalar kullanmaya ayarlar; yani 1. hafta 1 Ocak'ta başlar.
1. hafta Cumartesi gününe gelen 1 Ocak'ta başlar ve dolayısıyla bu tarihte yapılan işlemler 2022/01 değerini döndürür (yıl ve hafta numarası).
Uygulama bölünmüş haftalar kullandığı ve haftanın ilk günü Pazar olduğu için 2 Ocak ile 8 Ocak arasında yapılan işlemler 2022/02 değerini (2022'de 2 numaralı hafta) döndürür. Bunun bir örneği, 5 Ocak'ta yapılan ve "week_number" alanı için 2022/02 değerini döndüren 8192 numaralı işlemdir.
Örnek 2 – period_no
Genel bakış
Birinci örnekteki veri kümesi ve senaryo kullanılır.
Ancak bu örnekte görev, yılı ve işlemin yapılmasından önceki haftayı döndüren "previous_week_number" alanını oluşturmaktır.
Veri yükleme düzenleyicisi bölümünü açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Komut dosyası
SET BrokenWeeks=1;
SET FirstWeekDay=6;
Transactions:
Load
*,
weekname(date,-1) as previous_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
id | date | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Pzt | 2021/52 |
8184 | 12/28/2021 | Sal | 2021/52 |
8185 | 12/29/2021 | Çar | 2021/52 |
8186 | 12/30/2021 | Per | 2021/52 |
8187 | 12/31/2021 | Cum | 2021/52 |
8188 | 01/01/2022 | Cmt | 2021/52 |
8189 | 01/02/2022 | Paz | 2021/53 |
8190 | 01/03/2022 | Pzt | 2021/53 |
8191 | 01/04/2022 | Sal | 2021/53 |
8192 | 01/05/2022 | Çar | 2021/53 |
8193 | 01/06/2022 | Per | 2021/53 |
8194 | 01/07/2022 | Cum | 2021/53 |
8195 | 01/08/2022 | Cmt | 2022/01 |
8196 | 01/09/2022 | Paz | 2022/02 |
8197 | 01/10/2022 | Pzt | 2022/02 |
8198 | 01/11/2022 | Sal | 2022/02 |
8199 | 01/12/2022 | Çar | 2022/02 |
8200 | 01/13/2022 | Per | 2022/02 |
8201 | 01/14/2022 | Cum | 2022/02 |
weekname() fonksiyonunda kaydırma bağımsız değişkeni period_no için -1 kullanıldığından, fonksiyon önce işlemlerin yapıldığı haftayı belirler. Sonra bir önceki haftaya bakar ve o haftanın ilk milisaniyesini belirler.
8192 numaralı işlem 5 Ocak 2022'de yapılmıştır. weekname() fonksiyonu bir hafta öncesine; 30 Aralık 2021'e bakar ve o tarihin hafta numarasını ve yılını döndürür – 2021/53.
Örnek 3 – first_week_day
Genel bakış
Birinci örnekteki veri kümesi ve senaryo kullanılır.
Ancak bu örnekte şirket politikası çalışma haftasının Salı günü başlamasıdır.
Veri yükleme düzenleyicisi bölümünü açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Komut dosyası
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekday(date) as week_day,
weekname(date,0,1) 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
id | date | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Pzt | 2021/52 |
8184 | 12/28/2021 | Sal | 2021/53 |
8185 | 12/29/2021 | Çar | 2021/53 |
8186 | 12/30/2021 | Per | 2021/53 |
8187 | 12/31/2021 | Cum | 2021/53 |
8188 | 01/01/2022 | Cmt | 2022/01 |
8189 | 01/02/2022 | Paz | 2022/01 |
8190 | 01/03/2022 | Pzt | 2022/01 |
8191 | 01/04/2022 | Sal | 2022/02 |
8192 | 01/05/2022 | Çar | 2022/02 |
8193 | 01/06/2022 | Per | 2022/02 |
8194 | 01/07/2022 | Cum | 2022/02 |
8195 | 01/08/2022 | Cmt | 2022/02 |
8196 | 01/09/2022 | Paz | 2022/02 |
8197 | 01/10/2022 | Pzt | 2022/02 |
8198 | 01/11/2022 | Sal | 2022/03 |
8199 | 01/12/2022 | Çar | 2022/03 |
8200 | 01/13/2022 | Per | 2022/03 |
8201 | 01/14/2022 | Cum | 2022/03 |
weekname() fonksiyonunda first_week_date bağımsız değişkeni için 1 kullanıldığından, fonksiyon Salı'yı haftanın ilk günü olarak kullanır. Fonksiyon bu nedenle 2021'in 53. haftasının 28 Aralık Salı günü başladığını belirler ve uygulamanın bölünmüş haftalar kullanması nedeniyle 1. hafta 1 Ocak 2022'de başlar ve 3 Ocak 2022 Pazartesi gününün son milisaniyesinde biter.
8192 numaralı işlem 5 Ocak 2022'de yapılmıştır. Bu nedenle first_week_day parametresi olarak Salı kullanıldığında weekname() fonksiyonu "week_number" alanı için 2022/02 döndürür.
Ö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. İşlemlerin yapıldığı haftanın yıl numarasını döndüren hesaplama, uygulamanın bir grafik nesnesinde bir hesaplama olarak oluşturulur.
Komut dosyası
SET BrokenWeeks=1;
Transactions:
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 (date)
Bir işlemin yapıldığı haftanın başlangıcını hesaplamak için şu hesaplamayı oluşturun:
=weekname(date)
id | tarih | =weekday(date) | =weekname(date) |
---|---|---|---|
8183 | 12/27/2021 | Pzt | 2021/53 |
8184 | 12/28/2021 | Sal | 2021/53 |
8185 | 12/29/2021 | Çar | 2021/53 |
8186 | 12/30/2021 | Per | 2021/53 |
8187 | 12/31/2021 | Cum | 2021/53 |
8188 | 01/01/2022 | Cmt | 2022/01 |
8189 | 01/02/2022 | Paz | 2022/02 |
8190 | 01/03/2022 | Pzt | 2022/02 |
8191 | 01/04/2022 | Sal | 2022/02 |
8192 | 01/05/2022 | Çar | 2022/02 |
8193 | 01/06/2022 | Per | 2022/02 |
8194 | 01/07/2022 | Cum | 2022/02 |
8195 | 01/08/2022 | Cmt | 2022/02 |
8196 | 01/09/2022 | Paz | 2022/03 |
8197 | 01/10/2022 | Pzt | 2022/03 |
8198 | 01/11/2022 | Sal | 2022/03 |
8199 | 01/12/2022 | Çar | 2022/03 |
8200 | 01/13/2022 | Per | 2022/03 |
8201 | 01/14/2022 | Cum | 2022/03 |
"week_number" alanı, weekname() fonksiyonu kullanılarak ve tarih alanı fonksiyonun bağımsız değişkeni olarak geçilerek grafik nesnesinde bir hesaplama olarak oluşturulur.
weekname() fonksiyonu, ilk önce tarihin içinde kaldığı haftayı tanımlar ve hafta numarası sayısını ve işlemin yapıldığı yılı döndürür.
FirstWeekDay sistem değişkeni haftanın ilk günü olarak Pazar'ı ayarlar. BrokenWeeks sistem değişkeni uygulamayı bölünmüş haftalar kullanmaya ayarlar; yani 1. hafta 1 Ocak'ta başlar.
Uygulama bölünmüş haftalar kullandığı ve haftanın ilk günü Pazar olduğu için 2 Ocak ile 8 Ocak arasında yapılan işlemler 2022'de 2. hafta olan 2022/02 değerini döndürür. 8192 numaralı işlemin 5 Ocak'ta yapıldığına ve "week_number" alanı için 2022/02 değerini döndürdüğüne dikkat edin.
Ö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:
-
2019'un son haftası ve 2020'nin ilk iki haftası için işlemler içeren bir veri kümesi "Transactions" adlı tabloya yüklenir.
-
0 olarak ayarlanan BrokenWeeks sistem değişkeni.
-
2 olarak ayarlanan ReferenceDay sistem değişkeni.
-
MM/DD/YYYY biçimine ayarlanan DateFormat sistem değişkeni.
Komut dosyası
SET BrokenWeeks=0;
SET ReferenceDay=2;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8183,12/27/2019,58.27
8184,12/28/2019,67.42
8185,12/29/2019,23.80
8186,12/30/2019,82.06
8187,12/31/2019,40.56
8188,01/01/2020,37.23
8189,01/02/2020,17.17
8190,01/03/2020,88.27
8191,01/04/2020,57.42
8192,01/05/2020,53.80
8193,01/06/2020,82.06
8194,01/07/2020,40.56
8195,01/08/2020,53.67
8196,01/09/2020,26.63
8197,01/10/2020,72.48
8198,01/11/2020,18.37
8199,01/12/2020,45.26
8200,01/13/2020,58.23
8201,01/14/2020,18.52
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun.
Şu ifadeyi kullanarak hesaplanan bir boyut oluşturun:
=weekname(date)
Toplam satışları hesaplamak için şu toplama hesaplamasını oluşturun:
=sum(amount)
Hesaplamanın Sayı Biçimlendirmesini Para olarak ayarlayın.
weekname(date) | =sum(amount) |
---|---|
2019/52 | $125.69 |
2020/01 | $346.51 |
2020/02 | $347.57 |
2020/03 | $122.01 |
Bu senaryoda weekname() fonksiyonunu kullanmanın sonuçlarını göstermek için şu alanı bir boyut olarak ekleyin:
date
weekname(date) | tarih | =sum(amount) |
---|---|---|
2019/52 | 12/27/2019 | $58.27 |
2019/52 | 12/28/2019 | $67.42 |
2020/01 | 12/29/2019 | $23.80 |
2020/01 | 12/30/2019 | $82.06 |
2020/01 | 12/31/2019 | $40.56 |
2020/01 | 01/01/2020 | $37.23 |
2020/01 | 01/02/2020 | $17.17 |
2020/01 | 01/03/2020 | $88.27 |
2020/01 | 01/04/2020 | $57.42 |
2020/02 | 01/05/2020 | $53.80 |
2020/02 | 01/06/2020 | $82.06 |
2020/02 | 01/07/2020 | $40.56 |
2020/02 | 01/08/2020 | $53.67 |
2020/02 | 01/09/2020 | $26.63 |
2020/02 | 01/10/2020 | $72.48 |
2020/02 | 01/11/2020 | $18.37 |
2020/03 | 01/12/2020 | $45.26 |
2020/03 | 01/13/2020 | $58.23 |
2020/03 | 01/14/2020 | $18.52 |
Uygulama bölünmemiş haftalar kullandığı ve ReferenceDay sistem değişkeni nedeniyle 1. hafta en az iki gün gerektirdiği için 2020'nin 1. haftası 29 Aralık 2019'dan işlemler içerir.