Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Voor de zelfstudie van vandaag gaan we een aangepaste LuckyTemplates-queryfunctie bouwen die een algemeen moeilijk te hanteren formaat van gestapelde gegevens zal behandelen. Deze techniek is gemakkelijk herbruikbaar op meerdere rapporten en meerdere tabellen. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Dit is een voortzetting van de zelfstudie die ik onlangs heb gedaan, waar we een algemeen moeilijk te hanteren formaat van gestapelde gegevens behandelden en Modulo, Pivot en enkele opschoningsfuncties met Power Query gebruikten om die gegevens om te zetten in een georganiseerd en functioneel formaat.
Het is zeer waarschijnlijk dat u dit proces moet herhalen. Als dit type indeling het resultaat is van kopiëren en plakken, zal het waarschijnlijk opnieuw gebeuren. Dus in dit geval wilt u waarschijnlijk een aangepaste functie bouwen die herbruikbaar is in meerdere rapporten en meerdere tabellen, ongeacht hoe ze worden genoemd en wat er nog meer in die tabellen staat.
Inhoudsopgave
Hoe u aangepaste LuckyTemplates-queryfuncties kunt maken en debuggen
Laten we hierover in Power Query duiken. Als we naar onze gegevenstabel gaan, in de geavanceerde editor, hebben we de M-code voor hoe we uiteindelijk van die stapelgegevens naar het gewenste formaat gingen.
Als we dit willen hergebruiken, klikken we gewoon met de rechtermuisknop op Data en zeggen, Create Function .
Het zegt dat het niet naar een parameter zal verwijzen, maar het is prima om een functie zonder parameters te maken. We gaan antwoorden, Ja, omdat we de parameters gaan toevoegen terwijl we bezig zijn in de Geavanceerde Editor. We noemen deze functie Unstack – 3 Elements , alleen omdat we de drie rijen in het onbewerkte formaat hebben. Als we een indeling met twee rijen hadden, zouden we waarschijnlijk een aparte indeling maken met twee of vier elementen.
Dus nu hebben we deze Invoke, we hebben geen parameters, en laten we naar de geavanceerde editor gaan en aan deze gaan werken.
Ten eerste hebben we deze Bron niet nodig. We gaan de functieparameters gebruiken om onze bron te definiëren.
We willen de parameter definiëren die binnenkomt. We doen dat met een open haakje en vervolgens een parameternaam. Laten we dit Stack noemen , wat die ene kolom met gegevens wordt die de ongeformatteerde stapelgegevens zijn die binnenkwamen uit het plakken van de e-mailadressen.
We willen dat dit als een lijst binnenkomt en we willen dat dit resulteert in een tabel, want als we het van die ene kolom naar meerdere kolommen ongedaan maken, gaat het van een lijst naar een tabel. En nu moeten we die inkomende lijst converteren naar een tabel, zodat we onze index kunnen toevoegen, onze Modulo unpivot kunnen starten en alle dingen kunnen doen die nodig zijn om het opnieuw te formatteren.
We noemen het ConvertStack , en dat gaat een functie gebruiken met de naam Table.FromList . Zoals veel van de M-functies doet het precies wat het zegt. Er is gewoon een lijst voor nodig. In dit geval wordt de lijst onze stapellijst. En dan moeten we de bron hier vervangen door onze ConvertStack. Het ziet er goed uit! We hebben geen syntaxisfouten, dus laten we op Gereed klikken.
Nu geeft het ons wat we wilden, namelijk de mogelijkheid om een kolom te kiezen.
Vervolgens gaan we TestData kiezen, wat de verkeerd opgemaakte gegevens zijn. We kiezen de kolom Waarde en klikken vervolgens op OK. Daarna klikken we op Invoke.
We krijgen echter deze fout. Het is echt moeilijk om vast te stellen wat deze fout is. Een van de problemen met aangepaste functies is dat ze de toegepaste stappen niet uitsplitsen, maar slechts één stap voor de volledige aangepaste functie. Maar er is een manier om dat te omzeilen in de foutopsporing die ik je zal laten zien. Het zal het een stuk makkelijker maken om erachter te komen wat hier aan de hand is.
In plaats van dit voorlopig als een functie uit te voeren, gaan we het als een query uitvoeren. We gaan die Stack-oproep handmatig starten. We moeten definiëren wat Stack is, omdat we het niet tekenen door het te kiezen in de Invoke. We hebben dus Stack gelijk aan TestData en de Value-kolom van TestData.
Wat het doet, is dat het het nu opsplitst in de Toegepaste Stappen. Dit helpt ons erachter te komen waarom dit niet werkt. Merk een interessant ding op wanneer we Stack binnenhalen. Aanvankelijk haalt het TestData [Waarde] binnen, maar wanneer we het naar een tabel converteren, is in plaats van Waarde de kolomkop, de kolomkop nu Kolom1.
Onthoud het foutbericht, het was dat het de kolom Waarde niet kon vinden. De reden dat de kolom Waarde niet kon worden gevonden, is dat de functie Table.FromList die hernoemt naar Kolom1.
Als we de Toegepaste Stappen doorlopen, kunt u zien dat het in de Toegevoegde Aangepaste stap is waar we de fout krijgen. Dit is waar de waarde van het record niet is gevonden.
En dus, als we naar de geavanceerde editor gaan, vinden we dat aangepaste veld, en we kunnen zien dat het in de tekst staat. Verwijder waar we die ongewenste tekens verwijderen die we niet nodig hadden, maar het verwijst nog steeds naar het veld Waarde. We zullen dat veranderen in Kolom1. Evenzo verwijst het in het veld Verwijderde kolommen naar Waarde, dus we zullen dat ook veranderen in Kolom1.
En als we dan aan het einde van de Applied Steps komen, levert dat het perfecte eindresultaat op.
Nu we weten dat dit goed werkt, hebben we nog één ding te doen. Onthoud dat we de aangepaste functie in een query hebben omgezet om het te debuggen. En dus moeten we die vraag nu nemen en er weer een functie van maken.
Een aangepaste tekstopschoonfunctie maken in Power Query
M Code in Power Query Aangepaste kolommen | LuckyTemplates-
functiequery en operatoren in de Query-editor
Conclusie
In deze zelfstudie hebben we deze aangepaste functie gebouwd, debuggen, getest en het werkt geweldig. En dus kunnen we nu, elke keer dat we een stapel met drie elementen hebben, gewoon die tabel selecteren, die kolom in de tabel kiezen en die aangepaste functie uitvoeren. Breng vervolgens de Modulo aan, de unpivot en ruim op.
Dit zou je een aantal leuke tools moeten geven voor het maken van aangepaste functies. Onthoud ook die truc over debuggen door het terug te zetten in een query van een functie en het vervolgens terug te schakelen na het debuggen. Het is een echt waardevolle tool die het veel gemakkelijker maakt om aangepaste functies te debuggen.
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