Istnieje wiele sposobów na przygotowanie filtra TOP N, który będzie działał w modelu danych (w Excel Power Pivot lub Power BI). Zacznijmy od jego wersji statycznej, aby w kolejnym wpisie przeczytać o możliwości dynamicznej zmiany liczby N parametrem.
Sposób 1 – filtrowanie tabeli przestawnej Excel lub wizualizacji Power BI
Najprostszy sposób na filtrowanie miar – wybór filtru top N z interfejsu – jest możliwy w sytuacji, gdy w wierszach tabeli przestawnej lub osi na wykresie Power BI posługujemy się polem filtrowanym. W naszym scenariuszu będzie to pole Klient.
Filtrowanie TOP N w Excelu
Filtrowanie TOP N w Power BI
Sposób 2 – utworzenie kolumny obliczeniowej w modelu danych Excel lub Power BI
Możemy utworzyć kolumnę obliczeniową, która będzie posiadała znacznik czy dany klient należy do TOP N czy nie. Rozwiązanie identycznie wygląda w Power Pivot i Power BI i składa się z następujących kroków (przykład dla modelu danych z tabelą sprzedażową Dane i Klienci):
- Utwórz miarę Sprzedaż Total:
Sprzedaż Total = SUM(Dane[Sprzedaż])
- W tabeli Klienci utwórz kolumnę obliczeniową
TOP10 = if(RANKX(ALL(Klienci);[Sprzedaż Total])<=10;"TOP10";"Pozostałe")
Formuła tworzy wirtualną tabelę wszystkich klientów, liczy dla nich Sprzedaż Total i sprawdza, czy miejsce rankingowe jest w pierwszej dziesiątce. Jeśli tak, zwraca znacznik TOP10, a w przeciwnym razie znacznik Pozostałe.
Jeśli kolumna ma zwracać nazwiska TOP klientów, a resztę grupować do pozostałych, możemy zmienić jej treść:
TOP10 = if(RANKX(ALL(Klienci);[Sprzedaż Total])<=10;Klienci[Klient];"Pozostałe")
Cześć,
a jak zmienić tą formułę w power pilot, żeby dla każdego klienta pokazywał po 5 największe wartości sprzedaży- mam ogromną bazę danych która nie mieści się w excelu
Marzena
Cześć Marzena, podeślij plik z modelem danych i oczekiwany układ raportu – wtedy mogę podpowiedzieć na konkretnym przykładzie.
Mam ten sam problem. Dla każdej pozycji chciałabym 5 największych wartości sprzedaży, czy jest już gdzieś takie rozwiązanie?
Cześć Marta, proponuję zbudować nową miarę (oto przykład dla pokazywania tylko top 5 Nazw produktów dla Kategorii produktu):
Ranking Produktów = RANKX(ALLSELECTED(Produkty[Nazwa Produktu]),[Sprzedaż Total])
Następnie miarę wrzuć na panel boczny Filtry i ustaw warunek <=5.