Gruppera tårtbitar i Övriga

När man skapar ett tårtbitsdiagram i Power BI visas som standard alla bitar oavsett hur små de här. Detta får grafen att bli svårläst vilket skapar en sämre förståelse för användarna.

Att skapa en tårtbit för övriga värden kräver ett antal steg i utvecklingen. Vi kan hoppas att Microsoft i framtiden förenklar detta och lägger till en enkel inställning istället.

Vi börjar med att läsa in data för en applikation. I detta fallet utgår vi från enkel demodata kring försäljning där vi bland annat har kundorder och information om kunder. På kundorder finns kvantiteten som sålts och även en koppling till kundinformationen där vi kan se vilket land en kund hör till. Med detta kan vi bland annat visa hur mycket kvantitet vi sålt till olika länder. Kvantiteten summeras upp i ett uttryck Total Quantity.

Total Quantity = SUM('Order'[Quantity])

I kundtabellen finns ett fält Country som vi använder som dimension. Detta ger oss grafen nedan. Som vi kan se visas många små tårtbitar som ändå inte går att utskilja. För mycket information i samma graf gör grafen svårläst.

Skapa ett en tabell med en rad för Others
Det första vi ska göra är att skapa en ny tabell som innehåller alla värden för länder i kundtabellen samt en extra rad för special-kunden Others. Others kan döpas till något annat om man föredrar. Tabellen kan vi skapa med DAX och den kommer att vara dynamisk så till vida att om ett nytt land tillkommer vid en omladdning så läggs det till med automatik i vår nya tabell.

Gå till Model-tabben och välj New Table. Ange nedan kod.

Others_Country = 
UNION (
    DISTINCT(
        SELECTCOLUMNS(
            Customer,"Country",Customer[Country]
        )
    ),
    ROW("Country","Others")
)

Others_Country = Namnet på tabellen vi skapar – du kan byta detta mot något motsvarande som du vill göra
Customer = Tabellen som innehåller fältet Country vi vill läsa ut
Country = Fältet vi vill läsa


Så byt Customer mot den tabellen din dimension finns i och på samma sätt Country mot namnet på din dimension.

Koppla den nya tabellen Others_Country till fältet i datamodellen.

Skapa ett summerat mått
Nu behöver vi skapa ett nytt mått som grupperar upp de tårtbitar som är mindre än det antal vi vill visa. I mitt exempel visar jag fem länder + Others. Måttet skapar jag i Order-tabellen, men det går att lägga på olika ställen i modellen.

Total Quantity Others = 
VAR TOP_N =
    CALCULATETABLE ( Others_Country, TOPN ( 5, ALL ( 'Others_Country' ), [Total Quantity] ) )
RETURN
    IF (
        SELECTEDVALUE(Others_Country[Country]) = "Others",
        CALCULATE ( [Total Quantity], ALL ( 'Others_Country' ) ) - CALCULATE ( [Total Quantity], TOP_N ),
        IF (
            SELECTEDVALUE(Others_Country[Country]) = BLANK (),
            CALCULATE ( [Total Quantity], ALL ( 'Others_Country' ) ),
            CALCULATE ( [Total Quantity], INTERSECT ( 'Others_Country', TOP_N ) )
        )
    )

Måttet är långt, men du kan byta term för term mot det som passar i ditt fall.
Total Quantity = Uttrycket som innehåller grundberäkningen vi vill utgå från
Others_Country = Den nya tabellen vi skapade ovan
Country = Fältet vi vill gruppera
5 = Antalet tårtbitar

Om vi nu i ett tårtbitsdiagram visar Country från Others_Country som dimension och vårt nya Total Quantity Others som mått får vi följande diagram:

De fem största (enligt Total Quantity) länderna visas som tårtbitar och övriga grupperas till Others.

Sortera Others
Det enda som återstår att göra är att sortera diagrammet så att Others kommer sist. För detta ska vi skapa ett nytt mått som ger Others sista positionen i en rankning. Skapa ett mått i i Others_Country:

CountryRank = 
VAR Country = CALCULATE(LASTNONBLANK(Others_Country[Country],0))
RETURN
IF(Country="Others",99999,
RANKX(
    ALL(Others_Country),
    SUMX(RELATEDTABLE('Order'),'Order'[Quantity])
))

Lägg till måttet som Tooltip i grafen och välj sedan att sortera enligt det nya rank-fältet ascending. Du kan också visa namnet på landet vid som labels genom att välja All detail labels för Label contents i grafens inställningar.

Nu har vi fått en graf som ser ut enligt nedan.

Dela inlägget
LinkedIn