ALLEXCEPT – zrušení všech filtrovacích kontextů až na jeden (DAX – Power Pivot, Power BI)
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Funkce ALLEXCEPT slouží k tomu, že výpočet v DAXu bude ignorovat všechny filtrovací kontexty kromě vybraného.
Funguje tedy obdobně jako funkce ALL. Zatímco ale ALL "ignoruje" všechny filtry (pokud je argumentem celá tabulka) nebo filtry podle vybraných sloupců (pokud je argumentem sloupec), tak ALLEXCEPT ignoruje všechno kromě toho, co je v argumentu.
Jak to funguje prakticky?
Např. v tomto vizuálu sledujeme celkové ceny aut podle Brand, Model a Color.
Ve výpočtu potřebujeme získat pro každou z částek procento z celkové značky (Brand). Tedy např. u modré Alfy Fomeo 147 zjistit, kolika procenty se jejich ceny podílí na celkových cenách všech Alf Romeo - tak, jak to je ve druhém sloupci.
Je zřejmé, že toho dosáhneme tak, že budeme dělit hodnotu u konkrétní položky (např. Alfa Romeo 147 Blue) hodnotou celkovou (např. Alfa Romeo).
A tu celkovou hodnotu právě spočteme tak, že budeme ignorovat všechny filtry kromě Brand (tedy ignorujeme Model a Color).
Zápis celkové částky je takto:
- Total price for Brand = CALCULATE(
SUM(Sheet1[Price]),
ALLEXCEPT(Sheet1,Sheet1[Brand]))
- Percent of Brand total price = DIVIDE(
SUM(Sheet1[Price]),
CALCULATE(
SUM(Sheet1[Price]),
ALLEXCEPT(Sheet1,Sheet1[Brand])
)
)
- Percent of Brand total price = DIVIDE(
SUM(Sheet1[Price]),
CALCULATE(
SUM(Sheet1[Price]),
ALL(Sheet1[Color],Sheet1[Model])
)
)
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.