Power BI DAX alapok sum() és sumx() függvények
A SUM() és a SUMX() függvények a DAX nyelvben hasonló célra szolgálnak, de eltérő módon működnek. Nézzük meg a különbségeket és a használati eseteket!
A fő különbség az X végű iterátoros függvény és az többi normál aggregációs függvény között az, hogy az iterátoroknak sorkontextusuk van , ami azt jelenti, hogy a függvény bármikor „tudatában van” annak, hogy melyik sorra hivatkozik, és ezen lépked végig .
SUM() vs. SUMX() – Főbb különbségek
Tulajdonság | SUM() | SUMX() |
---|---|---|
Működés | Egy adott oszlop összegét számítja ki. | Egy kifejezést számol ki soronként, majd az eredményeket összegzi. |
Bemenet | Csak egy oszlopot fogad el. | Egy táblát és egy kifejezést fogad el. |
Hogyan számol? | Egy oszlop összes értékét összeadja. | Minden egyes sorban kiszámolja a kifejezést, majd az eredményeket összegzi. |
Felhasználási példa | Ha egy oszlopban lévő értékeket kell egyszerűen összegezni. | Ha az összegzést egy számított értékre kell alkalmazni. |
Példa a különbség bemutatására
Tegyük fel, hogy van egy 'Sales' nevű táblánk, amely tartalmazza a következő oszlopokat:
Product | Quantity | Price |
---|---|---|
A | 2 | 100 |
B | 3 | 150 |
C | 1 | 200 |
A teljes eladott mennyiséget és az eladások összegét szeretnénk kiszámítani.
SUM() használata
Ha a teljes eladott mennyiséget akarjuk kiszámítani:
Eredmény:
👉 2 + 3 + 1 = 6
Viszont ha a teljes bevételt így próbáljuk számolni:
Ez hibás eredményt adna, mert az egyes termékek árát adja össze, nem a teljes bevételt.
SUMX() használata
A teljes bevétel kiszámítása helyesen:
Lépések:
- Minden sorban kiszámolja az egyes tételek értékét
- A: 2 × 100 = 200
- B: 3 × 150 = 450
- C: 1 × 200 = 200
- Összegzi az eredményeket:
- 200 + 450 + 200 = 850
Összegzés: Mikor melyiket használd?
✅ SUM() – Ha egy oszlop meglévő értékeit kell összegezni.
✅ SUMX() – Ha minden egyes sorban egy számított értéket kell előbb kiszámolni, majd ezt kell összegezni.
Előnyök és korlátok
Szempont | SUM() előnye | SUMX() előnye | SUMX() hátránya |
---|---|---|---|
Egyszerűség | Könnyen használható. | Rugalmasabb, komplex számításokra alkalmas. | Összetettebb megírás. |
Teljesítmény | Gyors, mert egy teljes oszlopon végez összeadást. | Testreszabható számításokat tesz lehetővé. | Lassabb lehet nagy tábláknál, mert soronként számol. |
Funkcionalitás | Csak egy oszlopra alkalmazható. | Bármilyen kifejezést támogat. | Több számítási erőforrást igényel. |
💡 Tipp: Ha egy oszlop közvetlen összegére van szükséged, használd a SUM() függvényt. Ha viszont soronként kell számítást végezni, akkor a SUMX() a megfelelő választás.
Hasonló elv vonatkozik a többi X végű függvényre is.
Gyakori „X” végződésű DAX függvények:
Függvény | Leírás |
---|---|
SUMX() | Minden egyes soron végrehajt egy kifejezést, majd az eredményeket összeadja. |
AVERAGEX() | Minden egyes sorban kiszámol egy kifejezést, majd annak átlagát veszi. |
MAXX() | Minden sorban kiszámolja a kifejezést, és az eredmények közül a legnagyobbat adja vissza. |
MINX() | Minden sorban kiszámolja a kifejezést, és az eredmények közül a legkisebbet adja vissza. |
COUNTX() | Megszámolja az érvényes (nem üres) kifejezések számát a sorokban. |
COUNTAX() | Megszámolja az érvényes (nem üres) szöveges és numerikus értékeket egy táblában. |
PRODUCTX() | Minden egyes sorban kiszámolja a kifejezést, majd az eredmények szorzatát adja vissza. |
MEDIANX() | A számított értékek mediánját adja vissza. |
VARX.P() | A teljes populációra vonatkozó szórásnégyzetet számolja ki a soronként számított kifejezések alapján. |
VARX.S() | A mintára vonatkozó szórásnégyzetet számolja ki a soronként számított kifejezések alapján. |
STDEVX.P() | A teljes populáció szórását számolja ki a soronként számított kifejezések alapján. |
STDEVX.S() | A minta szórását számolja ki a soronként számított kifejezések alapján. |
Példa a használatra
Tegyük fel, hogy van egy 'Sales' tábla az alábbi oszlopokkal:
Product | Quantity | Price |
---|---|---|
A | 2 | 100 |
B | 3 | 150 |
C | 1 | 200 |
Ha a termékek egyedi árait akarjuk átlagolni:
Eredmény:
👉 (100 + 150 + 200) / 3 = 150
Ha az átlagos eladási értéket akarjuk kiszámítani:
Lépések:
- A: 2 × 100 = 200
- B: 3 × 150 = 450
- C: 1 × 200 = 200
- Átlag: (200 + 450 + 200) / 3 = 283.33
Mikor használjunk „X” végződésű függvényeket?
✅ Ha egy számítást minden egyes sorra alkalmaznunk kell
✅ Ha egy oszlop egyszerű aggregálása nem elég (pl. SUM helyett SUMX)
✅ Ha egy tábla alapján történő számításra van szükség
💡 Tipp: Az X végződésű függvények rugalmasabbak, de nagyobb számítási erőforrást igényelnek, ezért érdemes optimalizálni a modellek teljesítményét.
Megjegyzések
Megjegyzés küldése