A CALCULATE függvény megismerése
A lecke végére alapos ismereteket szerezhet arról, hogy a CALCULATE függvény a Power BI egyik legsokoldalúbb függvénye.
Magas szinten szabályozhatja a sor- és szűrőkörnyezetet. A CALCULATE függvénnyel szűrőket adhat hozzá, leveheti őket, és frissítheti őket. Ez sok erő egy függvényben!
Szűrő hozzáadása a CALCULATE használatával
Először is, hogyan adhat hozzá szűrőt a CALCULATE függvénnyel.
A teljes értékesítés az előző adattáblában található:
Total Sales = SUM( [Sales Amount] )
Emellett a teljes értékesítés szűrt verziója is elérhető, ahol kiértékeli a teljes értékesítést, és repülési szűrőkörnyezetet alkalmaz:
Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )
Tipp
KORRELÁCIÓ A TABLEAU-HOZ: Az alábbi kódrészlet bemutatja, hogyan végezheti el ugyanezt a számítást a Tableau-ban: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)
Szűrő figyelmen kívül hagyása a CALCULATE használatával
Ezután a CALCULATE függvénnyel figyelmen kívül hagyhat egy szűrőt.
Az előző adattáblában az összes értékesítés államonként egy oszlopban, a teljes értékesítés pedig a következő oszlopban lévő összes földrajzi hely szerint van meg. Ez az oszlop akkor hasznos, ha az egyes állapotok (vagy sorok) összegének százalékos arányát szeretné elemezni.
A DAX-ban az összeg százalékának leggyakoribb módja az ALL függvény használata.
Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )
A fenti kódban a Geography táblát vizsgáljuk meg, és bele kell sorolni az összes értéket; ne szűkítse a szűrőkörnyezetet.
Tipp
KORRELÁCIÓ A TABLEAU-HOZ: Az alábbi kódrészlet bemutatja, hogyan végezheti el ugyanezt a számítást a Tableau-ban az EXCLUDE LOD kifejezés használatával: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }
Egy másik figyelmen kívül hagyó szűrő példa az alábbihoz hasonlóan nézne ki:
Az előző táblázatban a teljes értékesítést államonként, az összes földrajzi hely szerinti összes értékesítést (az összes földrajzi szűrő nélkül) tartalmazza, végül pedig az összes állam összes értékesítését, de a városszűrőt továbbra is alkalmazza.
A kép alapján Alexandria városa több államban is létezik. Tehát csak meg szeretné találni azoknak az államoknak a teljes értékesítését, amelyek alexandriai városként vannak jelen:
Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )
Tipp
KORRELÁCIÓ A TABLEAU-RA: Ezt a számítást így végezheti el a Tableau-ban az EXCLUDE LOD kifejezés használatával. Megfigyelheti, hogy ez a LOD-kifejezés a részletessége miatt különbözik a másiktól. Ezzel a kifejezéssel csak ki szeretné zárni az állapotot a nézetből az állam és a város helyett: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }
Szűrő frissítése a CALCULATE használatával
Végül a CALCULATE függvény hasznosságának kiemelésére szolgáló utolsó útmutató egy szűrő frissítésével lesz elérhető.
Az előző adattáblában a teljes értékesítés (az év figyelmen kívül hagyása) szerepel, a vizualizáció szeletelője által alkalmazott szűrőkörnyezetben vett teljes értékesítés, majd az utolsó oszlop csak a 2018-ra vonatkozó összes értékesítés.
A "2018 Sales" oszlop lekéréséhez a következőhöz hasonlót kell írnia:
2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )
Tipp
KORRELÁCIÓ A TABLEAU-HOZ: Ez azért érdekes, mert úgy tűnik, hogy nincs közvetlen Tableau-összehasonlítás. Ehhez a Tableau-ban duplikálnia kell a mezőket, be kell állítania a kiegészítő adatforrásokat, vagy számításokat kell végeznie az egyes oszlopokon.
Foglaljuk össze az ebben a CALCULATE egységben áttekintett adatokat:
Bármely kifejezés elhelyezhető első argumentumként.
A kifejezés az oldalon található összes szűrőkörnyezetet (a vizualizáció szeletelőit) vizsgálja.
Ha szűrők vannak jelen, a rendszer hozzáadja azt.
Ha van olyan szűrő, amely már szerepel a szűrőlistában, és megegyezik a lapkörnyezettel, felülbírálja azt.
A fenti árnyalatok után végül kiértékeli a kifejezést.
Megjegyzés
Nyilvánvaló, hogy ez nem olyasmi, amit meg kellene tennie anélkül, hogy ellenőrizné a válaszokat, hogy valóban megértsék a műveleti sorrendet. Meg kell kérdezned magadtól: "Törölte-e a szűrőket, vagy nem?"