Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
is de meest gebruikte DAX-functie voor ranking-inzichten in LuckyTemplates. Het is een eenvoudige functie, maar kan frustrerend verwarrend zijn voor nieuwkomers. Het is echter een zeer krachtige functie die waardevolle inzichten kan opleveren voor uw rapporten.
In dit artikel ken je de ins en outs van de RANKX DAX-functie. Je leert wanneer en hoe je het moet gebruiken en je zult zien hoe nuttig deze functie is terwijl we enkele scenario's en voorbeelden verkennen.
Inhoudsopgave
DAX RANKX Functiedefinitie en syntaxis
De functie RANKX LuckyTemplates DAX retourneert de rangschikking van een bepaald getal in een lijst met getallen voor elke rij in het tabelargument. Het kan worden gebruikt in berekeningen voor zowel berekende kolommen als berekende metingen. Hieronder vindt u de syntaxis van de RANKX-formule.
RANGX(
, , , ,
)
Voor de tabelparameter kunt u een standaardtabel invoeren die is geïmporteerd in LuckyTemplates of een berekende tabel via DAX. RANKX, als itererende functie , itereert vervolgens door die tabel en rangschikt een specifiek nummer. Dit is afhankelijk van het aantal waarden in de tabel. Als de tabel bijvoorbeeld 20 waarden heeft, heeft RANKX een classificatieresultaat van 1 tot 20.
Een sleutel tot het begrijpen van de functie RANKX is dat deze een scalaire waarde retourneert . Binnen de parameter expression hebben we een DAX-expressie nodig die een scalaire waarde retourneert. Deze uitdrukking doorloopt en herhaalt elke rij in de tabel, waardoor u overeenkomstig de rangschikkingswaarden krijgt.
De waarde- en volgordeparameters zijn optioneel, terwijl de bandenparameter u helpt bij het bepalen van de rangorde wanneer er banden zijn in uw waarden.
RANKX en LuckyTemplates DAX formuleconcepten
Er zijn een aantal concepten die u goed moet begrijpen om ervoor te zorgen dat de rankingresultaten die u verwacht, worden gecreëerd. Ik zal het belangrijkste concept bespreken bij het uitvoeren van een DAX-berekening, namelijk ' context '. Als je dit eenmaal onder de knie hebt, kun je echt begrijpen hoe je de RANKX-functie effectief kunt gebruiken.
RANKX is een zeer unieke DAX-functie waarvoor een dieper denkniveau vereist is rond de logica en hoe deze werkelijk werkt bij het uitvoeren van een berekening in een bepaalde context (bijvoorbeeld een tabel of diagram in LuckyTemplates).
Elke verschillende parameter binnen de DAX RANKX-functie kan de manier wijzigen waarop een resultaat wordt berekend. Er zijn meerdere parameters die u in deze DAX-functie kunt invoeren om te begrijpen hoe elk het onderliggende resultaat kan bepalen, wat belangrijk wordt geacht.
Daarom is het essentieel om de belangrijkste elementen en concepten te begrijpen van hoe RANKX werkt in verschillende contexten. Hierdoor kunt u er zeker van zijn dat uw berekeningen correct zijn en dat uw consumenten inzichten bekijken die echt logisch zijn.
Basis RANKX DAX-scenario
Laten we eerst eens kijken naar een eenvoudige RANKX-berekening. In dit voorbeeld proberen we de rangorde van deze producten te bepalen op basis van verkoop (dit kan ook op een willekeurige maatstaf zijn gebaseerd) voor alle verschillende producten die we verkopen.
In de eerste plaats moeten we een tabel binnen RANKX maken om elk afzonderlijk product te evalueren op basis van de maat die we hebben opgegeven. De functie kan worden gebruikt om elk filter uit de tabel Producten te verwijderen en om elk afzonderlijk product te evalueren.
Maar als we het filter verwijderen (in dit geval de functie ALLES ) en gewoon "Producten" gebruiken, zal het een ander resultaat laten zien. Daarom moeten we de functie ALLES gebruiken om het juiste resultaat te krijgen. Zo los je eenvoudige RANKX- berekeningen op.
Maar wat als het ingewikkelder wordt? Wat als u rankingresultaten nodig heeft die niet alleen gebaseerd zijn op Total Sales? Welnu, dat is waar we de huidige context van deze berekening moeten begrijpen. We moeten weten hoe we de context kunnen manipuleren om het gewenste resultaat te krijgen.
Complex RANKX DAX-scenario
Laten we proberen om exact dezelfde formule (productrangschikkingsmaatstaf) in de tabel aan de rechterkant in te voeren.
Zoals u kunt zien, heeft het ons weer een foutief resultaat opgeleverd. De reden hierachter is dat we hier ook een kolom Klantnaam hebben. Als we nog eens naar de formule kijken, zie je dat het niet elke individuele klant uitbreekt . We evalueren alleen de producten voor elke specifieke klant.
Laten we proberen de kolom Klantnaam te sorteren .
Zelfs als we de kolom Klantnaam sorteren, verandert de productrangschikking nog steeds op basis van de rangorde van het product dat ze hebben gekocht. Er zijn veel nummers die hetzelfde zijn. Een voorbeeld is plaats 17. In dit geval kan het zijn dat deze specifieke klant slechts 17 producten heeft gekocht .
Dat is misschien wat je nodig hebt in dit scenario. Maar wat als u iets complexers nodig heeft? Wat als u de rangorde van 1 tot een onbepaalde waarde van de klantnaam- en productcontexten nodig hebt ?
Zoals ik heb benadrukt, is het belangrijk om de context te begrijpen en te begrijpen hoe we de context manipuleren om het gewenste resultaat te krijgen.
In ons voorbeeld hebben we twee dimensies die uit twee totaal verschillende tabellen komen. We hebben de kolom Klantnaam uit de tabel Klanten en de kolom Productnaam uit de tabel Producten.
We moeten op de een of andere manier filters op deze virtuele tafel binnen de RANKX-logica van beide tabellen verwijderen. We moeten doen wat we deden in de eerste tabel (linkerkant), maar we moeten het doen in zowel de kolommen Klantnaam als Productnaam in beide tabellen.
Uiteindelijk krijgen we de juiste rangschikking via Total Sales of Customer Name en Product Name. Hier is de formule die we kunnen gebruiken voor dit specifieke scenario.
Met de functie kunnen we twee kolommen samenvoegen, maar het kunnen ook twee tabellen zijn. In dit geval voegen we alleen kolommen samen.
We verwijderen alle filters uit de tabellen Klanten en Producten. Vervolgens doorlopen we elke afzonderlijke rij in deze virtuele tabel en evalueren of identificeren we waar de specifieke rang voor deze specifieke klantnaam en productnaam-subset is.
Geavanceerd RANKX DAX-voorbeeld
Zoals u in de vorige voorbeelden kunt zien, geeft de RANKX-functie u waardevolle inzichten wanneer u deze gebruikt voor een reeks verschillende contexten op uw rapportpagina. Het kan echter ook een van de meest verwarrende functies zijn om in LuckyTemplates te gebruiken. Het kan u verschillende resultaten geven die correct lijken te zijn, terwijl ze in feite fout zijn. Als je niet oppast, moet je uiteindelijk het hele rapport opnieuw bewerken.
Je hebt een goed begrip van de context nodig en leert vervolgens hoe je RANKX binnen die context kunt gebruiken.
Ik zal duiken in hoe complex RANKX soms kan zijn. Ik zal een voorbeeld doornemen zodat u de vele nuances van het werken met deze functie kunt begrijpen.
In de onderstaande visualisatie hebben we de County Ranking, States Ranking en State Regions Ranking.
Het kan moeilijk zijn om de context van de berekening te beheren als u ze allemaal in één matrix wilt zien. Laten we naar de tafel kijken. U kunt zien dat het informatie bevat over de staatsregio's, staat en provincie.
Voor dit voorbeeld moet u de rangschikking van de graafschappen bepalen. Als u alleen de County, County Ranking en Total Sales in de tabel heeft, krijgt u de juiste rankingresultaten:
Maar zodra u de andere contexten in de tabel begint te stapelen, begint het rangschikkingsresultaat zich te verzamelen voor elke provincie die zich in verschillende staten en staatsregio's bevindt.
U moet dus de context van de berekening identificeren en wijzigen om ervoor te zorgen dat u de juiste algemene rang krijgt voor elke provincie, ongeacht wat er op de rapportpagina is geselecteerd. Telkens wanneer u een staat als Colorado selecteert, wordt de formule ook bijgewerkt.
U kunt ook een selectie maken met State Regions. Als u Noordoost selecteert, wordt de juiste rangschikking weergegeven.
In dit voorbeeld worden twee formules gebruikt om de County Ranking te krijgen. Dit zal u helpen het verschil te begrijpen in de resultaten die worden gegenereerd door verschillende DAX-functies samen met RANKX te gebruiken:
Formule #1: RANKX Met ALLES EN ALLESSELECTEERD
De ALL-functie is het belangrijkste onderdeel van deze formule voor County Rank:
Het manipuleert de context binnen de RANKX-formule. Het itereert vervolgens door de tabel Regio's en creëert het rangschikkingsresultaat. In dit geval werkt de ALL-functie vrijwel door elke afzonderlijke provincie, ongeacht de oorspronkelijke context.
Dit probleem wordt gecompliceerd wanneer u laag op slicer-contexten begint te plaatsen. Door te gebruiken , wordt de rangschikking automatisch bijgewerkt, afhankelijk van de selectie in de slicer. ook gebruiken om extra context op een resultaat te plaatsen of om de context van de berekening te wijzigen.
De context wordt aangepast op basis van de filters binnen de CALCULATE-functie. Hiermee wordt de rangschikking aangepast op basis van de context die afkomstig is van de slicers State en State Region.
Formule #2: RANKX met ALLES en WAARDEN
Laten we nu eens kijken naar de kolom Provincie (bijgewerkt).
U wilt er zeker van zijn dat deze kolom de algemene rang blijft weergeven, ongeacht wat er in de slicers is geselecteerd. Elke provincie moet een uniek nummer hebben.
Dit is de gebruikte formule:
Voor dit voorbeeld was er geen manier om een uniek graafschap te ontcijferen, dus werd er een andere kolom gemaakt. De kolom Volledige provincie bevat de provincie, staat en regio.
Dit geeft je een goed onderscheid tussen provincies. Op deze manier kunt u nu een virtuele tabel maken van de provincies die in de gegevens voorkomen. Voordat u dit doet, moet u de ALL-context uit de tabel Regio's verwijderen.
Dus elke context die uit de regiotabel komt, bestaat op dit moment niet. Met de functie kunt u de context van de kolom Volledige provincie weer toevoegen.
Een optie is om naar elke kolom te verwijzen met behulp van de functie ALLES, maar het betere alternatief is om alle context uit Regio's te verwijderen en alleen de volledige provincie terug te brengen. Zodra de context binnen CALCULATE is gemanipuleerd, begint de RANKX-functie vanaf daar.
RANKX doorloopt elke provincie op elke rij samen met hun totale verkoop en rangschikt ze vervolgens. Zo krijgt u de waarden van 1 tot X onder de rij Provincie (bijgewerkt). Als gevolg hiervan doen filters en slicers er niet toe en hebben ze geen invloed op de rangschikking omdat de formule is ingesteld om ze te negeren.
Andere praktische RANKX Meet LuckyTemplates-voorbeelden
Nu u de basisprincipes van RANKX- en LuckyTemplates DAX-concepten hebt geleerd, gaan we meer voorbeelden bekijken van hoe RANKX wordt gebruikt. Bekijk eerst een voorbeeld waarin RANKX wordt gebruikt om de hoogste en laagste waarden te vinden. Het volgende voorbeeld toont RANKX als een manier om resultaten te segmenteren of te groeperen.
Top- en bodemwaarden vinden met RANKX
Een algemeen gebruik van RANKX is wanneer u uw hoogste of laagste waarden wilt weten . Als u bijvoorbeeld uw topklanten of uw bodemproducten wilt vinden, kunt u RANKX samen met andere DAX-functies gebruiken.
In dit eerste voorbeeld laat ik je zien hoe je RANKX kunt combineren met CALCULATE- en functies om te zien wie onze topklanten zijn, niet alleen voor een statische periode maar ook in de loop van de tijd. Vervolgens zullen we het presenteren in een verkoopmatrix van onze top 10 klanten.
Wanneer we de kwartaal- en jaarcijfers en de totale verkoopcijfers in een matrix stoppen, krijgen we alle resultaten. Dit is geweldig, maar het kan heel moeilijk zijn om enig inzicht te zien en trends te ontdekken.
We willen trends zien en bepalen wie onze top 10 klanten zijn voor deze periode. Hadden we bijvoorbeeld een klant die een tijd een van onze topklanten was maar totaal is weggevallen? Dit zijn het soort inzichten waar we naar op zoek zijn.
We kunnen dit doen met behulp van één formule. Hier is de meting die ik heb gemaakt met behulp van de CALCULATE-functie om onze totale verkoop te berekenen voor de klanten die in de top 10 zitten.
We moeten rangschikkingslogica gebruiken om een rangschikkingslogica-indicator te maken die aangeeft dat als deze klant in de Top 10 staat, deze Total Sales-waarde wordt geretourneerd. Afgezien van het gebruik van RANKX in LuckyTemplates, gaan we ook de FILTER-functie gebruiken en vervolgens VALUES gebruiken, waarmee voor elke afzonderlijke klant een interne tabel wordt gemaakt.
Dan moeten we nadenken over welke logica we hier moeten schrijven, iets dat zegt "als de huidige rang kleiner is dan of gelijk is aan 10 gelijk aan de totale verkoop, zo niet, gelijk aan blanco." Wat echt cool is aan dit soort filterstatements, is dat je dit soort logica erin kunt schrijven.
We gaan dus de RANKX-functie en ALLE klantnamen gebruiken omdat we elke klant in een bepaalde context gaan rangschikken. De ALL verwijdert elk filter op klantnamen zodat we deze rangschikking kunnen voltooien.
We rangschikken dan op Totale Verkoop en rangschikken in aflopende volgorde, en dan gaan we naar minder dan of gelijk aan 10. dat zo is, willen we dat het gelijk is aan Totale Verkoop, en zo niet, dan blanco.
Ten slotte vervangen we onze Totale verkoop voor onze Top 10-klanten. We kunnen de Top 10-clients voor elke afzonderlijke periode zien en voorwaardelijke opmaak implementeren om het visueel beter te maken. We kunnen ook voorwaardelijke opmaak gebruiken om meer overtuigende inzichten te verkrijgen.
Als u vaak aan klanten verkoopt, wilt u het tijdsbestek verkorten; maar als jij de enige bent die 2 of 3 keer per jaar aan klanten verkoopt, dan wil je de zaken op langere termijn analyseren.
Er is nog een DAX-functie, TOPN genaamd, die ook wordt gebruikt voor rangschikkingsinzichten. Er is echter nog steeds een groot . Houd er rekening mee dat TOPN een tabelfunctie is, terwijl RANKX een scalaire waarde retourneert . De sleutel is om de context te begrijpen waarin u deze functies plaatst.
Dynamische groepering combineren met behulp van LuckyTemplates RANKX
Een andere geweldige manier om RANKX te gebruiken is voor het segmenteren of groeperen van resultaten in plaats van alleen resultaten op zichzelf te tonen zonder enige context.
In dit voorbeeld wil ik, in plaats van alleen een generiek verkoopresultaat te laten zien, zien of een klant in de best gerangschikte resultaten stond en vervolgens kijken of dit in de loop van de tijd verandert. Ik wil begrijpen hoeveel van onze verkopen afkomstig zijn van onze Top 5 klanten, Top 5 tot 20, en dan de rest van onze klanten.
Om te zien of er een trend gaande is, moeten we dynamische groepen maken en deze in de loop van de tijd evalueren. Dit is erg moeilijk om te doen, vooral als u vanuit Excel werkt. Maar als je DAX heel goed begrijpt, kun je een formule schrijven waar je helemaal niet lang over doet, en dan wordt het een patroon dat je keer op keer kunt gebruiken.
Dit is de meting die ik voor dit scenario heb gemaakt:
We beginnen met de functie CALCULATE omdat er niets gebeurt zonder CALCULATE. Vervolgens voegen we Total Sales toe, want dat is wat we optellen.
Vervolgens moeten we filteren op een tabel met klantnamen die door elke afzonderlijke klant wordt herhaald, evalueren wat hun positie is en vervolgens kijken of hun positie boven of onder de MIN en MAX ligt die we zojuist hebben gemaakt.
De volgende stap is om de functie en de FILTER-functie opnieuw te gebruiken. Kies vervolgens Klantgroepen, de tabel die ik heb gemaakt.
Vervolgens gaan we deze tabel doorlopen met behulp van RANKX. We berekenen de totale verkoop bovenaan, maar de tabel met klantgroepen is eigenlijk de rangschikking. We moeten de rangschikking van elk van deze individuele klanten krijgen en vervolgens kijken of ze binnen een van de groepen vallen die in de tabel Klantengroepen staan.
We rangschikken ze vervolgens op totale verkoop en kiezen vervolgens DESC om ze te rangschikken als 1 voor de hoogste en 200 voor de laagste. We sluiten het dan af met een groter dan de voor de hoogst gerangschikte klanten. Ten slotte zullen we RANKX gebruiken met dezelfde logica die we hierboven hebben gebruikt, maar dan met minder dan of gelijk aan .
keer op keer gebruiken in zoveel toepasselijke scenario's. Met RANKX kunt u dynamische rangschikkingstabellen maken , waardoor u ongelooflijke rangorde-inzichten krijgt.
Conclusie
RANKX is een eenvoudige functie, maar geen gemakkelijke functie om te gebruiken. De sleutel is om je te concentreren op de nuances om de functie beter te kunnen begrijpen. Er zijn zoveel manieren om de RANKX-functie in DAX-berekeningen te gebruiken, vooral in combinatie met verschillende functies. Je zult versteld staan hoe flexibel deze functie kan zijn binnen LuckyTemplates.
De voorbeelden die ik je in deze blog heb laten zien, zijn absoluut de beste manieren om RANKX te demonstreren, vooral als het gaat om de veelzijdigheid ervan bij het berekenen van elke rangschikkingstype-analyse. Het kan in een aantal verschillende scenario's worden gebruikt.
De belangrijkste conclusie hier is dat u echt de context moet begrijpen waarin uw RANKX-functie wordt geplaatst.
Ik hoop dat u deze inhoud nuttig vindt en deze gebruikt in uw eigen werkomgeving.
Proost!
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten