Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
In deze zelfstudie laat ik u een gedetailleerde analyse van DAX-metingen zien over hoe ik een van mijn favoriete pagina's heb samengesteld in het rapport dat ik heb ingediend voor de 10e LuckyTemplates-uitdaging.
De pagina Rankings gebruikt veel uitdagende DAX-metingen. Maar met de hulp van een van onze LuckyTemplates-experts, Antriksh Sharma, plus wat maatvertakking, kon ik de resultaten krijgen die ik wilde.
Inhoudsopgave
Overzicht van de ranglijstpagina
Voordat we ingaan op onze DAX-meetanalyse, wil ik u de verschillende delen van de pagina laten zien waar we vandaag aan werken.
Zo ziet de Rankings-pagina eruit. In tegenstelling tot de andere pagina's in mijn verslag, bevat dit voornamelijk kaarten.
Elk van deze kaarten is gemaakt met behulp van de ingebouwde kaartvisual in LuckyTemplates-desktop onder het deelvenster Visualisaties.
Hiermee kunt u terug navigeren naar andere pagina's in het rapport via deze pictogrammen hier bovenaan.
De andere pagina's van dit rapport heb ik besproken in de andere tutorials. Als je de andere pagina's in dit rapport bekijkt, zie je dat ze ook pictogrammen hebben die naar deze Rankings-pagina leiden .
De linkerkant van de pagina toont de algemene top vier planten en leveranciers, terwijl de rechterkant de onderste vier toont.
Ik heb ook individuele DAX-metingen gemaakt om meer specifieke resultaten te krijgen. Deze drie bovenaan tonen bijvoorbeeld de top vier en de onderste vier fabrieken en leveranciers op basis van de downtimeminuten , de gemiddelde downtimeminuten en defecten .
Ik ging zelfs nog specifieker op het onderste deel van de rapportpagina. Aan de linkerkant kreeg ik de bovenste vier en de onderste vier planten op basis van downtime-minuten, gemiddelde downtime-minuten en defecten.
Aan de rechterkant deed ik hetzelfde, maar deze keer op basis van de gegevens van de leverancier.
Terwijl ik deze tutorial doorloop, zal ik je het verhaal vertellen van hoe ik op het idee voor deze pagina kwam. Vervolgens zal ik u stap voor stap uitleggen hoe elk van deze maatregelen tot stand is gekomen.
Ideeën opdoen voor de te gebruiken DAX-maatregelen
Ik kreeg het idee voor de DAX-metingen in deze dia van een van onze , Antriksh. Hij is een DAX-goeroe en is goed in het optimaliseren van maatregelen. Het was leuk om met hem samen te werken aan deze DAX-meetanalyse.
Ongeveer twee weken voordat de 10e LuckyTemplates Challenge werd aangekondigd, hadden we een gesprek op Skype over een PBIX-bestand dat hij op het LuckyTemplates-forum had geplaatst.
Zoals je kunt zien, heb ik een foto van Antriksh toegevoegd omdat hij de inspiratiebron was voor de pagina die we hier zullen bespreken. Ik zei hem dat ik hem de eer zou geven als ik deze tutorial zou voltooien.
Het model is eenvoudig en gebruikt enkele basisgegevens zoals Klant, Producten en Verkoop.
Het heeft een korte lijst met landen aan de linkerkant.
Antriksh heeft een meting gemaakt voor de Top N landen per verkoop . Ik heb de lijst gesorteerd van hoog naar laag, zoals aangegeven door de pijl naar beneden.
Aan de rechterkant is er een kaart met de top vier en de onderste vier landen. De top vier lijst toont de Verenigde Staten , Australië , het Verenigd Koninkrijk en Duitsland , die overeenkomen met de top vier op de lijst.
De onderste vier verschijnen echter in de tegenovergestelde volgorde. In plaats van onderaan te gaan, namelijk Armenië , begon het op de 5e plaats op de lijst, namelijk Kirgizië .
Daarom heb ik onderaan nog een kaart gemaakt die een herziene versie van de hierboven gebruikte maat gebruikt.
Merk op dat de onderste vier nu overeenkomen met de volgorde die ik wilde: Armenië , Thailand , Syrië en Kirgizië .
Laten we ingaan op de DAX-maatregelen achter deze kaarten. Ik begin met de maat die Antriksh voor de eerste kaart heeft gemaakt.
De originele maat heeft meer dan 97 rijen om de resultaten te krijgen die we op die eerste kaart zagen.
Als we naar de 20e rij scrollen, kunnen we zien dat Antriksh ASC gebruikte . Dat is de reden waarom de onderste vier zo verschenen.
Nu ik weet waar het probleem begon, zal ik je laten zien hoe mijn herziene maatregel eruit ziet.
Laat me de tweede kaart uitlichten, zodat ik je de maat erachter kan laten zien.
Zoals je kunt zien, zijn er slechts 41 rijen in mijn herziene formule.
Ik heb met Antriksh gewerkt om het met 60% of 70% te verkleinen dan de oorspronkelijke maat. Het is niet alleen minder ingewikkeld, het geeft me ook de resultaten die ik nodig heb – met de top vier vanaf de 1e tot de 4e en de onderste vier vanaf de 8e tot de 5e.
Een paar weken na mijn gesprek met Antriksh werd de 10e LuckyTemplates Challenge gelanceerd. Een deel van de vereisten betrof een classificatiesysteem, wat me deed terugdenken aan de DAX-maatstaf van Antriksh. Ik realiseerde me dat ik de maat kan kopiëren en plakken, en dan wat maatvertakking kan toepassen om de resultaten te krijgen die ik nodig heb.
Dax Meetanalyse: stap voor stap de maatstaf opbouwen
Nu ga ik de metingen opsplitsen die ik voor de Rankings-pagina heb gebruikt om de resultaten te krijgen die ik wilde. Deze analyse van de DAX-meting kan me helpen uitleggen hoe de meting werkt, rekening houdend met het aantal rijen dat nodig was om deze te voltooien.
In mijn andere tutorials heb ik laten zien hoe ik het leuk vind om mijn maatregelen te groeperen om dingen overzichtelijker te maken . Dus heb ik een submap gemaakt voor Top N v2.
In deze map staat mijn maat voor Top N Plants Vendors Downtime Minuten . Je zult zien dat het dezelfde 41 regels code heeft die ik je eerder liet zien toen ik de maatregel van Antriksh besprak. In feite hoefde ik alleen maar een aantal items te vervangen om de gewenste resultaten te krijgen.
Om dit beter uit te splitsen, heb ik deze hele maat opgesplitst in 9 verschillende delen. Ik zal elk van deze stappen van één tot negen doornemen en uitleggen wat elk van deze tot stand brengt.
De maatregel gebruikt een aantal variabelen zodat ik duidelijkere resultaten kan krijgen. Door deze variabelen in te stellen, kan de eindgebruiker zien hoe de meting samenkomt en wordt de details uitgelegd van hoe ik elk resultaat heb verkregen.
Laten we beginnen met de eerste stap, die de met de naam BaseTable instelt.
In deze BaseTable kun je zien dat ik verwijs naar gegevens voor Plant Location en Vendor .
Wanneer u teruggaat naar het PBIX-bestand, ziet u de bovenste kaart die verwijst naar zowel de planten als de leveranciers. Daarom heb ik alle gegevens hier nodig, in tegenstelling tot de kaart verderop, die ook voor downtime-minuten is, maar alleen locatiegegevens van de fabriek gebruikt.
Aangezien de eerste stap eenvoudig is, gaan we verder met stap twee.
De tweede stap begint met de functie .
Deze functie verwijst naar de variabele die ik in stap 1 heb gemaakt en naar de downtime-minuten .
Het zorgt ervoor dat er een waarde verschijnt door de functies en samen te voegen . Ik wil ook dat de resultaten groter zijn dan of gelijk zijn aan nul. Dat komt omdat de gegevensset die voor dit rapport is gebruikt enkele combinaties bevatte waarin de fabriek of de leverancier leeg is. Er zijn ook vermeldingen waarbij de waarde nul is.
De derde stap omvat nog een andere reeks variabelen, beginnend met de waarde voor N.
Hier is N gelijk aan 4 omdat ik wil dat de bovenste vier en de onderste vier verschijnen.
Het stelt ook een voorvoegsel in voor Top & N, plus een streepje.
Wanneer het is samengesteld, wil het gewoon "Top 4 -" laten zien, en dat is hoe de bijbehorende kaart begint voordat de verwachte resultaten worden opgesomd.
Laten we nu naar de vierde stap gaan. Dit is waar ik begin te komen met de verwachte resultaten.
Sommigen zouden in dit geval overwegen om Ik probeer tenslotte de inzendingen te rangschikken en de beste resultaten te bedenken. Antriksh en ik vonden echter dat in dit geval geschikter zou zijn, aangezien we alleen de top vier in ASC- volgorde nodig hebben.
Vervolgens heb ik de functie gebruikt, die de locatiegegevens van de plant gebruikt.
Het stelt ook het formaat in voor hoe ik wil dat de lijst wordt weergegeven. Daarom zie je dat het een backslash en een komma heeft, plus aanhalingstekens om spaties aan te duiden. Het is ook ingesteld op ASC- volgorde, dus als ik terugga naar het PBIX-bestand, zie je de lijst van de top vier met backslashes en komma's tussen de resultaten.
The fifth step of the measure starts by replacing the last comma on the list with an And.
When you go back to the slide, you’ll see that the last entry does have an “and” before the vendor and plant location.
This is what’s being accomplished in step five. It’s creating a list and using the function for the LastCommaPosition.
Notice that this says that N is greater than 2. This means that the substitution happens after the 3rd string.
The sixth step will look familiar because it basically copies the same thing I did on top to start the list with “Top 4 -“.
The only difference here is that I want it to show up as “Bottom 4 -” instead of “Top 4 -“.
The part I previously discussed about using is once again used here at the bottom, but now I’m calling the variable BottomData instead of TopData. Again, this part inserts the backslash and comma in between the names of the plants and vendors.
When we look back at Antriksh’s original measure, this is also the same part where he used ASC, which resulted in the list coming out not as I expected. That’s why I’m using DESC here instead.
So basically, at this point onwards, most of it is just copied and pasted from the earlier parts of the measure. I’m just replacing the word “Top” with “Bottom” in most cases.
For step 8, I want to change the last comma with the word And.
The ninth step wraps up this measure.
This uses the function with the number 10. This ensures that the Top 4 and the Bottom 4 are showing up on separate lines. Think about it as the return key on your keyboard. It makes you go down to the next row so that the top and bottom four don’t show up on a single line.
Verifying The Results
Antriksh and I were able to trim down the original 90 plus rows of DAX into 41 lines. However, 41 lines might still be a lot for some users. Breaking down that measure the way we did was a great way to understand why the measure had to be written that way.
Nu ik heb uitgelegd waar elke stap over ging, is het tijd om te verifiëren of die maatregel echt doet wat hij moet doen. Laten we naar de Rankings-pagina gaan en de resultaten verifiëren met het andere deel van het rapport.
Ik zal beginnen met de fabrieken/leveranciers op downtime-minuten .
Dit toont de top vier als Linktype in New Britain, Flashpoint in Frazer, Quinu in Twin Rocks en Layo in Henning. Wat betreft de onderste vier, het toont Wikido in Middletown als de slechtste overall.
Nu ga ik naar de pagina voor verkopers en planten gecombineerd om te zien of de resultaten overeenkomen.
Met de kolom Rangschikken op downtimeminuten gesorteerd van boven naar beneden, wordt het juiste resultaat voor de top vier weergegeven.
Sommigen van jullie vragen zich misschien af waarom New Britain als tweede op deze lijst verschijnt, terwijl het bovenaan de pagina met de ranglijst komt te staan .
Merk op dat de ranglijst drie inzendingen als top 1 laat zien. Deze werden gerangschikt met behulp van RANKX.
Als u echter naar de kolom Downtimeminuten kijkt, ziet u dat New Britain 0 toont, terwijl Frazer en Twin Rocks elk 1 tonen. Daarom kwam op de kaart op de Rankings-pagina New Britain nog steeds boven Frazer en Twin Rocks uit. zelfs als ze allemaal op nummer één stonden.
Laten we nu eens kijken of de onderste vier correct zijn. Sorteer gewoon de rangschikking op downtime-minuten in aflopende volgorde.
Zoals je kunt zien, worden Middletown, Waldoboro, Barling en Chesaning weergegeven als de onderste vier op de kaart. Dit betekent dat de maatstaf voor Plants/Vendors By Downtime Minutes correct is.
Laten we nu eens kijken naar de kaart voor Plants By Downtime Minutes .
Hieruit blijkt dat de top vier uit Reading, Middletown, Waldoboro en Clarksville bestaat. De onderste vier zijn Riverside, Charles City, Twin Rocks en Chesaning.
Om deze resultaten te verifiëren, ga ik op de pagina Planten kijken of de resultaten overeenkomen. Het grootste verschil hier is dat de kaart die we eerder hebben geverifieerd gebaseerd was op zowel de planten- als de leveranciersgegevens, terwijl deze kaart alleen kijkt naar de plantengegevens.
Wanneer we de rangorde sorteren op downtimeminuten van boven naar beneden, blijkt dat de top vier Reading, Middletown, Waldoboro en Clarksville zijn.
Laten we nu de rangorde deze keer omdraaien om te zien of de onderste vier overeenkomen. Je zult zien dat van de 30 planten op onze lijst, Riverside, Charles City, Twin Rocks en Chesaning de onderste rangen krijgen.
Dit betekent dat we de juiste resultaten zien voor planten.
Laten we deze keer eens kijken naar een kaart die leveranciers rangschikt op defecten .
Ik ga deze keer naar de leverancierspagina om te zien of Dablist de beste leverancier is en Yombu de slechtste op basis van defecten.
Wanneer we de leveranciers sorteren van beste naar slechtste, lijkt het erop dat de top vier overeenkomt met de kaart op de pagina met ranglijsten .
Laat me de rangorde veranderen van slechtste naar beste en kijken of de onderste vier ook overeenkomen.
Je zult zien dat Yombu inderdaad de slechtste is, samen met de andere drie in de onderste vier lijst op de kaart.
Dax Meetanalyse: Maatvertakking toepassen
De DAX-meetanalyse die we eerder deden, keek alleen naar de meetwaarde achter Plants/Vendors By Downtime Minutes . Maar hoe werkte ik aan de maatregelen voor de andere kaarten? Dit is waar maatvertakking om de hoek komt kijken.
Maatregelvertakking omvat het gebruik van een bestaande maatstaf om andere resultaten af te leiden.
In dit rapport heb ik simpelweg de maat gekopieerd en geplakt die we eerder hebben besproken en enkele elementen aangepast aan wat ik nodig heb.
De naam van de maatregel is natuurlijk het eerste dat ik ga veranderen. Maar meer dan dat, ik moet ook de gegevens wijzigen waarnaar ik verwijs. We hebben bijvoorbeeld zowel de locatie van de fabriek als de gegevens van de leverancier gebruikt voor onze oorspronkelijke meting.
Maar als ik dezelfde maatstaf ga gebruiken voor Plants By Downtime Minutes , dan zou ik de leveranciersgegevens moeten verwijderen en me alleen moeten concentreren op de locatie van de fabriek.
Ik zal dat moeten veranderen voor alle andere delen van dezelfde maat die ook naar beide sets gegevens verwijst, zoals toen ik CONCATENATEX gebruikte .
Hetzelfde geldt voor de Downtime Minuten . Als ik aan een kaart zou werken die kijkt naar Gemiddelde Downtime Minuten of Defecten , dan hoef ik alleen maar dit onderdeel te wijzigen.
Wat betreft het gedeelte waar '@DowntimeMins' in de meting staat, het zou geen kwaad om dat zo te houden, zelfs als ik verwijs naar mijn Defecten of mijn Gemiddelde Downtime-minuten.
Maar als jij het type bent dat dingen graag in een bepaalde volgorde houdt, kun je dit ook veranderen. Houd er rekening mee dat als u dit wijzigt, u dit op de hele pagina moet wijzigen. Dat betekent wat extra moeite doen voor hetzelfde resultaat.
U kunt zich voorstellen hoeveel tijd ik heb bespaard door het gebruik van maatvertakking . Door het op deze manier te doen, hoef ik niet steeds nieuwe metingen te maken voor elk onderdeel van het rapport waaraan ik werk. Ik hoef alleen maar de bestaande maatstaf aan te passen op basis van de resultaten die ik wil zien, waardoor mijn rapportontwikkelingstijd aanzienlijk wordt verkort.
Laten we, om u te laten zien hoe ik dat deed, eens kijken naar leveranciers op downtime-minuten .
Wanneer ik de maat omhoog trek, ziet u dat deze dezelfde 41 rijen heeft als Planten / Leveranciers op downtimeminuten .
In stap 1 heb ik echter alleen naar leveranciersgegevens verwezen en de fabriekslocatie verwijderd.
Ik heb de gegevens ook op andere plaatsen gewijzigd waar het van toepassing is.
Ik heb Downtime Minutes behouden , omdat ik hierop de resultaten baseer.
Dit zijn dus snelle oplossingen voor de maatregel, zodat deze kan worden toegepast op de andere delen van het rapport.
Laat me je hier nog een voorbeeld laten zien. Laten we deze keer eens kijken naar Leveranciers op defecten .
Nogmaals, we kijken hier alleen naar de verkoper.
Wat ik hier wel heb veranderd, is de verwijzing naar Downtime Minutes . In plaats daarvan heb ik Defecten gebruikt .
Ik heb er ook voor gezorgd dat de andere rijen nog steeds de gegevens voor Vendor gebruiken.
DAX-metingen in LuckyTemplates met behulp van vertakking van metingen
DAX-meetgroepen in uw rapporten implementeren – Een LuckyTemplates-modelleringsreview
Unieke inzichten in LuckyTemplates extraheren met DAX-metingen rangschikken
Conclusie
Dat was krachtig DAX-werk van Antriksh. Ik vond het zeker leuk om ermee te werken , het uit te breiden en toe te passen op de verschillende onderdelen van mijn rapport .
De diepgaande analyse van de DAX-metingen die we hebben gedaan, was ook een geweldige manier om elk aspect van het proces te begrijpen. Werken aan een lange meting lijkt in het begin misschien ontmoedigend, maar een grondige analyse van DAX-metingen zoals deze kan helpen om dingen uit te zoeken.
Door aan deze pagina te werken, werd ook het belang benadrukt van het hebben van een samenwerkende gemeenschap zoals die we hier bij LuckyTemplates hebben. Het is geweldig dat iedereen de kans krijgt om met mensen als Antriksh samen te werken, maar ook met andere leden en experts die zelf ook een paar tips en trucs hebben.
Al het beste,
Jarrett
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