Power Pivot #10 – Filter konteksti ilə necə oynaya bilərik?! – ALLSELECTED vs. ALL (DAX)

Power Analytics

Fərqli filter funksiyalarının davranış şəkillərini analiz etmək üçün, CALCULATE funksiyası ilə birgə istifadə etməliyik. Eyni misal üzərində, eyni measure üzərindən fərqli filter funksiyalarının verdiyi fərqli nəticələri müşahidə edərkən, onların davranış şəkillərini də daha yaxşı anlamaq olur. O səbəblə, bu günkü filter funksiyalarımız – ALLSELECTEDALL olacaq.

Picture6.png

Faylı endir – Bütün measure-ları bu fayldakı Power Pivot pəncərəsindən hazır yazılmış olaraq tapa bilərsiniz – Power Pivot – Sales Data

Yuxarıdakı pivot cədvəldə hər 3 sütunda istifadə edilən measure eynidir, ilk dərslərdə yazdığımız SUMX funksiyalı measure-dır (Daha ətraflı – Power Pivot #7 – SUMX funksiyası (DAX)). Amma ALLSELECTEDALL ilə elə filterlər tətbiq etdik ki, tamamilə fərqli nəticələr əldə olundu. DAX-ın filter konteksti məhz bu cür oyunlar oynamağa imkan yaradır. Gəlin, hansı formullarla bu cür ciddi fərqlər əldə etdiyimizi analiz edək.

 

Total revenue

Picture2.png
Picture10.png

Bu measure – ilk yazdığımız formuldan başqası deyil. SalesData cədvəlindəki [Units sold] və [Unit sales price] sütunlarının hər bir sətirini bir-birinə vurdu, sonda isə cəmlədi. Formul daxilində heç bir filter funksiyası olmadığı üçün, aşağıdakı pivot cədvələ atıldığı anda, pivot cədvəl və slicer-ın nəzərdə tutulan filterlərinin “təsirinə düşdü”. Məsələn, Twitter-in 2018-ci ildəki satışı (32,159,752 EUR), məhz bu 2 kriteriya əsasında formalaşdı. Xüsusi filter funksiyası istifadə etmədiyimiz üçün hər 2 filter kontekstinə tabe oldu.

 

ALLSELECTED revenue

Picture3.png
Picture11.png

İkinci sütundakı formulumuz belədir. Yenə, Total Revenue measure-ından istifadə etməklə, bu dəfə ALLSELECTED filter funksiyasını əlavə etdik. Bunu etməkdə məqsədimiz – filter olaraq ancaq bizim özümüzün təyin etdiyimiz filterə (Slicer) ehtiyac duymağımızdır.

Yəni, şirkət adı nə olursa olsun, ancaq Slicer-dakı filterlər işə düşdü və SalesData cədvəlimizdəki ancaq 2018-ci ilə aid sətirlər aktivləşdi. Tək kriteriya il olduğu üçün, həmin ilə aid bütün satışların cəmini siyahıdakı hər bir şirkətin qarşısına eyni məbləğ olaraq yazdı.

Bu hesablamanın bizə qazandırdığı – daha sonra hər şirkətin satışının həmin ildəki ümumi satışa faiz nisbətini hesablamaq istədiyimizdə, bunu ALLSELECTED filteri ilə edə bilmə imkanıdır.

 

ALL revenue

Picture4.png

Son sütunumuzda isə, ALL funksiyası ilə bütün filterləri “iqnor edirik”. Bu funksiya, nəzərdə tutulan və ya tutulmayan heç bir filteri nəzərə almır.

Picture12.png

SalesData cədvəlində nə qədər sətir varsa, hər birini nəzərə alır. Bu hesablamanın bizə qazandırdığı – şirkət satışlarının tarix ərzindəki ümumi satışlara nisbətini hesablama imkanıdır.

Eyni şəkildə, 2 ili eyni anda seçdiyimiz zaman da, hər 3 sütunun oxşar davranış sərgilədiyini görürük.

Picture13.png

Total Revenue – bütün filter kontekstlərinə tabə olarkən, ALLSELECTED revenue – ancaq bizim müəyyən etdiyimizə tabe oldu. ALL revenue isə heç bir filterə məhəl qoymadı, çünki cədvəlimizdə yer alan hər bir 462,300 ədəd sətiri nəzərə aldı.

Növbəti yazımızda, CALCULATE ilə Time Intelligence funksiyalarından SAMEPERIODLASTYEAR funksiyasını müzakirə edəcəyik. İndiki dövrdəki satışlar ilə keçən il eyni dövrdə olan satışları müqayisə etmək üçün.