Power Pivot #17 – Gün / Ay / İlin əvvəlindən indiyə qədər olan satışların hesablanması – TOTALMTD & TOTALYTD

Power Analytics

Aylıq / İllik hədəfləri olan şirkətlər, zaman keçdikcə hədəfləri ilə müqayisədə harada olduqlarını gündəlik olaraq izləmək məcburiyyətindədirlər. Bunu, zamanında reaksiya verə bilmələri üçün edirlər. Bu yazımızda, bütün hesablama və vizuallaşdırmaları yenidən Power BI platformu üzərində aparacağıq. Öncəsində, modelimizi yada salaq.

Şəkil 1. Power BI diagram view

Şəkil 1 – də Əsas cədvəlimiz olan SalesData və ona bağlı olan 3 Masterdata cədvəllərindən Products, CustomersCalendarTable görürük. Masterdata cədvəlləri əsas cədvələ one-to-many əlaqəsi ilə bağlıdır.

SalesData cədvəlində qarşısında kalkulyator olan dəyərlər görürük, bunların hər biri ayrı-ayrılıqda bir measure-dır. Bizim bu yazıda istifadə edəcəyimiz tək measure – Total Sales measure-dır (siyahıda ən birinci). Bu measure ilə bizə lazım olan 3 fərqli formul yazaraq, bu günə olan satışları, ayın əvvəlindən bu günə qədər olan satışları və ilin əvvəlindən bu günə qədər olan satışları hesablayacağıq.


Bu günün satışlarının hesablanması

Hər zamankı kimi, köməyimizə CALCULATE funksiyası gələcək. Bu günün satışlarını hesablamaq üçün aşağıdakı kimi bir formul yazmalıyıq.

DAX 1. Bu günün satışlarının hesablanması

Formulun məntiqi

CalendarTable cədvəlindəki bu günə aid olan bütün sətirləri aktivləşdir, və hər birinin müvafiq Total Sales məbləğini müəyyən edərək onları cəmlə.

Power BI – da Matrix cədvəli üzərində bu measure-ı vizuallaşdırsaq, nəticəmiz belə olacaqdır:

Şəkil 2. Bu günün satışları Matrix cədvəlində


Ayın əvvəlindən bu günə qədər olan satışların hesablanması – TOTALMTD

İstifadə etməli olduğumuz DAX funksiyası – TOTALMTD.

Formulun əsas 2 parametri var:

  • Expression: Bizim misalımızda bu, Total Sales measure-ı olacaq.
  • Dates: Hər zaman CalendarTable cədvəlindəki [Date] sütunu olmalıdır.

Gəlin, DAX formulumuzu yazaq:


DAX 2. Ayın əvvəlindən satışların hesablanması

Eyni formulu Power BI – da yazdıqdan sonra, onu Şəkil 2-dəki Matrix cədvəlimizə əlavə etmədən öncə, İl və Ay filterlərini modelimizə daxil edək. VIZUALIZATIONS blokundan Slicer əlavə edirik.

Şəkil 3. Slicer əlavə edilməsi

Əlavə etdiyimiz slicer-lar əsas panelimizdə aşağıdakı kimi olmalıdır.

Şəkil 4. Slicer ilə ayın əvvəlindən satışların filterlənməsi

Şəkil 4-də görürük ki, filterlərdə il olaraq – 2018, ay olaraq isə – Noyabr seçilmişdir. Bu səbəblə, avtomatik filter konteksti işə düşmüş və soldakı Matrix cədvəlimizi müvafiq qaydada filterləmişdir.

Qeyd: Noyabr 2018 – ci il keçmiş tarix olduğu üçün, MTD Sales bütün aya aid satışı hesablamışdır. Məsələn, biz hal-hazırda real zamanlı olaraq Noyabr ayının 23-də olsaydıq, o zaman satışlar o tarixə qədər hesablanmış olacaqdı. Aşağıdakı şəkildəki kimi.




Şəkil 5. Noyabr ayının 23-nə qədər satışların hesablanması


İlin əvvəlindən bu günə qədər olan satışların hesablanması – TOTALYTD

İlin əvvəlindən bu günə qədər olan satışları hesablamaq istəsək isə, TOTALYTD funksiyasından istifadə edəcəyik (Total Year-to-Date).

TOTALMTD funksiyası ilə tamamilə eyni sintaksa sahibdir.

  • Expression: Bizim misalımızda bu, yenə də Total Sales measure-ı olacaq.
  • Dates: Hər zaman CalendarTable cədvəlindəki [Date] sütununu seçirik.

DAX formulumuz isə, aşağıdakı kimidir:


DAX 3. İlin əvvəlindən satışların hesablanması

Matrix cədvəlimizə əlavə edirik.


Şəkil 6. İlin əvvəlindən Noyabr ayının 23-nə qədər satışların hesablanması

Sales of Today heç bir filterə tabe olmayacaq, çünki ancaq və ancaq içində olduğumuz/olacağımız günün satışlarını hesablayacaqdır.

Məsələyə bu dəfə başqa perspektivdən baxaq. 2018-ci ilin Fevral ayını günlər üzrə cədvəlimizə əlavə edib, formulun necə işlədiyinə baxaq.

Şəkil 7. Günlər üzrə MTD və YTD formullarının işləyişi

Bu dəfə daha açıq-aydın görürük ki, günlər irəlilədikcə, TOTALMTD funksiyası ayın əvvəlindən həmin günə qədər olan bütün satışları cəmləyir. Və biz fevralın son gününə gəldiyimiz zaman, Martın 1-dən dəyərlərin yenidən sıfırdan başladığını görürük.

Şəkil 8. Hər ayın əvvəli məbləğin sıfırdan hesablanması

Lakin, TOTALYTD funskiyası isə arta-arta davam edir. Bizim də gözlədiyimiz məhz budur.