A sorkörnyezet megismerése
A számított oszlopok létrehozása után most megtanulhatja, hogyan vannak kiértékelve azok képletei.
Egy számított oszlop képlete a tábla összes sorára ki van értékelve. Továbbá a sor környezetében van kiértékelve, ami az aktuális sort jelenti. Figyelje meg a Due Fiscal Year számított oszlop definícióját:
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) <= 6,
1
)
A képlet soronkénti kiértékelése során a 'Due Date'[Due Date]
oszlophivatkozás az oszlopnak az ehhez a sorhoz tartozó értékét adja vissza. Mint látni fogja, a Microsoft Excel is ugyanezt az elvet alkalmazza az Excel-táblázatok képleteire.
A sorkörnyezet azonban nem terjed ki a táblán túlra. Ha a képletnek más táblák oszlopaira kell hivatkoznia, akkor két lehetősége van:
- Ha a táblák közvetlenül vagy közvetve kapcsolódnak, használhatja a vagy
RELATEDTABLE
aRELATED
DAX függvényt. ARELATED
függvény lekéri az értéket a kapcsolat egy oldalán, míg aRELATEDTABLE
többoldalas értékeket. ARELATEDTABLE
függvény egy táblaobjektumot ad vissza. - Ha a táblák nem kapcsolódnak, használhatja a DAX függvényt
LOOKUPVALUE
.
Általában próbálja meg használni a függvényt RELATED
, amikor csak lehetséges. Általában jobb teljesítményt nyújt, mint a LOOKUPVALUE
függvény, mivel a kapcsolat- és oszlopadatokat a rendszer tárolja és indexeli.
Most adja hozzá a következő számított oszlopdefiníciót a Sales táblához:
Discount Amount =
(
Sales[Order Quantity]
* RELATED('Product'[List Price])
) - Sales[Sales Amount]
A számított oszlopdefiníció hozzáadja a Kedvezmény összege oszlopot a Sales táblához. A Power BI a Sales tábla minden sorához kiértékeli a számított oszlop képletét. Az Order Quantity és a Sales Amount oszlopokból a sor környezetén belül vannak lekérve az értékek. Mivel azonban a Listaár oszlop a Product táblához tartozik, a RELATED
függvénynek le kell kérnie az értékesítési termék listaár-értékét.
A sorkörnyezet a számított oszlopok képleteinek kiértékelésekor használatos. Ez használatos az úgynevezett iterátorfüggvények osztályának használatakor is. Az iterátorfüggvények biztosítják a kifinomult összesítések létrehozásához szükséges rugalmasságot. Az iterátorfüggvényeket egy későbbi modul ismerteti.