Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Deze zelfstudie richt zich op het gebruik van de Power Query M-functie number.mod om een afwisselend 0-1-patroon in de datumtabel te maken. De oplossing die ik je ga laten zien, kwam van een van onze community power users, Rajesh, bij LuckyTemplates. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Het doel is om een reeks van vier nullen te genereren, afgewisseld door vier enen, en deze de hele dag door te herhalen.
Rajesh was perfect met zijn analyse en probleemanalyse met behulp van de Power Query M-functie om het op te lossen. Met dat gezegd, laten we naar Power Query gaan.
Inhoudsopgave
De Power Query M Number.Mod-functie
De Power Query M, met name de functie number.mod, wordt de kern van onze oplossing. Wat doet het?
U kunt de interne documentatie van elke M-functie controleren door de naam zonder haakjes in te voeren, zoals hier in de formulebalk wordt weergegeven. Deze functie retourneert de rest van een deling door een geheel getal. Er zijn maximaal drie parameters nodig, de eerste twee, een getal en de deler, die ook een getal is.
Laten we nu beginnen. Ik selecteer mijn voorbeeldquery die een datumbereik bevat dat ik heb opgesteld.
In veel gevallen wordt number.mod gebruikt in combinatie met een indexkolom die vervolgens als eerste parameter wordt gebruikt. Maar dat ga ik niet doen, want als je erover nadenkt, is de datumwaarde een geheel getal. Dus het creëren van een index die dezelfde granulariteit deelt als de kolom Datum, waarbij elke rij een unieke waarde heeft, kunnen we vermijden.
Het enige dat we hoeven te doen om een index na te bootsen, is de allereerste datum in onze Datum-tabel af te trekken van elke datum in de Datum-kolom. Om dat te doen, kunnen we de startdatumwaarde in een variabele opslaan, zodat we die steeds opnieuw kunnen gebruiken. Ik vind dat de geavanceerde editor de beste plaats is om dit te doen.
Dus ik open het Advanced Editor- venster en maak een nieuwe variabele aan. Laten we het StartDate noemen . Ik heb mijn eerste datum hier hard gecodeerd, dus ik ga het gewoon kopiëren en plakken. Vergeet de komma aan het einde niet, en we kunnen die eerste datum nu vervangen door onze variabele Startdatum.
Zoals je ziet is er niets veranderd.
Aangepaste kolom maken voor het Power Query M-patroon
Dus via deze minitabel gaan we een aangepaste kolom toevoegen.
Laten we deze kolom Pattern noemen en de Power Query M-functie number.mod invoeren . Je ziet hier de twee parameters, een getal als een null-getal en een deler als een null-getal. Het vereist dus twee waarden van het type getal als parameters.
Nu hebben we geen cijfers, toch? We hebben datums en daarin zit niet zoiets als automatische typeconversie. We moeten dus het nummer uit onze datumwaarde halen. Dus we typen hier in, number.from dan onze Date- kolom en trekken dan onze StartDate- variabele af.
Laten we nu zeggen dat de eerste datum in onze Date-tabel een één retourneert, dan zal onze StartDate ook een één retourneren. En dus is één min één gelijk aan nul. Ik wil dat onze indexnummering begint met een één in plaats van een nul. Dus we moeten er één plus één bij optellen. Nu is één min één gelijk aan nul plus één retourneert een één voor het eerste record.
Voor het tweede record krijgen we een waarde van twee (2) voor de datum in de kolom Datum, minus een één (1) van onze StartDate-waarde die gelijk is aan één, plus degene die we optellen, retourneert een twee, enzovoort . Ons herhalend patroon was gebaseerd op een reeks van vier afwisselende waarden. Dus als deler geef ik de waarde vier (4) door.
Laten we eens kijken wat dat doet. In rij vier krijgen we nul, evenals in rij acht. Dus elke vierde instantie retourneert een nulwaarde voor dat record.
Een IF-THEN-ELSE-constructie maken
Laten we teruggaan naar ons klantdialoogvenster en voortborduren op de logica die we tot nu toe hebben geschreven. Behalve de deler moeten we dezelfde logica herhalen om een achtste voorkomen te kunnen identificeren.
Op die achtste rij willen we echter een andere waarde. Dus om onderscheid te maken tussen een vierde en een achtste voorkomen, kunnen we een IF-THEN-ELSE-constructie gebruiken. Op die manier kunnen we een waarde retourneren voor de eerste logische test die een waar retourneert.
Dus als , en ik plak hier onze code terug (behalve de deler), verander die deler dan in een acht zodat een achtste rij nul zal retourneren. Dus als dat gelijk is aan nul, betekent dit dat het je weg naar waar of onwaar zal mislukken. Dan willen we er een (1). Anders , als onze logica hier identificeert dat een vierde rij gelijk is aan nul, dan willen we nul (0). Anders willen we geen waarde terugkrijgen. Dus laten we een null toevoegen .
Laten we nu onze logica opnieuw controleren. Dus bij elke vierde gebeurtenis krijgen we die nul. En dan, op de achtste, krijgen we er een. Vervolgens krijgen we nul en een één, enzovoort.
Dit ziet er dus goed uit. Het enige wat we nu nog hoeven te doen is deze waarden invullen.
Dus in de formulebalk voegen we aan het begin een Table.FillUp toe en vervolgens enkele haakjes openen. Aan het einde van onze code voegen we het typenummer toe - we moeten ook een kolom toevoegen als een lijst. Dus we gaan komma , gebruiken dan de accolades voor lijstinitialisatie en als tekstwaarde doorgeven in onze kolomnaam Pattern . Vergeet de haakjes sluiten niet en druk op OK.
Beginnersgids voor de M-code in LuckyTemplates
M-functie voor datumtabel - Hoe u een parameter toevoegt in de query-editor
Datumtabelkolommen sorteren in LuckyTemplates
Conclusie
Dit is een heel uniek scenario en eerlijk gezegd kan ik geen toepassing bedenken voor dit specifieke patroon, maar hopelijk zie je het potentieel van het maken van reeksen met behulp van de Power Query M-functie, number.mod.
Bekijk voor meer informatie de volledige video hieronder voor deze zelfstudie.
Al het beste!
Melissa
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