lunarweekname - kod ve grafik fonksiyonu
Bu fonksiyon, date içeren ay haftasının ilk gününün ilk milisaniyesinin zaman damgasına karşılık gelen yıl ve ay haftası numarasını gösteren bir görüntü değeri döndürür. Qlik Sense için ay haftaları 1 Ocak haftanın ilk günü olarak tanımlanır ve yılın son haftası dışında tam olarak yedi gün içerirler.
Söz Dizimi:
LunarWeekName(date [, period_no[, first_week_day]])
Dönüş verileri türü: dual
lunarweekname() fonksiyonu, hafta sayısını 1 Ocak'tan başlatarak tarihin hangi ay yılı haftasının içinde bulunduğunu belirler. Ardından year/weekcount içeren bir değer döndürür.
Bağımsız Değişken | Açıklama |
---|---|
date | Değerlendirilecek tarih veya zaman damgası. |
period_no | period_no, tamsayıya çözümlenen bir tamsayı veya ifade olup, burada 0 değeri date içeren ay haftasını belirtir. period_no içindeki negatif değerler önceki ay haftalarını; pozitif değerler ise sonraki ay haftalarını gösterir. |
first_week_day | Kaydırma değeri sıfırdan büyük ya da küçük olabilir. Bu değer, belirtilen gün sayısı ve/veya bir günün kesirleri ile yılın başını değiştirir. |
Ne zaman kullanılır?
lunarweekname() fonksiyonu, ay yılı haftalarına göre toplamaları karşılaştırmak istediğinizde yararlıdır. Örneğin ay yılı haftasına göre ürünlerin toplam satışlarını belirlemek için bu fonksiyon kullanılabilir. Ay yılı haftaları, yılın ilk haftasına ait tüm değerlerin yalnızca en erken 1 Ocak'tan başlayan değerler olduğundan emin olmak istediğinizde yararlıdır.
Bu boyutlar, Ana Takvim tablosunda bir alan oluşturmak için fonksiyon kullanılarak komut dosyasında oluşturulabilir. Ayrıca işlev doğrudan bir grafiğin içinde hesaplanan boyut olarak da kullanılabilir.
Örnek | Sonuç |
---|---|
lunarweekname('01/12/2013') | 2006/02 döndürür. |
lunarweekname('01/12/2013', -1) | 2006/01 döndürür. |
lunarweekname('01/12/2013', 0, 1) | 2006/02 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 – 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ı 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 ay yılı haftasının yılını ve hafta numarasını döndüren lunar_week_name alanını oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date) as lunar_week_name
;
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
-
lunar_week_name
tarih | lunar_week_name |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/06 |
2/28/2022 | 2022/09 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/19 |
5/16/2022 | 2022/20 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/26 |
7/9/2022 | 2022/28 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/30 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/31 |
8/8/2022 | 2022/32 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/39 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/44 |
lunar_week_name alanı, önceki LOAD deyiminde lunarweekname() fonksiyonu kullanılarak ve date alanı fonksiyona bağımsız değişken olarak geçilerek oluşturulur.
lunarweekname() fonksiyonu, tarih değerinin içinde bulunduğu ay yılı haftasını belirler ve söz konusu tarihin yılını ve hafta numarasını döndürür.
8189 numaralı İşlem 19 Ocak'ta gerçekleşmiştir. lunarweekname() fonksiyonu bu tarihin 15 Ocak'ta başlayan ay yılı haftasının içinde bulunduğunu belirler; bu, yılın üçüncü ay yılı haftasıdır. Bu nedenle, bu işlem için döndürülen lunar_week_name değeri 2022/03'tür.
Örnek 2 – period_no bağımsız değişkeniyle 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:
-
İlk örnek ile aynı veri kümesi ve senaryo.
-
İşlemlerin gerçekleştiği ay yılı haftasından bir önceki ay yılı haftasının yılını ve hafta numarasını döndüren previous_lunar_week_name alanını oluşturma.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date,-1) as previous_lunar_week_name
;
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_lunar_week_name
tarih | previous_lunar_week_name |
---|---|
1/7/2022 | 2021/52 |
1/19/2022 | 2022/02 |
2/5/2022 | 2022/05 |
2/28/2022 | 2022/08 |
3/16/2022 | 2022/10 |
4/1/2022 | 2022/12 |
5/7/2022 | 2022/18 |
5/16/2022 | 2022/19 |
6/15/2022 | 2022/23 |
6/26/2022 | 2022/25 |
7/9/2022 | 2022/27 |
7/22/2022 | 2022/28 |
7/23/2022 | 2022/29 |
7/27/2022 | 2022/29 |
8/2/2022 | 2022/30 |
8/8/2022 | 2022/31 |
8/19/2022 | 2022/32 |
9/26/2022 | 2022/38 |
10/14/2022 | 2022/40 |
10/29/2022 | 2022/43 |
Bu örnekte lunarweekname() 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 ay yılı haftasını belirler. Ardından bir önceki haftanın yılını ve hafta numarasını döndürür.
8189 numaralı İşlem 19 Ocak'ta gerçekleşmiştir. lunarweekname() fonksiyonu, bu işlemin yılın üçüncü ay yılı haftasında gerçekleştiğini belirler ve dolayısıyla previous_lunar_week_name alanı için yılı ve bir önceki haftayı gösteren 2022/02 sonucunu döndürür.
Örnek 3 – first_week_day bağımsız değişkeniyle tarih
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 ay yılı haftalarını 5 Ocak'ta başlayacak şekilde ayarladık.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date,0,4) as lunar_week_name
;
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
-
lunar_week_name
tarih | lunar_week_name |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/05 |
2/28/2022 | 2022/08 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/18 |
5/16/2022 | 2022/19 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/25 |
7/9/2022 | 2022/27 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/29 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/30 |
8/8/2022 | 2022/31 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/38 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/43 |
Bu durumda, lunarweekname() fonksiyonunda first_week_date bağımsız değişkeni olarak 4 kullanıldığından ay yılı haftalarının başlangıcı 1 Ocak'tan 5 Ocak'a kaydırılır.
8188 numaralı İşlem 7 Ocak'ta gerçekleşmiştir. Ay yılı haftaları 5 Ocak'ta başladığından, lunarweekname() fonksiyonu 7 Ocak'ı içeren ay yılı haftasının yılın ilk ay yılı haftası olduğunu belirler. Bu nedenle söz konusu işlem için döndürülen lunar_week_name değeri 2022/01'dir.
Ö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. İşlemlerin gerçekleştiği ay yılı hafta numarasını ve yılı 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 ay yılı haftasının başlangıç tarihini hesaplamak için şu hesaplamayı oluşturun:
=lunarweekname(date)
tarih | =lunarweekname(date) |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/06 |
2/28/2022 | 2022/09 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/19 |
5/16/2022 | 2022/20 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/26 |
7/9/2022 | 2022/28 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/30 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/31 |
8/8/2022 | 2022/32 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/39 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/44 |
lunar_week_name hesaplaması, grafik nesnesinde lunarweekname() fonksiyonu kullanılarak ve date alanı fonksiyonun bağımsız değişkeni olarak geçilerek oluşturulur.
lunarweekname() fonksiyonu, tarih değerinin içinde bulunduğu ay yılı haftasını belirler ve söz konusu tarihin yılını ve hafta numarasını döndürür.
8189 numaralı İşlem 19 Ocak'ta gerçekleşmiştir. lunarweekname() fonksiyonu bu tarihin 15 Ocak'ta başlayan ay yılı haftasının içinde bulunduğunu belirler; bu, yılın üçüncü ay yılı haftasıdır. Bu nedenle, söz konusu işlem için lunar_week_name değeri 2022/03'tü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:
-
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.
Son kullanıcı, haftaya göre geçerli yılın toplam satışlarını temsil eden bir grafik nesnesi istemektedir. Yedi günden oluşan 1. Hafta 1 Ocak'ta başlamalıdır. Veri modelinde bu boyut kullanılamıyor olsa bile, grafikte hesaplanan boyut olarak lunarweekname() fonksiyonunun kullanılmasıyla bu elde edilebilir.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
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
Aşağıdakileri yapın:
-
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun.
-
Şu ifadeyi kullanarak hesaplanan bir boyut oluşturun:
=lunarweekname(date)
-
Aşağıdaki toplama hesaplamasını kullanarak toplam satışları hesaplayın:
=sum(amount)
-
Hesaplamanın Sayı Biçimini Para olarak ayarlayın.
=lunarweekname(date) | =sum(amount) |
---|---|
2022/01 | $17.17 |
2022/03 | $37.23 |
2022/06 | $57.42 |
2022/09 | $88.27 |
2022/11 | $53.80 |
2022/13 | $82.06 |
2022/19 | $40.39 |
2022/20 | $87.21 |
2022/24 | $95.93 |
2022/26 | $45.89 |
2022/28 | $36.23 |
2022/29 | $25.66 |
2022/30 | $152.75 |
2022/31 | $76.11 |
2022/32 | $25.12 |
2022/33 | $46.23 |
2022/39 | $84.21 |
2022/41 | $96.24 |
2022/44 | $67.67 |