makeweekdate() fonksiyonu hem kod hem de grafik fonksiyonu olarak kullanılabilir. Fonksiyon, kendisine geçirilen parametrelere dayanarak tarihi hesaplar.
Bağımsız Değişkenler
Bağımsız Değişken
Açıklama
weekyear
Belirli bir tarih için WeekYear() fonksiyonu ile tanımlanan yıl, hafta numarasının ait olduğu yıldır.
Bilgi notuHafta yılı bazı durumlarda (ör. 1. hafta, önceki yılın aralık ayından başladığında) takvim yılından farklı olabilir.
week
Belirli bir tarih için Week() fonksiyonu ile tanımlanan hafta numarasıdır.
Hafta numarası belirtilmezse bu değer 1 olarak kabul edilir.
weekday
Söz konusu tarih için WeekDay() fonksiyonu ile tanımlanan haftanın günüdür. 0 haftanın ilk günü, 6 ise haftanın son günüdür.
Haftanın günü belirtilmezse bu değer 0 olarak kabul edilir.
Bilgi notu0, her zaman haftanın ilk günü; 6, her zaman haftanın son günüdür. Haftanın hangi gününe karşılık geldiği first_week_day parametresi ile belirlenir. Atlandığı takdirde, FirstWeekDaydeğişkeninin değeri kullanılır.
Parçalanmış haftalar, birleştirilmesi mümkün olmayan parametrelerle birlikte kullanılırsa bu, seçilen yıla ait olmayan bir sonuç ortaya çıkarabilir.
Örnek:
MakeWeekDate(2021,1,0,6,1)
Bu gün, belirtilen haftanın ilk günü (Pazar) olduğundan "27 Aralık 2020" sonucu döndürülür. 1 Ocak 2021 tarihi, Cuma günüydü.
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 parametresi belirtilmezse haftaların parçalanmış olup olmadığını belirlemek için BrokenWeeks değişkeninin değeri kullanılır.
Sistem değişkeni hakkında daha fazla bilgi için bkz. BrokenWeeks.
reference_day
reference_day parametresi belirtilmezse 1. haftayı tanımlamak üzere referans gün olarak Ocak ayındaki hangi günün ayarlanacağını belirlemek için ReferenceDay kullanılır.
Sistem değişkeni hakkında daha fazla bilgi için bkz. ReferenceDay.
Ne zaman kullanılır?
makeweekdate() fonksiyonu kodda genel olarak tarih listesi oluşturmak veya giriş verilerinde yıl, hafta ve haftanın günü bilgileri sağlandığında tarihleri oluşturmak üzere veri oluştururken kullanılabilir.
Aşağıdaki örneklerde varsayılanlar:
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Fonksiyon örnekleri
Örnek
Sonuç
makeweekdate(2014,6,6)
şunu döndürür: 02/09/2014
makeweekdate(2014,6,1)
şunu döndürür: 02/04/2014
makeweekdate(2014,6)
02/03/2014 döndürür (haftanın 0. günü olduğu varsayılı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. Daha fazla bilgi için bkz. Uygulamalar ve komut dosyaları için bölgesel ayarları değiştirme.
Uygulamalardaki varsayılan bölgesel ayarlarda kullanıcı profili temel alınır. Bu bölgesel format ayarları, Qlik Cloud kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Cloud, kullandığınız tarayıcıyla aynı dilde görüntülenir.
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
Sales adlı tabloda 2022'nin haftalık satış toplamını içeren bir veri kümesi.
Üç alanda sağlanan işlem tarihleri: year, week ve sales.
İlgili haftanın Cuma gününün tarihini AA/GG/YYYY biçiminde döndürmek için makeweekdate() fonksiyonunun kullanıldığı end_of_weekölçümünü oluşturmak için kullanılan önceki bir yükleme.
Döndürülen tarihin Cuma günü olduğunu kanıtlamak için weekday() fonksiyonunun içine end_of_week ifadesi de yerleştirilerek haftanın günü gösterilir.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
transaction_year
transaction_week
end_of_week
week_day
Sonuçlar tablosu
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Cum
2022
02
01/14/2022
Cum
2022
03
01/21/2022
Cum
2022
04
01/28/2022
Cum
2022
05
02/04/2022
Cum
2022
06
02/11/2022
Cum
2022
07
02/18/2022
Cum
"end_of_week" alanı, önceki LOAD deyiminde makeweekdate() fonksiyonu kullanılarak oluşturulur. Fonksiyonda yıl ve hafta bağımsız değişkenleri olarak transaction_year, transaction_week alanları geçirilir. Gün bağımsız değişkeni için 4 değeri kullanılır.
Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları DateFormat sistem değişkeninin biçiminde döndürür.
week_day alanını döndürmek için makeweekdate() fonksiyonu ile bağımsız değişkenleri de bir weekday() fonksiyonunun içine yerleştirilir; yukarıdaki tabloda görülebileceği gibi, week_day alanı bu tarihlerin gerçekten Cuma gününe denk geldiğini gösterir.
Örnek 2 – gün hariç
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:
Sales adlı tabloda 2022'nin haftalık satış toplamlarını içeren bir veri kümesi.
Üç alanda sağlanan işlem tarihleri: year, week ve sales.
makeweekdate() fonksiyonu kullanılarak first_day_of_week hesaplamasını oluşturmak için kullanılan önceki bir yükleme. Bu, söz konusu haftanın Pazartesi gününün tarihini AA/GG/YYYY biçiminde döndürür.
Döndürülen tarihin Pazartesi günü olduğunu kanıtlamak için weekday() fonksiyonunun içine first_day_of_week ifadesi de yerleştirilerek haftanın günü gösterilir.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
transaction_year
transaction_week
first_day_of_week
week_day
Sonuçlar tablosu
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Pzt
2022
02
01/10/2022
Pzt
2022
03
01/17/2022
Pzt
2022
04
01/24/2022
Pzt
2022
05
01/31/2022
Pzt
2022
06
02/07/2022
Pzt
2022
07
02/14/2022
Pzt
first_day_of_week alanı, önceki LOAD deyiminde makeweekdate() fonksiyonu kullanılarak oluşturulur. transaction_year ve transaction_week parametreleri fonksiyonun bağımsız değişkenleri olarak geçirilir ve day parametresi boş bırakılır.
Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları DateFormat sistem değişkeninin biçiminde döndürür.
week_day alanını döndürmek için makeweekdate() fonksiyonu ile bağımsız değişkenleri de bir weekday() fonksiyonunun içine yerleştirilir. Yukarıdaki tabloda görüldüğü gibi, makeweekdate() fonksiyonunda söz konusu parametre boş bırakıldığından week_day alanında her seferinde Pazartesi sonucunu döndürülüyor. Bu fonksiyonun varsayılan değeri 0 (haftanın ilk günü); haftanın ilk günü ise FirstWeekDay sistem değişkeni ile Pazartesi olarak ayarlanmıştır.
Örnek 3 – Grafik nesnesi örneği
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:
Sales adlı tabloda 2022'nin haftalık satış toplamlarını içeren bir veri kümesi.
Üç alanda sağlanan işlem tarihleri: year, week ve sales.
Bu örnekte, ilk örnekteki end_of_week hesaplamasına eşdeğer bir hesaplama oluşturmak için grafik nesnesi kullanılır. Bu hesaplama, söz konusu haftanın Cuma gününün tarihini AA/GG/YYYY biçiminde döndürmek için makeweekdate() fonksiyonunu kullanır.
Döndürülen tarihin Cuma gününe denk geldiğini kanıtlamak için haftanın gününü döndürecek ikinci bir hesaplama oluşturulur.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
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:
transaction_year
transaction_week
İlk örneğin end_of_week alanındakine eşdeğer bir hesaplama gerçekleştirmek için şu hesaplamayı oluşturun:
Grafik nesnesinde makeweekdate() fonksiyonu kullanılır ve bir hesaplama olarak end_of_week ile eşdeğer bir alan oluşturulur. Yıl ve hafta bağımsız değişkenleri olarak transaction_year ve transaction_week alanları geçirilir. Gün bağımsız değişkeni için 4 değeri kullanılır.
Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları DateFormat sistem değişkeninin biçiminde döndürür.
İlk örnekteki week_day alanına eşdeğer bir hesaplama döndürmek için makeweekdate() fonksiyonu ile bağımsız değişkenleri de bir weekday() fonksiyonunun içine yerleştirilir. Yukarıdaki tabloda görülebileceği gibi, sağ taraftaki son sütun bu tarihlerin Cuma gününe denk geldiğini gösterir.
Örnek 4 – Senaryo
Genel bakış
Bu örnekte, 2022 yılının tüm Cuma günlerini içeren bir tarih listesi oluşturun.
Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.
Komut dosyası
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Sonuçlar
Sonuçlar tablosu
tarih
weekday
01/07/2022
Cum
01/14/2022
Cum
01/21/2022
Cum
01/28/2022
Cum
02/04/2022
Cum
02/11/2022
Cum
02/18/2022
Cum
02/25/2022
Cum
03/04/2022
Cum
03/11/2022
Cum
03/18/2022
Cum
03/25/2022
Cum
04/01/2022
Cum
04/08/2022
Cum
04/15/2022
Cum
04/22/2022
Cum
04/29/2022
Cum
05/06/2022
Cum
05/13/2022
Cum
05/20/2022
Cum
05/27/2022
Cum
06/03/2022
Cum
06/10/2022
Cum
06/17/2022
Cum
+ 27 satır daha
makeweekdate() fonksiyonu 2022'deki tüm Cuma günlerini bulur. Hafta parametresi olarak -2 kullanılması, hiçbir tarihin atlanmamasını sağlar. Son olarak, her date değerinin Cuma günü olduğunu gösterip netlik sağlamak için önceki bir yükleme ek bir weekday alanı oluşturur.
Bu sayfa size yardımcı oldu mu?
Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!