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 een M-code voor een datumtabel omzet in een tabelquery. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Ik zou de moeilijkheidsgraad van deze tutorial als gemiddeld beschouwen, want als je enige ervaring hebt met M-codes, zou het gemakkelijk voor je zijn om mee te doen. Als je geen gerelateerde ervaring hebt, stel ik voor dat je eerst naar M-codes kijkt, zodat je de hier gepresenteerde concepten gemakkelijker kunt begrijpen.
Inhoudsopgave
Aangeroepen functiequery en datumtabelquery
Dit is de datumtabelquery en de aangeroepen functiequery.
Als u naar het deelvenster Toegepaste stappen aan de rechterkant kijkt, is er slechts één stap. Het toont de bron voor die query.
Dus als u de M-code voor deze datumtabel wilt ontwikkelen, moet u schakelen tussen de functie en de tabelquery om eventuele wijzigingen te zien die u toepast.
Dit betekent dat het ingewikkelder is om met fouten om te gaan die worden veroorzaakt door uw wijzigingen. Het zal leiden tot een fout in de tabelquery zelf, waarna u door coderegels moet zoeken om de fout op te lossen.
De volgende pagina toont de datumquery die een tabel retourneert in plaats van een functie.
Als u naar de toegepaste stappen aan de rechterkant kijkt, ziet u dat er deze keer meerdere stappen worden vermeld.
Dit betekent dat terwijl u uw datumtabel M-code ontwikkelt, u onmiddellijk de resultaten van uw wijzigingen in deze tabelquery ziet.
Wat nog belangrijker is, wanneer uw wijziging een fout veroorzaakt, kunt u eenvoudig de stap identificeren die de fout heeft veroorzaakt. Dit maakt het gemakkelijker om het probleem op te lossen.
De M-code toepassen
De datumtabel M-code is te vinden op het LuckyTemplates-forum. Het staat onder het onderwerp Uitgebreide gegevenstabel Power Query M-functie binnen de M Code Showcase.
De M-code staat helemaal bovenaan. Ik zal de hele code markeren en kopiëren.
Vervolgens maak ik een nieuwe lege query.
Ik open mijn geavanceerde editor en plak die code erin.
Aangezien ik zie dat er geen fouten zijn gedetecteerd, klik ik op Gereed.
Laat me dit hernoemen en het Dates noemen.
Deze query retourneert een functie, maar wat ik wil is een tabel.
Om de nodige wijzigingen aan te brengen, ga ik terug naar de geavanceerde editor.
De functie omzetten in een tabel
Om ervoor te zorgen dat dit een tabel retourneert in plaats van een functie, moet ik enkele wijzigingen aanbrengen in de M-code in de geavanceerde editor.
Als ik naar de M-code kijk, kan ik gemakkelijk ten minste twee omgevingen zien op basis van het aantal let-statements.
Elke let-verklaring heeft zijn eigen in-clausule, die u onderaan kunt vinden.
Je zou kunnen denken dat het eenvoudiger zou zijn om deze laatste in-clausule gewoon te verwijderen om er een tabel van te maken.
Maar dat ga ik niet doen. In plaats daarvan ga ik dat becommentariëren door twee schuine strepen toe te voegen voor de laatste in-clausule.
Dat ga ik ook doen voor de first let statement. Dit maakt het inactief.
Onder de instructie inner let ga ik een sectie maken om mijn parameters te declareren, omdat ik die parameters nog steeds aan deze code moet doorgeven.
Ik ga markeren waar die variabelen moeten worden gedeclareerd.
Nu ga ik de eerste variabele uit de buitenste let-instructie kopiëren en in de ruimte plakken.
In mijn dataset gaan de historische gegevens niet verder terug dan 2017. Dus om de waarde door te geven aan de variabele StartDate, kan ik de intrinsieke datum gebruiken. Ik zet 1 januari, dan eindig ik de regel met een komma.
Ik kopieer en plak dan de volgende variabele, de EndDate.
Ik weet dat de EndDate prognoses zou vereisen. Daarom wil ik dat deze EndDate altijd het einde van volgend jaar is.
Ik heb al een variabele in mijn M-code voor de CurrentDate, dus daar ga ik naar verwijzen.
Nogmaals, ik zal de intrinsieke datum gebruiken. Ik zal Date.Year extraheren en CurrentDate gebruiken als de jaarwaarde +1. Ik wil ook dat de datum 31 december is.
Nogmaals, ik beëindig die regel met een komma.
De volgende variabele is een optionele parameter genaamd FYStartMonth.
Dus ik kopieer die naam en plak die erin.
Merk op dat er een rode onderstreping verscheen onder de FYStartMonth onder de variabele die ik zojuist heb geplakt.
Dit komt omdat hun namen overeenkomen. Het was geen probleem als ze zich in aparte omgevingen bevonden. Maar namen van variabelen binnen een enkele omgeving moeten uniek zijn. Dit betekent dat ik de naam moet wijzigen van de nieuwe variabele die ik zojuist heb geplakt.
In plaats van het FYStartMonth te noemen, ga ik het FYStartMonthNum noemen.
Ik ga geen waarde toekennen aan deze variabele, dus ik ga gewoon null zetten.
Omdat ik de naam van de variabele heb gewijzigd, moet ik ook de naam wijzigen waar naar deze parameter wordt verwezen.
Terugkomend op de variabele, zal ik die regel sluiten door aan het einde een komma toe te voegen.
De volgende parameter is de optionele vakantielijst. Ik ga dat ook kopiëren en plakken, en zal het ook als null verklaren.
Hetzelfde geldt voor de WDStartNum. Ik kopieer en plak het en verklaar het vervolgens als null.
Om aan te geven waar de datumtabelcode begint, ga ik hier nog een opmerking toevoegen.
Zodra ik op Gereed druk, ziet u dat de query nu het juiste type retourneert.
Ik heb nu een tabel in plaats van een functie.
In het deelvenster Toegepaste stappen kan ik ook alle stappen zien waaruit de query bestaat.
Als ik wijzigingen wil aanbrengen in de datumtabel, is het eenvoudig genoeg om het lint te gebruiken om stappen te wijzigen of toe te voegen. Voor elke wijziging die ik aanbreng, zie ik ook meteen de resultaten in de query.
De tabelquery terugdraaien in een functie
Laten we zeggen dat ik de datumtabelquery weer in een functie wil veranderen. Het is gewoon een kwestie van een paar dingen in de M-code aanpassen om de wijzigingen die ik eerder heb aangebracht ongedaan te maken.
Ik ga terug naar de geavanceerde editor en verwijder de schuine strepen voor de buitenste let-instructie.
Vervolgens ga ik de schuine strepen voor de in-statements verwijderen.
Dan zal ik het variabele blok dat ik eerder heb toegevoegd, becommentariëren. Dus ik voeg hier een schuine streep en een sterretje toe.
Dan een sterretje en een schuine streep na het variabele blok.
Weet je nog dat ik deze coderegel eerder heb gewijzigd vanwege het FYStartMonthNum?
Ik ga die regel code kopiëren. Vervolgens voeg ik een nieuwe regel toe en plak deze erin.
Ik zal de eerste weghalen (waar ik eerder de wijzigingen in de naam van de variabele heb aangebracht).
Op de tweede vind ik de bewerkte variabelenamen.
En ik verander ze weer in FYStartMonth.
Zodra ik op Gereed druk, verandert de tabelquery opnieuw in een functie.
Een dynamische datumquerytabel maken in LuckyTemplates: een zelfstudie over een query-editor
Een datumtabel maken in LuckyTemplates
Een dynamische startdatum en einddatum instellen voor Power Query-datumtabellen
Conclusie
Nogmaals, ik heb je laten zien hoe handig M-codes zijn, vooral in gevallen zoals deze waarin we een functie hebben omgezet in een tabelquery, en vice versa. Zolang je toegang hebt tot de M-code die we op het LuckyTemplates-forum hebben, kun je deze in de toekomst in scenario's als deze gebruiken.
U kunt ook door andere M-codes bladeren die u in andere situaties kunt gebruiken in de M Code Showcase op het . Het is een samenwerkingscommunity, dus u kunt de opmerkingen lezen voor andere ideeën van onze experts en leden.
Al het beste,
Melissa
***** LuckyTemplates leren? *****
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