Power Pivot #5 – Cədvəllərarası əlaqələrin qurulması

Power Analytics

Excel-dən fərqli olaraq, Power Pivot-da cədvəl/sütunlararası əlaqələr VLOOKUP funksiyası ilə tənzimlənmir, çünki DAX-da belə bir funksiya mövcud deyildir. Onun əvəz edən RELATED funksiyasıdır, lakin bunu etmədən öncə, cədvəllərarası əlaqəni qurmalıyıq.

Bizim, hal-hazırda, ehtiva etdiyi dəyərlər baxımından bir-biri ilə birbaşa əlaqəsi olan 3 cədvəlimiz mövcuddur:

  1. Əsas satış cədvəli (SalesData):

    Picture1.png
  2. Məhsullar olan masterdata (Products):

    Picture2.png

  3. Müştərilər olan masterdata (Customers):

    Picture3.png

Satış cədvəlimizdə əsas 2 problem var:

  1. Müştəri və məhsullar kodlarla göstərilib və bu, pivot cədvəl hazırlayacağımız təqdirdə, mənasız ifadələr olan Cust_0001, Prod_10011 kimi dəyərlər gətirəcək, və
  2. SalesData cədvəlində Məhsulların ancaq miqdarları qeyd edilib, satış qiyməti və maya dəyərləri yoxdur.

Bu problemləri ənənəvi VLOOKUP funksiyası ilə Excel-də rahatlıqla həll edə bilərik, lakin cədvəlimizin 462,300 olan hər bir sətrinə bu formulu yazmalıyıq və bunu 4 fərqli sütunda etməliyik ([Məhsul adı], [Müştəri adı], [Satış qiyməti] və [Maya dəyəri] gəlsin deyə). Bu isə, hər dəfə hesablanmaq üçün əlavə 1,849,200 (462,300*4) xana deməkdir. Həm faylın həcmini lazımsız yerə böyüdürük, həm də sürətini yavaşladırıq (Unutmayaq ki, hər Excel faylını açdığımızda, içindəki bütün formullar hər dəfə yenidən hesablanır. Böyük faylların yavaş açılmasının əsas səbəblərindən biri budur).

Bunun əvəzinə, Power Pivot-da RELATED funksiyasından istifadə edəcəyik. Lakin, gəlin öncə, bu 3 cədvəl arasında fiziki əlaqə quraq. Hər bir cədvəlin üzərinə klikləyib Add to Data Model deyirik.

Picture4.png

Daha sonra Power Pivot pəncərəsindən Diagram View seçirik.

Picture5.png

Hər 3 cədvəlimizi başqa formada görürük. Ən başda cədvəlin adı, altda sıralı olaraq isə, həmin cədvəldəki sütunların adları formatında.

Tək etməli olduğumuz, bir-biri ilə əlaqəli olan 2 sütunu mouse ilə klikləyib-saxlayıb-digər sütun adının üzərinə gətirmək. Yəni bir növ drag & drop etmək. Bizdə əlaqəli sütunlar hansılardır?

  1. SalesData cədvəlindəki [Product ID] ilə, Products cədvəlindəki [Product ID] sütunları
  2. SalesData cədvəlindəki [Customer ID] ilə, Customers cədvəlindəki [Customer ID] sütunları

Picture6.png

Picture7.png

2-ci skrindən də gördüyümüz kimi, əlaqə qurulan cədvəllər arasında 1 – * (one-to-many) işarəsi əmələ gəldi. Bunun anlamı isə odur ki, Products cədvəlindəki dəyərlər unikaldır (təkrarlanmır), SalesData cədvəlində isə many, yəni eyni dəyərdən bir neçə dənədir. Başqa ifadə ilə, Products cədvəlindəki hər bir dəyərə müqabil, SalesData cədvəlində birdən çox dəyər var. Söhbət təbii ki, bir-birinə bağlanan sütunlardakı dəyərlərdən gedir (Qeyd: Power Pivot-da many-to-many əlaqə hal-hazırda mövcud deyil, hərçənd Power BI-da bu, mümkündür).

Növbəti yazılardan etibarən, DAX funksiyalarını yazmağa başlayırıq. Növbədə RELATED funksiyasıdır – Power Pivot #6 – RELATED funksiyası (DAX)