Ugrás a fő tartalomra

Power BI alapok : DAX témák: VALUES(), HASONEVALUE(), SELECTEDVALUE(), and CONCATENATEX()

 Power BI alapok :  DAX témák: VALUES(), HASONEVALUE(), SELECTEDVALUE(), and CONCATENATEX()


A DAX nyelv az adatok elemzésére és számítások elvégzésére használható a Power BI, Power Pivot és Analysis Services Tabular modellekben. Az alábbi négy fontos DAX függvény működését vizsgáljuk meg részletesen:

  • VALUES() – Egy oszlop egyedi értékeit adja vissza.
  • HASONEVALUE() – Ellenőrzi, hogy egy oszlop pontosan egy egyedi értéket tartalmaz-e a szűrőkontextusban.
  • SELECTEDVALUE() – Egyetlen kiválasztott értéket ad vissza, vagy egy alapértelmezett értéket, ha több van.
  • CONCATENATEX() – Több érték összefűzésére szolgál, például egy oszlop egyedi értékeinek listázására.

1. VALUES() függvény

A VALUES() függvény egy oszlop vagy tábla egyedi értékeit adja vissza, figyelembe véve az aktuális szűrőkontextust.

Szintaxis:

---DAX

VALUES(Oszlop_név)

vagy

---DAX

VALUES(Tábla_név)

Működés és jellemzők:

  • Ha egy oszlopot adunk meg, visszaadja az egyedi értékeket.
  • Ha az oszlop nincs szűrve, akkor az összes egyedi értéket tartalmazza.
  • Ha az oszlop egyetlen értékre szűrt, akkor azt az egy értéket adja vissza.
  • Ha a szűrés üres halmazra vezet, akkor üres táblát ad vissza.

Példa – VALUES() használata

Tegyük fel, hogy van egy Sales tábla a következő oszlopokkal:

OrderIDRegionSalesAmount
1North500
2North1500
3South800
4East2500

Ha szeretnénk egy mértéket, amely visszaadja az összes jelenlegi szűrés szerinti régiót:

---DAX

UniqueRegions = VALUES(Sales[Region])

🔹 Használati esetek:

  • Kombinálható más függvényekkel, például CONCATENATEX()-szel, hogy összefűzzük az egyedi értékeket.
  • Szűréshez és dinamikus mértékekhez használható.

2. HASONEVALUE() függvény

A HASONEVALUE() függvény ellenőrzi, hogy egy oszlopban pontosan egy egyedi érték van-e a szűrőkontextusban.

 A DAX csak akkor teszi lehetővé az egyoszlopos tábla egyetlen sorában visszaadott egyetlen érték használatát, ha a képletet a HASONEVALUE() paranccsal védi.


Szintaxis:
---DAX

HASONEVALUE(Oszlop_név)

Működés és jellemzők:

  • Ha az oszlopban csak egy egyedi érték van a szűrés után, akkor TRUE értéket ad vissza.
  • Ha több érték van, vagy ha az oszlop üres, akkor FALSE értéket ad vissza.
  • Akkor hasznos, ha dinamikusan akarjuk ellenőrizni, hogy egy adott kategória egyetlen értékre szűrve van-e.

Példa – HASONEVALUE() használata

---DAX

SingleRegionCheck = IF( HASONEVALUE(Sales[Region]), "One Region Selected", "Multiple Regions Selected" )

🔹 Használati esetek:

  • Feltételek beállítása egyedi és több érték kiválasztásához.
  • Kombinálható IF()-fel dinamikus vizualizációs címekhez.

3. SELECTEDVALUE() függvény

A SELECTEDVALUE() függvény egy oszlop kiválasztott egyedi értékét adja vissza.

Szintaxis:

--- DAX

SELECTEDVALUE(Oszlop_név, [Alapértelmezett_érték])
  • Oszlop_név: Az oszlop, amelynek egyedi értékét szeretnénk visszakapni.
  • Alapértelmezett_érték (nem kötelező): Ha nincs vagy több érték van kiválasztva, akkor ezt adja vissza.

Működés és jellemzők:

  • Ha pontosan egy érték van kiválasztva, azt adja vissza.
  • Ha több érték van kiválasztva vagy nincs érték, akkor a megadott alapértelmezett értéket adja vissza (ha van).

Példa – SELECTEDVALUE() használata

---DAX

SelectedRegion = SELECTEDVALUE(Sales[Region], "No Single Region Selected")

Eredmények lehetnek:

  • Ha csak "North" van kiválasztva → "North"
  • Ha több régió van kiválasztva → "No Single Region Selected"

🔹 Használati esetek:

  • Dinamikus szűrés, amikor egyedi érték szükséges.
  • Alternatívája a HASONEVALUE() + VALUES() kombinációnak.

4. CONCATENATEX() függvény

A CONCATENATEX() egy összefűző függvény, amely egy oszlop összes értékét karakterláncként egyesíti egy adott elválasztóval.

Szintaxis:

---DAX

CONCATENATEX(Tábla, Kifejezés, [Elválasztó], [Rendezési sorrend], [Rendezési mód])
  • Tábla: Az a tábla, amelyben az értékek szerepelnek.
  • Kifejezés: Az oszlop vagy kifejezés, amelyet fűzni szeretnénk.
  • Elválasztó (nem kötelező): Például ", " vagy " - " lehet.
  • Rendezési sorrend (nem kötelező): Egy oszlop, amely alapján rendezünk.
  • Rendezési mód (nem kötelező): ASC vagy DESC (növekvő/csökkenő sorrend).

Példa – CONCATENATEX() használata

---DAX

RegionsList = CONCATENATEX(VALUES(Sales[Region]), Sales[Region], ", ")

Eredmény: "North, South, East"

🔹 Használati esetek:

  • Egy oszlop egyedi értékeinek összefűzése szövegként.
  • Dinamikus címek vagy tooltip-ek létrehozása vizualizációkhoz.

Összegző táblázat

FüggvényLeírásTipikus PéldaVisszatérési Érték
VALUES()Egy oszlop egyedi értékeit adja visszaVALUES(Sales[Region]){"North", "South", "East"}
HASONEVALUE()Ellenőrzi, hogy egy oszlop pontosan egy egyedi értéket tartalmaz-eHASONEVALUE(Sales[Region])TRUE vagy FALSE
SELECTEDVALUE()Egy oszlop egyetlen kiválasztott értékét adja visszaSELECTEDVALUE(Sales[Region], "N/A")"North" vagy "N/A"
CONCATENATEX()Több érték összefűzésére szolgálCONCATENATEX(VALUES(Sales[Region]), ", ")"North, South, East"

Ezek a függvények rendkívül hasznosak a Power BI riportok dinamikussá tételéhez! 🚀











Megjegyzések