Tarix Cədvəli (Date Table)

Qiymətləndirmə kontekstləri,filter və sətir kontekstləri, CALCULATE funksiyası, onların birlikdə necə çalışmaları haqqıdan bütün nəzəriyyələrdən sonra, bu anlayışları yararlı birşeylər üçün istifadə etməyin zamanı gəlib çatdı. Bunu etmək üçün DAX ilə Zaman Zəkası – Time İntelligence haqqında yazacağıq.

Ümumiyyətlə DAX dilinin hansısa bir zaman hesablaması aparmaq üçün bir təqvim cədvəlinə ehtiyacı vardır. Əks təqdirdə, satışlarınızı il və ya aya görə ayırmaq kimi sadə əməliyyatlar etmək çox mürəkkəb hala gələcəkdir.İndi isə Power BI-ı açaq və zamanla bağlı hesablamalar edək.

Yeni bir matriks əlavə edək və Sales cədvəlindəki Order Date və Line Margin-i ora əlavə edək:

Şəkildən göründüyü kimi Order Date və Line Margin vardır. Lakin bu, dataları gün səviyyəsində dilimlədiyi üçün istifadə baxımından əlverişli sayılmır. Çünki bunları il və ya rübə görə toplamaq istəyirik.

Digər tərəfdən belə bir sual meydana çıxa bilər ki – “nə üçün bir tarix cədvəli yaradaq ki, onsuzda Power BI-da il/ay yaratmaq üçün avtomatik bir yol var?!”

Eynən, biz ilk növbədə  File / Options / Settings / Data Load daxil olaraq Auto Date / Time aktivləşdirməliyik. Sonra isə Order Date-i silib yenidən matriksə əlavə etdikdə aşağıdakı görüntü yaranacaqdır:

Təbii ki,ona detallı şəkildə,yəni-rüb,ay və günlərə də baxa bilərik. Beləliklə, bütün bu xüsusiyyətləri özündə cəmləşdirən gizli bir cədvəl yaratdı və dilimi il / rüb / ay və günə görə etməyə imkan verdi.

Burada problem budur ki – yalnız bu xüsusiyyətlərə etibar etsəniz, unikal bir təqvim cədvəliniz olmaz. Başqa sözlə, əgər modeldə yalnız bir sütun və tarix sütunu olan yalnız bir cədvəl varsa, yenə də istifadə edə bilərəm – məsələn, buraya daxil olmayan həftə kimi digər sütunları yaratmaq istəmirəmsə – amma birdən çox cədvəldə tarixləri olan birdən çox sütundan istifadə etmək istəyiriksə buna etibar edə bilmərik.Yəni DAX dili ilə ciddi hesablamalar aparmaq üçün yetərli deyildir.

Buna görə də bu özəllikdən qaçmaq məqsədə uyğundur. Bunun üçün isə Auto Date / Time deaktiv edirik. Yeni bir tarix cədvəli yaratmaq üçün New Table –Yeni Cədvəl klik edirik. Sonra isə CALENDARAUTO funksiyasından istifadə edərək onu yarada bilərik:

Sonra Enter klik edək və cədvəl görünüşünə daxil olaq:

Burada CALENDARAUTO funksiyasının nəticəsinin sadəcə tarixləri ehtiva edən bir cədvəl olduğunu görmüş oluruq.Daha sonra isə ay/il və ya başqa şəkildə dilimləmək istəsək sütun əlavə etmək lazım gələcək.

Digər tərəfdən şəkilə diqqət etdikdə tarixin 1910-cu ildən başladığını müşahidə edirik.Bunun səbəbi CALENDARAUTO-nun modeldə olan bütün tarixləri araşdırması və bütün modeldə minimum və maksimum tarixi tapmasıdır.Görünən odur ki,Customer cədvəlində bəzi müştərilərin doğum tarixi 1910-cu il olduğu üçün bu funksiya tarixə məhz 1910-cu ildən başlamağa qərar verdi.

Göründüyü kimi CALENDARAUTO hər şeyi avtomatik olaraq edir.Lakin bu bizim üçün birqədər çox avtomatikdir.Bu səbəbdən də yeni bir funksiyaya nəzər salacağıq.Bu funksiya CALENDAR olacaqdır.

Kod üzrində CALENDARAUTONU – CALENDAR ilə əvəz etdikdə funksiya bizdən başlanğıc və son tarixi istəyəcəkdir.Biz isə,minimum sales order datemaksimum sales order date istifadə edə bilərik.Həmçinin tarixin 1 yanvar – 31 dekabr arasında olmasını istədiyimiz üçün kodu bir qədər də qarışıq hala gətirəcəyik:

Enter klik etdikdə isə tarix 1yanvar 2007-dən başlayıb 31 dekabr 2009-a qədər davam edcəkdir:

Bu,doğru şəkildə çalışan və hesablamaları düzgün yaratmağa icazə verəcək bir təqvim cədvəlidir.Lakin yalnız tarix varsa bu yetərli deyildir.Beləliklə bir neçə sütun əlavə edə bilərik.Məsələn yeni sütun klik edib illəri əlavə edə bilərik:

Ay üçün də eyni şeyi edə bilərik:

Göründüyü kimi ayların nömrəsi əlavə edildi.Ayların adlarını görmək üçün onu formatlamaq lazımdır:

Nəticədə ilk təqvim olan cədvəli yaratmış olduq.Bu olduqca sadə prosesdir. Cədvəlin özünüz tərəfindən yaradılmasının yaxşı üstünlüyü ondadır ki, həftələr əlavə edə bilərsiniz, başqa atributlar əlavə etmək istəyə bilərsiniz. Cədvəl sizin olduğuna görə, onu faydalı xüsusiyyətlərlə zənginləşdirmək üçün lazım olan hər şeyi edə bilərsiniz.

Ümumiyyətlə ay nömrəsini yaratmağımızla bağlı sual ortaya çıxa bilər.Onu yaratmağımızın əsas səbəbi məhz yeni bir matriksə Year,MonthLine Margini əlavə etdikdə ortaya çıxır:

Göründüyü kimi Power BI ay adlarını əlifba sırası ilə qəbul edir.Bu səbəbdən də biz ayın nömrələrini sıralayaraq bu problemi həll edirik.Bunun üçün cədvəl görünüşünə daxil olub Month sütunu üzərində klik edərək Sort by Columns seçənəyindən Month number seçirik.Yəni ay adlarını nömrələrinə görə sırala:

Sonra hesabat səhifəsinə qayıtdıqda ayların düzgün sıralandığını görəcəyik:

Ay adları sıralansa da başqa bir çatışmazlıq ortaya çıxmış oldu.Gördüyünüz kimi Line Margində nəticələr hamsı eynidir.Bunun səbəbi nədədir?Çox sadə.Biz yeni tarix cədvəli yaratdıq,lakin onu modulda digər cədvəl ilə əlaqələndirməmişik.Buna görə də modul görünüşünə gedib yeni cədvəl ilə Sales cədvəli arasında əlaqəni təmin edək:

Əlaqəni təmin etdikdən sonra hər ayın öz satışları qarşısında yazılacaqdır:

Bu səbəbdən də bir təqvim cədvəli yaratmaq bir neçə addımdan ibarətdir:

1.Çox sürətli alınır ;

2.Standart özəlliklərdənsə daha çox güvən aşılayır.

Zaman zəkası etmək üçün bir tarix cədvəli mütləq olmalıdır. Bunlar cədvəldə göstərilməli olan xüsusiyyətlərdir:

  • Bütün tarixlər 1 yanvar tarixindən 31 dekabradək olmalıdır;
  • Heç bir boşluq olmamalıdır;
  • Əgər cədvəli düzgün bir şəkildə qura bilmirsinizsə, əsasən Zaman zəkası hesablaması gözlənilməz nəticələr verəcəkdir.

Cədvəlin sərhədlərini göstərərək CALENDAR funksiyasından istifadə edə bilərsiniz:

Həmçinin CALENDARAUTO-dan da istifadə etmək olar. Sadəcə o hərşeyi avtomatik etdiyi üçün bir qədər faydasızdır.  Kodlaşdırma baxımından CALENDAR  və CALENDARAUTO arasındakı fərq çox kiçikdir. Ona görə də CALENDARAUTO-dan ümumiyyətlə istifadə etməyə dəyməz.Çünki  CALENDARAUTO cədvəlinizdəki bütün tarixləri istifadə edir.

Nəhayət, təqvim cədvəlinizi yaratdıqdan sonra çeşidləmə seçimlərini düzgün şəkildə təyin etməyinizi unutmayın.Beləliklə, ayın adı ayın nömrəsinə görə sıralanmalıdır.

Təqvim cədvəlinə əlavə etdiyiniz bütün sütunları düzgün şəkildə sıralamaq lazımdır.Cədvəl yerində olduqdan sonra Time Intelligence hesablamalarını qurmağa başlaya bilərik.

Default image
Emin Məhərrəmli
Articles: 46

Leave a Reply