Exceldə bu həftə və keçən həftəki satışların hesablanması.
DAX-ın (Data Analysis Expressions – Power Pivot, Power BI və SQL Server Analysis Services (SSAS) tabular modellərinin formul və sorğu dilidir, öncədən müəyyən edilmiş hazır formullardır (funksiyalar)) ən ciddi xüsusiyyətlərindən biri zamana indeksli saysız funksiyası olmasındadır. İstər bu günün, istərsə də keçən ayın, kvartalın və ya ilin eyni dövrünün müqayisəsi sadə formullarla mümkündür. Lakin əsas çatışmayan cəhət – həftə indeksli müqayisələrin hazır funksiyalarının olmamasıdır. Bunu aşmanın, əlbəttə ki, yolları mövcuddur və bu mövzuda məhz həftəlik müqayisələrin aparılmasını müzakirə etmişik. İstifadə edəcəyimiz InputTable adlı sadə cədvəlimiz aşağıdakı kimidir:
Əvvəlcə, Excel faylımızı yükləyək:
Yükləyin: Həftəlik satış məlumatları (Weekly sales data)
Endirdiyimiz Excel faylımızı Power BI Desktop-a atırıq (Home >> External Data >> Get Data >> Excel)
Təqvim Cədvəlinin qurulması
Əməliyyatlara başlamadan öncə, Təqvim formatlı yeni bir cədvəl qururuq. Bunun üçün, Modeling >> New Table ünvanına gedib, formul çubuğunda CALENDAR funksiyasından istifadə etməklə, əlavə etdiyimiz InputTable adlı cədvəlimizdəki ən kiçik tarixlə ən böyük tarix arasındakı bütün tarixlərdən əmələ gələn yeni Calendar adlı cədvəl qururuq.
Bunun nəticəsində təqvim cədvəli bu 2 tarix arasındakı bütün tarixlər sıralı şəkildə avtomatik formalaşacaqdır.
Relationships blokuna gedib, InputTable ilə Calendar cədvəlləri arasında Date üzərindən əlaqəni qururuq.
İlk measure-ımız olan Total Units Sold yazırıq:
Növbədə, bu həftənin satışlarını hesablayacaq DAX formulu var.
Bu həftəki satışların hesablanması
Əvvəlcədən deyim ki, bunun həll yolu sadə olmamaqla bərabər, məntiqi çox bəsitdir. Bu həftədəki hər bir tarixi “aktivləşdirmək” üçün hansı alqoritm gərəklidir?
- Hər bir tarixin ilin neçənci həftəsi olduğunu müəyyən etmək (WEEKNUM funksiyası ilə).
- Birdən çox il olması ehtimalına qarşı, hər bir tarixin bu ilə aid olmasını təmin etmək (YEAR funksiyası ilə) .
- Yuxarıdakı 2 kriteriyanı BU GÜNÜN müvafiq dəyərləri ilə müqayisə etmək (TODAY funksiyası ilə) .
Qısacası, hər hansı bir tarixin həftə nömrəsi və ili bu günün müvafiq dəyərləri ilə üst-üstə düşürsə, deməli bəhsi keçən tarix – bu həftəyə aid tarixdir.
Bu məntiqi ardıcıllığı müəyyən etdikdən sonra, gəlin, DAX formulumuzun nəyə bənzədiyinə baxaq:
Gəlin, formulun komponentlərinə baxaq:
CALCULATE funksiyası
CALCULATE funksiyası ilə, measure seçilir, bizim misalımızda bu, Total Units Sold-dur. Və arxasından da bu measure hansı kriteriyalar ilə filterlənəcək, onu müəyyənləşdiririk.
FILTER funksiyası
Yuxarıdakı DAX formulun 4-cü sətirinə diqqək etsək, FILTER funksiyası, Calendar cədvəlindəki həftə nömrəsi cari günün həftə nömrəsinə bərabər olan sətirləri aktivləşdirməyə yarayır.
5-ci sətir isə, ili cari günün ilinə bərabər olan sətirləri diqqətə alacağını göstərir.
Hər iki kriteriya CALCULATE funksiyasının tərkibində olduğu üçün, AND funksiyasının xüsusiyyətlərini daşıyır və yalnız hər iki kriteriyanın eyni anda təmin edildiyi sətirlərin aktivləşdirilməsinə səbəb olur.
Keçən həftəki satışların hesablanması
Hər hansı bir ciddi məntiq dəyişikliyinə getmədən, yuxarıdakı DAX formulunda çox kiçik bir dəyişiklik etməklə, keçən həftənin satışlarını hesablaya bilərik. Bu dəfə, həftə nömrəsi olaraq “bu həftə minus 1” olaraq nəzərə almalıyıq.
Görürük ki, əvvəlki formulla müqayisədə, burdakı yeganə dəyişiklik 7-ci sətirdə yer almışdır.
Gəlin, hər iki measure-ı Matrix Reportuna əlavə edib analizimizə davam edək.
Orijinal cədvəlimizdəki məlumatlarla (sarı rəng – keçən həftə, göy rəng – bu həftə) müqayisə etsək, formulların düzgün işlədiyindən əmin ola bilərik:
Lakin, analizin güvənilirliyi baxımından burda çox vacib bir nyuans şüurlu olaraq gözdən qaçırılıb. Məsələ burasındadır ki, bu həftənin 3 günü ilə keçən həftənin 7 günü müqayisə edilmişdir. Bu isə, çox da korrekt bir yanaşma deyil. Əvəzində, biz bu həftədəki günlər qədər keçən həftə satışlarını hesablayan formul yazmalıyıq. Və bu, elə bir formul olmalıdır ki, həftə irəlilədikcə, keçən həftədəki əhatə olunan günlər də dinamik olaraq artsın.
Keçən həftənin eyni gününə qədər olan satışların hesablanması
Bu dəfəki measure (Previous WTD Sales adlı) digərlərindən daha uzundur, lakin bu, sizi qorxutmasın, çünki bir əvvəlki formula sadəcə tək bir sətir əlavə edilib.
Əlavə edilən tək sətir – WEEKDAY funksiyasının içində olduğu əlavə FILTER funksiyasıdır.
Bu yeni kriteriya ilə deyirik ki, həftənin günü bu günün həftə günündən kiçik və ya bərabər olan bütün sətirlər filterə daxil edilsin. Yəni, bu gün həftənin 3-cü günüdürsə, o zaman keçən həftəyə aid 1,2 və 3-cü günlər daxil edilsin ancaq.
Əlavə etdiyimiz bu yeni kriteriya, digər 2 kriteriya ilə bərabər (il kriteriyası və həftə nömrəsi kriteriyası) bizə lazım olan doğru rəqəmləri verəcəkdir. Gəlin, yeni yazdığımız formulu Power BI-a əlavə edək.
Beləliklə, daha korrekt müqayisə ortamı yaradılmışdır. Artıq, 2 measure arasındakı nisbi fərqi də rahatlıqla hesablaya bilərik.
Yeni measure-ı Matrix cədvələ əlavə edərək, dəyişimin nisbi faizini də hesablamış oluruq.