Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Ik ga je laten zien hoe je moet omgaan met een tabel met valutakoersen waarin sommige dagen niet worden meegeteld . Deze dagen kunnen weekenden of feestdagen zijn.
Dit kan soms geen probleem zijn, vooral als het bedrijf waarvoor u een rapport opstelt niet open is in het weekend en op feestdagen. Maar als ze dat wel doen, kan het zijn dat u aan het einde van de maand met onjuiste totalen komt te zitten.
Als u weet hoe u met ontbrekende gegevens moet omgaan, kunt u de verkoop eerlijk vergelijken als er meerdere valuta's worden gebruikt. Er kunnen bijvoorbeeld dagen zijn waarop u denkt dat de totale verkoop afneemt omdat de waarde van de valuta is gedaald. In werkelijkheid kan de totale verkoop laag zijn omdat u niet alle dagen in de gegeven periode meetelt.
In dit voorbeeld ga ik de laatst beschikbare valutakoers nemen en deze op de ontbrekende datums gebruiken om de ruimte op te vullen. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Inhoudsopgave
Gegeven gegevens in de tabel met valutakoersen
Hieronder vindt u de feitentabel, de tabel Valutakoersen . Het gebruikt de euro als basisvaluta.
Het toont gegevens van januari 2016 met de bijbehorende Crossrate op elke dag.
Vanaf 1 januari ziet alles er goed uit. Maar toen ik de 26e raakte, is de volgende datum op de volgende rij de 29e.
Dit betekent dat ik gegevens mis van de 27e en 28e .
Houd er rekening mee dat sommigen misschien liever Power Query gebruiken om met deze situatie om te gaan. Voor nu wil ik me alleen concentreren op DAX.
Laten we nu zeggen dat ik 0,920 wil gebruiken op de 27e en 28e. Dit is de Crossrate die op de 26e wordt gebruikt. Hoe doe ik dat met DAX?
Sommigen zullen zeggen dat dit eenvoudig in Excel kan worden gedaan. Ze kunnen tot op zekere hoogte gelijk hebben.
Maar het voordeel dat LuckyTemplates heeft ten opzichte van Excel, is de mogelijkheid om vanuit verschillende perspectieven verder in de gegevens te duiken zonder iets opnieuw te hoeven doen of te wijzigen, wat hoogstwaarschijnlijk in Excel zou gebeuren.
Ik ga u alle maatregelen laten zien die u moet overwegen, evenals de verschillende stappen die ik zou nemen om eventuele ontbrekende gegevens in de tabellen met valutakoersen te dekken.
Valutakoersmaat
Laat me je eerst mijn hoofdtabel laten zien. Ik heb hier al wat gegevens, waaronder de datum en de valutakoers e voor euro .
In dit geval gebruikt de wisselkoers gewoon de functie.
Aangezien ik te maken heb met één valutakoers per dag, is het gemakkelijk om functies zoals SUM , , of iets dergelijks te gebruiken. De gegevens die per rij worden weergegeven, zouden volkomen logisch zijn.
Het enige probleem hier is wat er met de Total gaat gebeuren .
Dit toont het totaal als 26.693, wat helemaal nergens op slaat. Het is letterlijk een opsomming van de wisselkoersen van alle dagen. Daarom zou ik een manier moeten vinden om de dagen te herhalen om de echte Total te krijgen .
Dus ik zal naar mijn valutadatum -meting kijken om dat op te lossen.
Huidige datummaat
Persoonlijk maak ik altijd een Current Date- meting die de datum waarop ik me bevind binnen de Current Filter- context brengt .
Ik gebruik ook liever . In dit voorbeeld geeft het gebruik van de MAX- functie me 1/31 bij het totaal, wat logischer zou zijn aangezien dat de laatst opgegeven datum is.
Laatste valutadatum
Mijn tabel bevat ook de laatste valutadatum . Ik krijg dit door de functie te gebruiken en te verwijzen naar de tabellen FactCurrencyRates en Date .
Hoewel dit de functie LASTDATE toont , is het ook mogelijk om MAX te gebruiken . Dit gebruikt hetzelfde uitgangspunt als de tabel Huidige datum , maar geeft een specifiek tijdstip in relatie tot de tabel Valutakoersen .
Als ik naar beneden scrol, zie ik dat er geen gegevens zijn voor de 27e en 28e van de maand.
Om die ontbrekende dagen aan te pakken, ga ik het hebben over de kolom Last Reported Currency Date .
Datum van laatst gerapporteerde valuta
De laatst gerapporteerde valutadatum bepaalt welk tarief moet worden gebruikt voor de ontbrekende dagen. Het concept is dat de laatst gerapporteerde valutakoers dezelfde koers is die wordt gebruikt op de dagen met ontbrekende gegevens .
Aangezien er geen data zijn op zowel de 27e als de 28e, betekent dit dat de data voor de 26e worden toegepast.
Ons voorbeeld laat ook zien dat de laatst gerapporteerde valutadatum niet noodzakelijkerwijs de vorige dag hoeft te zijn. Aangezien er ook geen gegevens zijn voor de 27e, zou ik nog steeds terug moeten gaan naar de 26e om erachter te komen welk tarief ik op de 28e moet gebruiken.
Voordat ik inga op de maat die laat zien hoe dit werd gedaan, onthoud dat alles hier gebeurt in de context van hoe een filter werkt. Ik moet nadenken over welke specifieke gegevens ik wil focussen.
Aangezien ik op de rij sta voor de 27e van de maand, wil ik alle filterverwijzingen verwijderen en me in plaats daarvan concentreren op de 26e. Dit betekent dat u de of meeneemt , aangezien ik hiermee het toegepaste filter kan wijzigen. Raak niet zo in de war met de functie, die de gegevens alleen maar verder kan beperken.
Dus hier is de maatstaf die ik heb gebruikt voor de datum van de laatst gerapporteerde valuta . Ik gebruikte CALCULATE voor dit voorbeeld.
Ik probeer altijd zoveel mogelijk variabelen te vinden. Ik hoef alleen maar naar het bereik van elke variabele te kijken, aangezien variabelen de waarde aannemen van waar ze zijn gedefinieerd .
In dit geval ga ik de huidige datum gebruiken, omdat ik weet dat deze variabele niet zal veranderen, ongeacht welke functies ik gebruik.
Merk op dat het niet vereist is om deze variabele te vinden. Het is gewoon een gewoonte waarmee ik de reikwijdte van elke variabele die ik in de meting ga gebruiken, kan controleren.
Terugkomend op de meting, hoe vertel ik DAX om de filters voor de huidige datum te verwijderen en mij de laatst geregistreerde valutadatum te geven ?
Eerst zal ik FILTER gebruiken voor de tabel (DimDate).
De functie ALLES verwijdert de toegepaste filters en opent de DimDate-tabel die ik kan gebruiken.
Vervolgens gebruik ik MIN om DAX te vertellen dat ik het deel van de DimDate-kolom wil gebruiken dat gelijk is aan de Last Currency Date of de Current Date .
Wat als de laatste valutadatum en de huidige datum niet hetzelfde zijn? Gebruik dan altijd de Datum Laatste Valuta .
Dit is de reden waarom tussen 26/1 en 27/1 de maat 26/1 zal zijn. Vanaf hier wordt de juiste datum toegepast op de tabel Valutakoersen om de laatst gerapporteerde valutakoers te krijgen .
Laatst gerapporteerde valutakoers
Laat me de laatst gerapporteerde valutakoers naar mijn tabel slepen.
U zult zien dat de 27e en 28e nu 0,9200 als valutakoers gebruiken, aangezien het dezelfde koers is die op de 26e werd gebruikt.
Hieronder staat de maatstaf die ik heb gebruikt voor de laatst gerapporteerde valutakoers .
Nogmaals, ik begin altijd met het definiëren van enkele variabelen. In dit geval gebruik ik Currency Selected en Last Reported Currency Date .
Ik ga Currency Selected gebruiken omdat ik hier met verschillende valuta's te maken heb. Daarom moet ik vaststellen welke specifieke valuta op een bepaald moment wordt geëvalueerd.
In dit voorbeeld zijn de verschillende valuta's toegankelijk met behulp van de gegeven slicer.
Het hoeft natuurlijk geen snijmachine te zijn die in gebruik is. Het kan ook afkomstig zijn van een tabel of een visual. Waar het om gaat, is dat er een filter is waarmee u de gegevens in verschillende valuta's kunt zien.
Wat betreft de LastReportedDate , het is hetzelfde als de Last Reported Currency Date waar ik het eerder over had.
Voor de variabele Rate heb ik de functie gebruikt .
Ik haal de Crossrate uit de feitentabel voor CurrencyRates .
Aangezien ik veel valuta's in een enkele tabel heb, kan ik de datum niet alleen als een enkel referentiepunt gebruiken. Het moet een combinatie zijn van de juiste valuta en de juiste datum.
Daarom verwijs ik ook naar de valutaticker is gelijk aan de geselecteerde valuta .
Ik verwijs ook naar de LastReportedDate .
Dat is waarom als je naar de tafel kijkt, het de 26e drie keer laat zien voordat het naar de 29e springt.
Omgerekende verkopen met behulp van de laatst gerapporteerde koers versus de huidige datum
Ik ben nu op het laatste stuk, wat inhoudt dat de verkopen worden omgerekend met behulp van de laatst gerapporteerde valutakoers .
In feite neemt de meting gewoon deze laatste gerapporteerde valutakoers en vermenigvuldigt deze met de basismaat , in dit geval de totale verkoop .
Zodra die maatstaf is toegepast, ziet u dat deze twee datums leeg blijven. Dit betekent dat er geen verkoop is op deze data .
Het blijkt ook dat er verkopen zijn op de 27e en 28e (waar voorheen geen valutagegevens waren).
Sinds ik naar de Last Reported Currency Rate heb verwezen , zijn deze getallen omgezet in euro's.
Deze keer laat ik je de geconverteerde verkopen zien op basis van de huidige datum.
Deze keer wordt alleen gekeken naar de huidige datum in plaats van rekening te houden met de laatst gerapporteerde datum .
Zodra ik die maat in de tabel in een andere kolom heb gezet, toont het alleen lege ruimtes op de 27e en 28e.
Als we de geconverteerde verkopen vergelijken tussen het gebruik van het laatste rapportpercentage en het gebruik van de huidige datum , laat het totaal een enorm verschil zien.
Waar de geconverteerde verkopen met de laatste gerapporteerde datum een totaal van meer dan 4 miljoen laten zien, toont de geconverteerde verkopen met behulp van de huidige datum slechts 3,8 miljoen in totaal.
Daarom is het erg belangrijk om te begrijpen welke variabele je gebruikt. Als je naar het totaal kijkt, lijkt het er alleen op dat de euro een grote klap heeft gekregen, waardoor de waarde naar beneden is getrokken. Maar in werkelijkheid is de daling van Totaal het gevolg van niet-verantwoorde gegevens in de tabel Valutakoersen.
De gegevens opschonen
Nu ik de ontbrekende gegevens heb ingevuld, ga ik de tabel opschonen.
Ik heb hier zojuist een kolom Geformatteerde verkoop toegevoegd die de cijfers duidelijk in euro's weergeeft.
Sinds ik zoveel stappen heb doorlopen, heb ik hier nogal wat kolommen verzameld.
Maar niet al deze zijn nodig bij het presenteren van de gegevens. Dus ik zal doorgaan en die verwijderen door ze te verwijderen onder het deelvenster Waarden .
Als die eenmaal zijn verwijderd, krijg ik een schonere tabel met alleen de noodzakelijke gegevens.
Merk op dat ik de valuta nog steeds kan wijzigen door de slicer hier aan de rechterkant te gebruiken.
Om mijn tabel grondiger te maken, voeg ik alle andere valuta's toe door de optie Single Select uit te schakelen .
Hierdoor worden mijn nummers weergegeven in USD, euro's en Britse ponden.
Ik zie hier ook enkele lege ruimtes die de dagen vertegenwoordigen waarop er geen verkoop is.
Die verwijder ik door " Toon items zonder gegevens " uit te zetten.
Nu bevat de tabel alleen rijen die de datums met verkopen vertegenwoordigen.
Dit geeft me een goede vergelijking van de cijfers op basis van de verschillende valuta's.
De totalen tonen ook de juiste getallen omdat ik heb gebruikt om door elk van de rijen te itereren.
Dit is erg belangrijk. Als u SUMX niet gebruikt , voegt u uiteindelijk alle kolommen toe zonder na te denken of de juiste valutakoers wordt gebruikt.
Een valutaconversietabel maken in LuckyTemplates
Meerdere valutalogica in LuckyTemplates – EEN LOOKUPVALUE-voorbeeld
Valuta's opmaken in LuckyTemplates met behulp van DAX
Conclusie
Zoals ik al eerder zei, is dit niet noodzakelijkerwijs de enige manier om met ontbrekende gegevens om te gaan. Er zijn eigenlijk een heleboel andere manieren om dit te doen.
In sommige gevallen kunt u bijvoorbeeld de gegevens van het begin van de maand gebruiken en datzelfde getal toepassen op uw hele tabel Valutakoersen. Ik zal die andere benaderingen in de toekomst in aparte blogs bespreken.
Voor nu heb ik deze aanpak gebruikt omdat het gebruik van het laatst gerapporteerde tarief voor mij het meest logisch is. Ik geloof dat dit de meest intuïtieve optie is.
Een ding dat ik ook wil benadrukken, is de noodzaak om alles vanuit een filtercontext te begrijpen. Hoe overschrijf ik het filter? Hoe breng ik de laatst gerapporteerde gegevens in? Deze zullen u helpen te begrijpen hoe u uiteindelijk de juiste cijfers kunt krijgen.
Al het beste,
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