Power Pivot #4 – Sistemin motoru – DAX

Power Analytics

DAX (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 sadə dildə desək, Excel üçün funksiyalar nədirsə, yuxarıdakı 3 sistem üçün də DAX eynidir. 2009-cu ildə Microsoft tərəfindən yaradılmışdır. DAX dilinə ancaq funksiyalar yox, eyni zamanda riyazi əməliyyatlar və sabit dəyərlər məcmusu da daxildir. Hər bir DAX əməliyyatı 1 vəya 1-dən çox (array, list, column və s.) nəticə verə bilər.

DAX aşağıdakı 7 data növü üzrə əməliyyat apara bilir:

  1. Integer – Tam ədədlər
  2. Real / Decimal – Kəsrli ədədlər
  3. Currency – Valyuta dəyərləri
  4. Date – Tarix formatlı dəyərlər
  5. TRUE/FALSE (Boolean) – Test edildiyi zaman nəticəsi doğru və ya yanlış olan ifadələr
  6. String – Mətn
  7. BLOB (binary large object) – Tək xanada birdən çox binary data saxlaya bilən data

DAX-ı anlamaq üçün, öncə onun 3 vacib komponentini anlamalıyıq. Bunlar – Sintaksı (yazılış qaydası), FunksiyalarıKonteksti.

Sintaks

Əvvəla, bərabər işləyə bilmək üçün, faylımızı endirək (cədvəli Power Pivot-a atmağı unutmayın) – Power Pivot – Sales Data

Bütün DAX formullarının yazılış qaydasını çox sadə SUM funksiyası (measure) üzərindən anlamağa çalışacağıq:

A. Total Revenue – Measure-ın adı.

B. Power Pivot-da bütün measure-lar := işarəsi ilə yazılmalıdır.

C. SUM DAX funksiyasının adı.

D. SalesData – Cədvəlimizin adı.

E. Sales Revenue – Sütunumuzun adı.

Gördüyümüz kimi, Excel-dəki Table formatlı cədvəllər ilə ciddi şəkildə oxşardır. Bundan əlavə, sadə riyazi əməliyyat ilə də DAX yazmaq mümkündür:

Picture10.png

A. Measure-ın adı.

B. İlk cədvəl/sütunun adı

C. Vurma əməliyyatı

D. İkinci cədvəl/sütunun adı

DAX Funksiyaları

DAX-da aşağıdakı kateqoriyalı funksiyalar mövcuddur (bunların bir çoxu Excel ilə birəbir eynidir):

  1. Tarix və Saat funksiyaları
  2. Məlumat funksiyaları
  3. Məntiqi
  4. Riyazi
  5. Statistik
  6. Mətn
  7. Filterləmə və istinad
  8. Digər

DAX-da bir çox funksiya Excel-dəki funksiyalarla eynidir. Lakin Excel-də ən çox istifadə edilən funksiyalardan VLOOKUP/HLOOKUP, SUMPRODUCT, SUBTOTALSUMIF/SUMIFS burda yoxdur.

Bundan əlavə, DAX-da olan bir çox fundamental funksiya da Excel-də yoxdur (SUMX, CALCULATE, RELATEDTABLE, SAMEPERIODLASTYEAR, TOTALYTD və s.). O səbəblə, müəyyən qədər əmək verməli olacaqsınız. DAX-la işləməyə başladıqdan sonra, Excel-də yazdığınız bütün formullar sizə bəsit gələcək. DAX dili – data analizi və hesabatlarınızda sizi tamamilə yeni səviyyəyə çıxaracaq.

Kontekst

Bütün DAX funksiya və formullarında təməl 2 kontekst mövcuddur:

  1. ROW context
  2. FILTER context

1. ROW context

Daha öncəki yazılarda da toxunduğumuz kimi, ROW context – yazılan istənilən formulun cədvəldəki bütün sətirlərə tətbiq olunacağı deməkdir. Yəni, hər hansı bir sətirə individual formul yazıla bilməyəcəyi kimi, hər hansı bir sətirdəki formulu silmək də mümkün deyil. Formul yazıldısa, ya bütün sətirlərə aid ediləcək, ya da bütün sətirlərdən silinəcək. Bu, həm Calculated Column, həm də Measure üçün aktualdır

Picture2.png

Məsələn, [Date] sütunundakı tarixlər əsasında həmin tarixin aid olduğu ili hesabladıq, və formulu cəmi 1 dəfə yazdıq. Sistem, tək formulu hər bir sətirə aid etdi. Power Pivot bizə çox manevr etməyə imkan vermir, əvəzində daha çox struktural düşüncənin inkişafına yardım edir (Bu problemi FILTER context ilə aşmağın yollarını daha sonra öyrənəcəyik).

2. FILTER context

FILTER context-i anlamaq bir az daha çətindir, lakin aşağıdakı adi Pivot cədvəl düşünün.

Picture1.png

Amazon şirkətinə 2017-ci ilin Avqust ayında DVD-player satışımızı tapmaq üçün, hesabatımıza 4 filter tətbiq etməli olduq – Şirkət, İl, Ay və Məhsul.

Bu, ənənəvi Excel pivot cədvəlidir, hansında ki filter konteksti ilə ancaq yekun pivot cədvəldə görüşürük, halbuki DAX-da filter kontekstini formul yazma mərhələsindən etibarən istifadə etməyə başlayırıq. DAX filter funksiyalarını müzakirə edərkən, bunun nə olduğunu daha yaxşı anlayacağıq. Excel-dən bizə tanış olmayan bəzi filter funksiyalarına misallar – ALL, ALLSELECTED, FILTER, CALCULATE, DISTINCT və s. Hər biri ilə ayrı-ayrılıqda tanış olacağıq.

Növbəti yazımızda, cədvəllər arası əlaqələr qurmağı öyrənirik – Power Pivot #5 – Cədvəllərarası əlaqələrin qurulması