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 je oefendataset up-to-date houdt elke keer dat je ververst . Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Als u uw DAX-vaardigheden echt wilt verbeteren, is de manier om het te gebruiken en in de praktijk te brengen. En om dat te doen, heb je een oefendataset nodig die je helpt bij het visualiseren van en werken aan mogelijke real-life scenario's.
Het probleem met oefendatasets is dat de data meestal statisch zijn . Om efficiënt te kunnen oefenen, moet u de indruk wekken dat de gegevens live zijn.
Inhoudsopgave
Een bestandspad instellen voor de oefendataset
Voor mijn voorbeeldgegevens heb ik een Excel-bestand met verkoopgegevens van 2014, 2015 en 2016.
Dit zijn de gegevens die ik moet bijwerken.
De documentlocatie is hier te vinden op mijn werkbalk Snelle toegang.
Ik heb dat nodig om een parameter in te stellen voor mijn bestandspad. Dus ik ga die documentlocatie kopiëren.
Er is een toegangspunt tot de werkbalk Snelle toegang aan de rechterkant daarvan.
Zodra ik daarop druk, krijg ik dit scherm.
Dus ik ga voor Alle opdrachten en kies vervolgens Documentlocatie . Voeg dat toe aan de werkbalk Snelle toegang en druk op OK.
Nu ga ik naar de Power Query om de parameter te maken die mijn bestandspad zal bevatten. Deze stap is belangrijk omdat hiermee alle query's in het model kunnen worden hersteld als een andere gebruiker de bestandslocatie wijzigt.
Dus ik zal een nieuwe parameter maken .
Ik ga dat FileLocation noemen .
Onder type ga ik Tekst selecteren . En voor Current Value plak ik de documentlocatie die ik eerder heb gekopieerd.
Ik ga een nieuwe query maken.
Vervolgens kies ik de voorbeeldgegevens die ik zal gebruiken als mijn oefengegevensset.
Er zullen hier een aantal verschillende tabellen verschijnen, aangezien ik verkoopgegevens heb van 2014, 2015 en 2016. Ik hoef alleen de eerste te kiezen, namelijk Verkoop_2014 .
Nu ik de Sales_2014-gegevens heb gekozen, is het tijd om die hardgecodeerde bestandslocatie te wijzigen in een dynamische bestandslocatie .
Ik ga naar de geavanceerde editor en selecteer alles dat verband houdt met de bestandslocatie .
Vervolgens verander ik dat in de FileLocation-parameter die ik eerder heb gemaakt.
Vervolgens druk ik op Gereed om die wijzigingen vast te leggen in de Sales_2014-query.
De Data Prep-map maken
Als ik naar de toegepaste stappen voor de query Sales_2014 kijk, klik ik op de navigatiestap . Dit laat me zien dat het verwijst naar de bronstap .
Het verwijst ook naar Sales_2014 dat wordt weergegeven als een tabel . Het laat ook zien dat het gegevens uit de kolom Gegevens haalt.
Laat me nu kijken naar de volgende stap Bron .
De stap Bron laat me alles zien wat zich in mijn Excel-bestand bevindt . Als ik die coördinaten controleer, zie ik Sales_2014 en onder Kind staat Table .
Wanneer ik de gegevenskolom opzoek, wordt het tabelobject weergegeven dat is geëxtraheerd.
Dus ik kan deze vraag dupliceren om met de gegevens van 2015 te komen . Om dat te doen, hoef ik alleen maar met de rechtermuisknop op Sales_2014 te klikken en vervolgens Dupliceren te kiezen.
Daarna ga ik terug naar de navigatiestap.
Ik verander dat jaar van 2014 naar 2015.
Ik zal dat hier ook hernoemen onder Eigenschappen. Ik noem het Sales_2015.
Deze keer dupliceer ik Sales_2015.
Daarna ga ik terug naar de navigatiestap en verander ik het jaar in 2016.
Ik heb nu mijn volledige verkoopgegevens. Maar deze vragen mogen niet in mijn model worden geladen . Ik hoef alleen maar met de rechtermuisknop op elk ervan te klikken en Laden inschakelen uit te schakelen .
Nu ga ik alle vragen selecteren en ze in één map plaatsen om de zaken overzichtelijker te maken.
Ik zal deze map Data Prep noemen .
De dagcompensatie krijgen
De voorbeeldgegevens hier onder Gegevensvoorbereiding zullen statisch zijn . Dit betekent dat de 1e en de laatste datum nooit veranderen .
Dus ik ga naar Sales_2016 en ik ga de kolom Orderdatum in aflopende volgorde sorteren om de laatste datum uit deze dataset te halen .
De laatste datum in deze dataset is 31 december 2016 .
Nu ga ik een nieuwe query maken.
Vervolgens zal ik controleren wat de Day Offset is vanaf de laatste datum in de dataset tot vandaag. Dit betekent dat ik moet uitzoeken wat vandaag is. Om dat te doen, gebruik ik de functie DateTime.FixedLocalNow . Dit geeft me de datum en tijd van de machine waar ik aan werk.
Maar ik heb het tijdgedeelte hier niet echt nodig. Ik heb alleen het datumgedeelte van deze waarde nodig.
Dus ik ga de datum extraheren met Date.From .
Vervolgens trek ik van die waarde de laatste datum in mijn dataset af . Omdat de gegevens statisch zijn, kan ik de intrinsieke datumwaarde gebruiken . Dat is dus #datum en dan referentie 31 december 2016.
Nu moet ik het getal uit dit verschil halen . Dus ik zal Number.From toevoegen en afsluiten met een haakje. Druk vervolgens op enter.
Ik hernoem dit als DayOffset .
Dynamische datumbereiken instellen
I also need dynamic date ranges for my date table. I’ll start off by doing a right click on the Data Prep folder and creating a new Blank Query.
Then, I’ll work on the Start Date of my Date table.
I always want the 1st day of the year as my Start Date. So I’ll put the equal sign and use the function Date.StartOfYear.
Since I need to give that a value, I’m going to offset that by using Date.AddDays.
Then I’ll use the intrinsic date value again and use the 1st date on my data set, which is June 1, 2014.
I also need the number of days that I calculated in my DayOffset, so I’m going to add that.
Once I press enter, it gives me January 1, 2017. This is going to be the 1st date in my date table.
I’ll rename that to fxStartDate.
Now, I can set up my End Date. I’m going to copy this syntax I used on my Start Date.
I’ll create a new blank query.
Then rename it to fxEndDate.
Then I’m going to paste the syntax from my Start Date.
Instead of StartOfYear, I’ll change this to EndOfYear.
I’m also going to use the last date of my data set, which is the 31st of December.
When I press enter, it returns December 31st, 2020.
Creating A Single Sales Table
I’m going to combine the 3 tables into a single Sales table. To do that, I’m going to create a new query.
I’ll call this my Sales table.
Then I’ll combine Sales_2014, Sales_2015 and Sales_2016 into a single table.
I know that you can do that through the ribbon, but there’s also an option to do it directly in the formula bar. I’ll choose that 2nd option.
I’ll start with Table.Combine.
Table.Combine requires a list of tables. So I’ll add a list initializer, which is those curly brackets, then I’m going to name the 3 queries. Press enter after that.
Transforming The Order Date Column
Now that I have most of the elements I need, I’m going to generate a key part of the syntax that I’m going to use later on to complete my dynamic practice dataset.
I’ll start by selecting two number columns. I can use the Delivery Region Index and the Product Description Index. On your end, you can press down either Shift or Ctrl to select both columns.
Under the Transform tab, I’ll select Absolute Value.
If I look at the formula bar, it will show the Table.TransformColumns function. This is the key to the final solution.
The function takes a list of transformation lists. As you can see, there are 2 lists here nested inside each other.
It references the column name as text. That’s why Delivery Region Index was referenced here on the 1st set.
Then it adds a transformation step.
It does the same in a separate list for the Product Description Index column.
Now, I’ll head to the Advanced Editor.
I don’t want absolute values. So the first thing I’m going to do is offset my date. I’ll create a function called fxUpdateDate to do that. It’s going to use the current date, which I’ll type in as cDate.
Vervolgens ga ik de Date.AddDays- functie opnieuw gebruiken, die ook de cDate gebruikt . Ik zal ook de DayOffset gebruiken die ik eerder heb gemaakt.
Het enige dat de fxUpdateDate doet, is de datum nemen. Dus als ik dat doorgeef aan de functie Table.TransformColumns , begint deze te controleren op elke geregistreerde datum.
Dus als ik hier bijvoorbeeld op de 1e rij werk, wordt 1 juni 2014 als de cDate beschouwd.
En elke keer dat de functie wordt aangeroepen, wordt die DayOffset toegevoegd die ik heb gemaakt.
Nu verschijnt de stap Table.Transform in Calculated Absolute Value .
Ik ga dat eerst een andere naam geven en het de UpdateOrderDate noemen.
Deze stap UpdateOrderDate omvat mijn Table.TransformColumns die gelijk is aan de bron.
De aanvankelijk vermelde tabel is de Delivery Region Index . Maar het is niet nodig om dat te transformeren. Dus ik ga die eerste kolom waarnaar wordt verwezen, wijzigen in de kolom OrderDate .
Er staat hier ook dat de transformatie in absolute waarden zal plaatsvinden.
Aangezien ik dat niet wil, ga ik dat veranderen in fxUpdateDate .
Het type wordt ook geen absolute waarde, dus ik moet ook dit onderdeel wijzigen.
Ik verander dat in een datum .
Ik heb maar één transformatie nodig, dus ik zal de 2e lijst verwijderen samen met de transformatiestap die bij die set hoort...
… dus het is maar één transformatie voor de kolom OrderDate.
Omdat ik de stap voor Berekende absolute waarde heb hernoemd, moet ik dat ook in mijn in-verklaring wijzigen.
Nu wordt ook UpdateOrderDate weergegeven.
Dus de kolom OrderDate roept deze functie nu aan voor elk record in Table.TransformColumns .
Als ik naar de kolom Besteldatum kijk, zie ik dat deze is bijgewerkt.
En als ik dat in aflopende volgorde sorteer, wordt 7 juli 2020 weergegeven als de huidige datum.
Dus ik ga die sorteerstap verwijderen omdat ik die niet echt nodig heb. Ik deed dat alleen om te controleren of de huidige datum ook was bijgewerkt.
Tijdinformatie toepassen met behulp van M-code
Bij mijn model draait alles om verkoopgegevens . Aangezien ik wat tijdinformatie ga doen, heb ik een datumtabel nodig .
Dus ik ga naar het . In de M-code Showcase ga ik in op het onderwerp Extended Date Table .
Scrol helemaal naar de bovenkant van de pagina en kopieer de volledige code .
Teruggaand naar mijn model, ga ik een nieuwe lege query maken en die M-code erin plakken . Druk op Gereed.
Ik hernoem die query in fxCalendar .
Voor mijn parameters gebruik ik 1 januari voor de StartDate en 31 januari voor de EndDate . Druk vervolgens op Aanroepen.
Zodra de tabel verschijnt, ga ik deze hernoemen naar Dates .
Onthoud dat ik de begin- en einddatum al heb gemaakt door naar de eerste datum in de voorbeelddataset te kijken en die te compenseren met mijn DayOffset. Dus de fxStartDate wordt hier weergegeven als 1 januari 2017 .
Wat betreft de fxEndDate, deze retourneert 31 december 2020 .
Ik kan teruggaan naar de tabel Datums en die bronstap daar ook bijwerken.
Het geeft de parameters weer in de volgorde waarin ze zijn aangeroepen. De eerste parameter moet de startdatum weergeven .
Ik ga dat veranderen in fxStartDate .
Ik ga ook de tweede parameter vervangen.
Ik zal de fxEndDate invoeren .
Zodra ik op Enter druk, is de transformatie voltooid. Ik heb nu een volledig up-to-date praktijkdataset die altijd actueel zal blijven.
Ik klik gewoon op Sluiten en toepassen om al die stappen vast te zetten.
Een dynamische datumquerytabel maken in LuckyTemplates: een zelfstudie over een query-editor
Een dynamische startdatum en einddatum instellen voor Power Query-datumtabellen
met behulp van de offsetfunctie in uitgebreide datumtabellen
Conclusie
Zoals ik eerder al zei, zal het hebben van je eigen dynamische oefendataset je spel zeker naar een hoger niveau tillen als het gaat om LuckyTemplates. Hiermee kun je je vaardigheden en kennis oefenen terwijl je doet alsof je aan een real-life scenario werkt.
Als u meer wilt weten over het dynamisch maken van uw start- en einddatums, speciaal voor een oefendataset die u gebruikt, kunt u het LuckyTemplates-forum bekijken. Daar zijn veel gesprekken over en over andere relevante onderwerpen. Misschien vindt u zelfs andere benaderingen die voor u zouden werken.
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