October 9, 2020
X-funkcije v jeziku DAX
V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (December 2019).
X-funkcije v jeziku DAX so iteratorske funkcije. To pomeni, da imajo lastnost zavedanja se vrstic. Npr. funkcija SUMX() izračuna vsoto izraza za vsako vrstico posebej. Več o vrstičnem kontekstu lahko preberemo v članku Vrstični kontekst v Power BI in Prehod konteksta v Power BI – pretvarjanje vrstičnega konteksta v filterni kontekst.
SUMX()
Izračuna vrednost izraza za vsako vrstico in vrne vsoto vrstic.
Sintaksa
SUMX(Table, Expression)
Parameter | Opis |
---|---|
Table | Ime tabele, znotraj katere se izraz izračuna za vsako vrstico |
Expression | Izraz |
Primer
Imamo tabelo prodanih artiklov Sales s poljema Price in Quantity.
Izračunati želimo, kakšen je celoten prihodek od prodanih artiklov. Ne moremo uporabiti SUM(), saj moramo izračunati produkt za vsako vrstico posebej in nato vrstice sešteti v končni rezultat. To naredi SUMX().
SUMX_Example = SUMX(Sales, Sales[Price]*Sales[Quantity])
Za matematično podkovane bralce: SUMX() se v tem primeru obnaša kot skalarni produkt.
AVERAGEX()
Izračuna vrednost izraza za vse vrstice in vrednosti agregira v povprečje.
Sintaksa
AVERAGEX (Table, Expression)
Parameter | Opis |
Table | Ime tabele, znotraj katere se izraz izračuna za vsako vrstico |
Expression | Izraz |
Primer
AVERAGEX_Example = AVERAGEX(Sales, Sales[Price]*Sales[Quantity])
Zgornji primer izračuna izraz za vsako vrstico posebej in nato rezultate agregira v povprečje.
MINX()
Izračuna vrednost izraza za vse vrstice in vrne najmanjšo vrednost.
Sintaksa
MINX(Table, Expression)
Parameter | Opis |
Table | Ime tabele, znotraj katere se izraz izračuna za vsako vrstico |
Expression | Izraz |
Primer
MINX_Example = MINX(Sales, Sales[Price]*Sales[Quantity])
Zgornji primer izračuna produkt stolpcev Price in Quantity v tabeli Sales za vsako vrstico in vrne najmanjšo od vseh vrednosti.
MAXX()
Izračuna vrednost izraza za vse vrstice in vrne največjo vrednost.
Sintaksa
MAXX(Table, Expression)
Parameter | Opis |
Table | Ime tabele, znotraj katere se izraz izračuna za vsako vrstico |
Expression | Izraz |
Primer
MAXX_Example = MAXX(Sales, Sales[Price]*Sales[Quantity])
Zgornji primer izračuna produkt stolpcev Price in Quantity v tabeli Sales za vsako vrstico in vrne največjo od vseh vrednosti.
COUNTX()
Vrne število nepraznih vrstic v stolpcu ali število nepraznih rezultatov izraza.
Sintaksa
COUNTX(Table, Expression)
Parameter | Opis |
Table | Tabela, znotraj katere štejemo neprazne vrstice ali neprazne rezultate izraza |
Expression | Izraz |
Primer
COUNTX_Example = COUNT(Sales, Sales[Price]*Sales[Quantity])
Zgornji primer izračuna izraz za vsako vrstico posebej in vrne število nepraznih rezultatov.
CONCATENATEX ()
Ovrednoti vrednost izraza za vsako vrstico in vrne združene vrednosti.
Sintaksa
CONCATENATEX (Table, Expression, [Delimiter])
Parameter | Opis |
Table | Tabela, znotraj katere želimo združen niz za dani izraz |
Expression | Izraz |
Delimiter | Ločilo, ki naj se uporabi med izrazi (opcijsko) |
Primer
V tabeli Customers imamo stolpca FirstName in LastName.
Da dobimo seznam vseh strank, uporabimo funkcijo CONCATENATEX().
CONCATENATEX_Example = CONCATENATEX(Customers, [FirstName] & ” ” & [LastName], “,”)
Funkcija vrne rezultat “Craig Ferguson, James May”.