Power BI DAX: IF(), SWITCH(), és FIND() függvények részletes ismertetése
A Power BI DAX (Data Analysis Expressions) egy hatékony nyelv, amely lehetővé teszi az adatelemzést és az egyéni számításokat. Ebben a részletes bemutatóban három fontos DAX függvényre összpontosítunk:
- IF() – Feltételes logika létrehozásához.
- SWITCH() – Több feltétel alapján történő elágazás kezeléséhez.
- FIND() – Szövegkeresés egy adott karakterláncon belül.
Mindegyik függvényt példákkal illusztrálom, és a végén egy összehasonlító táblázatot is készítek.
1. IF() függvény
A IF() függvény egy feltételes elágazást biztosít, amely hasonló a hagyományos Excel IF függvényéhez.
Szintaxis:
- Logikai_feltétel: Egy igaz/hamis értéket visszaadó logikai feltétel.
- Igaz_érték: Az érték, amelyet akkor ad vissza, ha a feltétel igaz.
- Hamis_érték (opcionális): Az érték, amelyet akkor ad vissza, ha a feltétel hamis (ha nem adunk meg semmit, akkor
BLANK()lesz az eredmény).
Példa – IF() használata
Tegyük fel, hogy van egy Sales tábla, amely tartalmazza az eladási adatokat:
| OrderID | SalesAmount |
|---|---|
| 1 | 500 |
| 2 | 1500 |
| 3 | 800 |
| 4 | 2500 |
Egy új "High Sales" számított oszlopot hozhatunk létre, amely YES-t jelenít meg, ha az eladás meghaladja az 1000-et, különben NO-t:
Eredmény:
| OrderID | SalesAmount | High Sales |
|---|---|---|
| 1 | 500 | NO |
| 2 | 1500 | YES |
| 3 | 800 | NO |
| 4 | 2500 | YES |
🔹 Fontos megjegyzés:
- Az
IF()függvény egyszerű feltételeknél jól használható, de ha több feltételre van szükség, akkor érdemesebb aSWITCH()függvényt használni.
2. SWITCH() függvény
A SWITCH() egy többszintű elágazást kezelő függvény, amely kiváltja a többszörösen beágyazott IF() utasításokat.
Szintaxis:
- Kifejezés: A vizsgált érték.
- Érték1, Érték2, ...: A kifejezés lehetséges értékei.
- Eredmény1, Eredmény2, ...: Az adott értékhez tartozó visszatérési eredmények.
- Alapértelmezett (opcionális): Ha egyik feltétel sem teljesül, akkor ez az érték lesz az eredmény.
Példa – SWITCH() használata
Tegyük fel, hogy van egy Sales tábla egy Category oszloppal, amely az alábbi értékeket tartalmazza:
| OrderID | Category |
|---|---|
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | A |
Szeretnénk egy új oszlopot létrehozni, amely a következő szabályok alapján határozza meg a kedvezmény mértékét:
Akategória: 10% kedvezményBkategória: 15% kedvezményCkategória: 20% kedvezmény
A SWITCH() függvény így nézne ki:
Eredmény:
| OrderID | Category | Discount |
|---|---|---|
| 1 | A | 10% Discount |
| 2 | B | 15% Discount |
| 3 | C | 20% Discount |
| 4 | A | 10% Discount |
🔹 Előnyök:
- Sokkal tisztább és érthetőbb, mint az
IF()egymásba ágyazása. - Hatékonyabb a teljesítmény szempontjából.
3. FIND() függvény
A FIND() függvény egy adott szöveg előfordulásának pozícióját keresi egy karakterláncban.
Szintaxis:
- Keresett_szöveg: A keresendő karakterlánc.
- Forrás_szöveg: Az a karakterlánc, amelyben keresünk.
- Kezdő_pozíció (opcionális): A keresés kezdőpozíciója (alapértelmezett: 1).
- Nincs_találat (opcionális): Az érték, amelyet visszaad, ha a keresett szöveg nem található meg (alapértelmezett: hibaüzenet).
Példa – FIND() használata
Tegyük fel, hogy egy Customers tábla tartalmazza az ügyfelek e-mail címeit:
| CustomerID | |
|---|---|
| 1 | john.doe@gmail.com |
| 2 | jane.smith@yahoo.com |
| 3 | robert.white@outlook.com |
Szeretnénk megtudni, hogy az "@" karakter melyik pozíción szerepel az e-mail címekben:
Eredmény:
| CustomerID | At_Position | |
|---|---|---|
| 1 | john.doe@gmail.com | 10 |
| 2 | jane.smith@yahoo.com | 12 |
| 3 | robert.white@outlook.com | 14 |
🔹 Megjegyzés:
Ha az @ karakter nincs az e-mail címben, az eredmény -1 lesz a hiba elkerülése érdekében.
Összegző táblázat
| Függvény | Használat | Tipikus Példa |
|---|---|---|
IF() | Egyszerű feltételes logika | IF(Sales[Amount] > 1000, "YES", "NO") |
SWITCH() | Több érték közötti elágazás | SWITCH(Sales[Category], "A", "10%", "B", "15%", "20%") |
FIND() | Szövegen belüli keresés | FIND("@", Customers[Email], 1, -1) |
Ezek a DAX függvények alapvetőek Power BI-ban, és segítenek hatékonyabb számításokat készíteni! 🚀
Megjegyzések
Megjegyzés küldése