Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ska visa dig hur du håller din övningsdatauppsättning uppdaterad varje gång du gör en uppdatering . Du kan se hela videon av denna handledning längst ner på den här bloggen.

Om du verkligen vill förbättra dina DAX-färdigheter är sättet att använda det och omsätta det i praktiken. Och för att göra det skulle du behöva en övningsdatauppsättning som hjälper dig att visualisera och arbeta med möjliga verkliga scenarier.

Problemet med övningsdatauppsättningar är att data vanligtvis är statiska . För att du ska kunna öva effektivt måste du ge intryck av att data är live.

Innehållsförteckning

Konfigurera en filsökväg för övningsdatauppsättningen

För mina exempeldata har jag en Excel-fil som innehåller försäljningsdata från 2014, 2015 och 2016.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Det här är data som jag behöver uppdatera.

Dokumentplatsen finns här på mitt verktygsfält för snabbåtkomst.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag behöver det för att ställa in en parameter för min filsökväg. Så jag ska kopiera dokumentplatsen.

Det finns en åtkomstpunkt till verktygsfältet Snabbåtkomst till höger om det.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag trycker på den får jag upp den här skärmen.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Så jag går till Alla kommandon och väljer sedan Dokumentplats . Lägg till det i verktygsfältet Snabbåtkomst och tryck på OK.

Nu ska jag gå in påför att skapa parametern som kommer att hålla min filsökväg. Detta steg är viktigt eftersom det gör att alla frågor i modellen kan återställas om en annan användare ändrar filplatsen.

Så jag skapar en ny parameter .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer att kalla det FileLocation .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Under typ ska jag välja Text . Och för Current Value klistrar jag in dokumentplatsen som jag kopierade tidigare.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ska skapa en ny fråga.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan väljer jag de exempeldata som jag kommer att använda som min övningsdatauppsättning.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Ett antal olika tabeller kommer att dyka upp här eftersom jag har försäljningsdata från 2014, 2015 och 2016. Jag behöver bara välja den första, som är Sales_2014 .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu när jag har valt Sales_2014-data är det dags att ändra den hårdkodade filplatsen till en dynamisk filplats .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag går in i Advanced Editor och väljer allt som är relaterat till filplatsen .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan kommer jag att ändra det till FileLocation-parametern som jag skapade tidigare.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan trycker jag på Klar för att låsa dessa ändringar i Sales_2014-frågan.

Skapa mappen Data Prep

När jag tittar på de tillämpade stegen för frågan Sales_2014 klickar jag på navigeringssteget . Detta visar mig att det refererar till källsteget .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Den refererar också till Sales_2014 som visas som en tabell . Det visar också att det extraherar data från kolumnen Data.

Låt mig nu titta på källsteget härnäst.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Källsteget visar mig allt som finns i min Excel-fil . Om jag kollar de koordinaterna ser jag Sales_2014 och under Kind står det Tabell .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag slår upp datakolumnen visar den tabellobjektet som extraherades.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Så jag kan duplicera den här frågan för att komma fram till 2015 års data . För att göra det behöver jag bara högerklicka på Sales_2014 och sedan välja Duplicera.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan går jag tillbaka till navigeringssteget.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ändrar det året från 2014 till 2015.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer också att byta namn på det här under Egenskaper. Jag kallar det Sales_2015.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Den här gången ska jag duplicera Sales_2015.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan går jag tillbaka till navigeringssteget och ändrar årtalet till 2016.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag har nu mina fullständiga försäljningsdata. Men dessa frågor ska inte laddas in i min modell . Jag behöver bara högerklicka på var och en av dem och avmarkera Aktivera laddning .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu ska jag välja alla frågor och placera dem i en enda mapp för att göra saker mer organiserade.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kallar den här mappen Data Prep .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Att få dagen förskjuten

Exempeldatan här under Dataprep kommer att vara statisk . Det betyder att det första och sista datumet aldrig kommer att ändras .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Så jag går in på Sales_2016 och jag kommer att sortera kolumnen Orderdatum i fallande ordning för att få det sista datumet från denna datamängd .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sista datum i denna datamängd är den 31 december 2016 .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu ska jag skapa en ny fråga.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan ska jag kontrollera vad dagoffset är från det sista datumet i datamängden till idag. Det betyder att jag måste ta reda på vad det är idag. För att göra det använder jag funktionen DateTime.FixedLocalNow . Detta kommer att ge mig datum och tid från maskinen som jag arbetar på.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Men jag behöver egentligen inte tidsdelen här. Jag behöver bara datumdelen av detta värde.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Så jag ska extrahera datumet med Date.From .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan kommer jag att subtrahera det sista datumet i min datamängd från det värdet . Eftersom datan är statisk kan jag använda det inneboende datumvärdet . Så det är #datum och hänvisa sedan till 31 december 2016.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu måste jag extrahera numret från denna skillnad . Så jag lägger till Number.From och stänger av det med en parentes. Tryck sedan på enter.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer att byta namn på detta till DayOffset .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Ställa in dynamiska datumintervall

Jag behöver också dynamiska datumintervall för min datumtabell. Jag börjar med att högerklicka på mappen Data Prep och skapa en ny tom fråga.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan kommer jag att arbeta med startdatumet för min Date-tabell.

Jag vill alltid ha den första dagen på året som mitt startdatum. Så jag sätter likhetstecknet och använder funktionen Date.StartOfYear .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Eftersom jag måste ge det ett värde, kommer jag att kompensera det genom att använda Date.AddDays .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan använder jag det inre datumvärdet igen och använder det första datumet i min datamängd , som är 1 juni 2014.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag behöver också antalet dagar som jag beräknade i min DayOffset , så jag ska lägga till det.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag trycker på enter ger det mig 1 januari 2017 . Detta kommer att bli det första datumet i min datumtabell.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ska döpa om det till fxStartDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu kan jag ställa in mitt slutdatum. Jag ska kopiera den här syntaxen som jag använde på mitt startdatum.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag skapar en ny tom fråga.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Byt sedan namn på den till fxEndDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan ska jag klistra in syntaxen från mitt Startdatum .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Istället för StartOfYear ändrar jag detta till EndOfYear.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer också att använda sista datumet för min datamängd, vilket är den 31 december .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag trycker på enter kommer det tillbaka 31 december 2020 .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Skapa en enda försäljningstabell

Jag kommer att kombinera de tre borden till en enda försäljningstabell . För att göra det kommer jag att skapa en ny fråga.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kallar detta min försäljningstabell .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan kombinerar jag Sales_2014, Sales_2015 och Sales_2016 i en enda tabell.

Jag vet att du kan göra det genom bandet, men det finns också ett alternativ att göra det direkt i formelfältet. Jag väljer det andra alternativet.

Jag börjar med Table.Combine .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Table.Combine kräver en lista med tabeller . Så jag lägger till en listinitierare , som är de där krulliga parenteserna , och sedan ska jag namnge de tre frågorna . Tryck på enter efter det.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Omvandla beställningsdatumkolumnen

Nu när jag har de flesta elementen jag behöver, ska jag generera en viktig del av syntaxen som jag ska använda senare för att slutföra min dynamiska övningsdatauppsättning.

Jag börjar med att välja två nummerkolumner. Jag kan använda leveransregionindex och produktbeskrivningsindex . På din sida kan du trycka ned antingen Shift eller Ctrl för att välja båda kolumnerna.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Under fliken Transformera väljer jag Absolut värde .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Om jag tittar på formelfältet kommer det att visa funktionen Table.TransformColumns . Detta är nyckeln till den slutliga lösningen.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Funktionen tar en lista med transformationslistor . Som du kan se finns det 2 listor här kapslade inuti varandra.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Den refererar till kolumnnamnet som text. Det är därför Delivery Region Index refererades här på det första setet.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan lägger den till ett transformationssteg .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Det gör samma sak i en separat lista för kolumnen Produktbeskrivningsindex .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu ska jag gå till .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag vill inte ha absoluta värden . Så det första jag ska göra är att kompensera för min dejt . Jag skapar en funktion som heter fxUpdateDate för att göra det. Det kommer att använda det aktuella datumet, som jag skriver in som cDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Sedan kommer jag att använda Date.AddDays- funktionen igen, som också använder cDate . Jag kommer också att använda DayOffset som jag skapade tidigare.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Allt som fxUpdateDate gör är att ta datumet. Så om jag skickar det till funktionen Table.TransformColumns kommer den att börja leta efter varje inspelat datum.

Så, om jag till exempel arbetar på första raden här, kommer den att betrakta den 1 juni 2014 som cDatum.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Och varje gång funktionen anropas kommer den att lägga till DayOffset som jag skapade.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu visas steget Table.Transform i Beräknat absolutvärde .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer att byta namn på det först och kalla det UpdateOrderDate.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Detta UpdateOrderDate- steg involverar min Table.TransformColumns som är lika med källan.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Den initiala tabellen som anges är leveransregionindex . Men det finns ingen anledning att förändra det. Så jag kommer att ändra den första kolumnen som hänvisas till till kolumnen OrderDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Det står också här att omvandlingen kommer att ske i absoluta värden.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Eftersom jag inte vill det kommer jag att ändra det till fxUpdateDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Typen kommer inte att vara ett absolut värde heller, så jag måste också ändra den här delen.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ändrar det till ett datum .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag behöver bara en transformation, så jag tar bort den andra listan tillsammans med transformationssteget som följer med den uppsättningen...

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

…så det är bara en transformation för kolumnen OrderDate.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Eftersom jag döpte om steget till Beräknat absolut värde, måste jag också ändra det i mitt uttalande.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Nu visar den UpdateOrderDate också.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

kolumnen OrderDate kommer nu att anropa denna funktion för varje post i Table.TransformColumns .

När jag tittar i kolumnen Beställningsdatum kan jag se att detta har uppdaterats.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Och om jag sorterar det i fallande ordning visar det 7 juli 2020 som aktuellt datum.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Så jag ska ta bort det där Sorteringssteget för det behöver jag egentligen inte. Jag gjorde det bara för att kontrollera om det aktuella datumet också hade uppdaterats.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Tillämpa tidsintelligens med M-kod

Min modell handlar om försäljningsdata . Eftersom jag ska göra lite tidsintelligens skulle jag behöva en Date- tabell.

Så jag går till. I M-code Showcase går jag in på Extended Date Table- ämnet.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Scrolla upp till högst upp på sidan och kopiera hela koden .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag går tillbaka till min modell, ska jag skapa en ny tom fråga och klistra in den M-koden i . Tryck på Klar.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer att byta namn på den frågan till fxCalendar .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

För mina parametrar kommer jag att använda den 1 januari för Startdatum och den 31 januari för Slutdatum . Tryck sedan på Invoke.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När tabellen väl kommer upp kommer jag att byta namn på den till Datum .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Kom ihåg att jag redan skapat start- och slutdatumen genom att titta på det första datumet i exempeldataset och kompensera det med min DayOffset. Så fxStartDate här visas som 1 januari 2017 .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När det gäller fxEndDate returnerar det den 31 december 2020 .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kan gå tillbaka till tabellen Datum och uppdatera det där källsteget också.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Den listar parametrarna i den ordning de anropades. Den första parametern ska visa startdatumet .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag ska ändra det till fxStartDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag kommer också att ersätta den andra parametern.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag lägger in fxEndDate .

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

När jag trycker på Enter är omvandlingen klar. Jag har nu en helt uppdaterad övningsdatauppsättning som alltid kommer att vara aktuell.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates

Jag klickar bara på Stäng och tillämpa för att låsa in alla dessa steg.

Skapa en ständigt uppdaterad övningsdatauppsättning i LuckyTemplates




Slutsats

Som jag nämnde tidigare kommer att ha din egen dynamiska övningsdatauppsättning definitivt höja ditt spel när det kommer till LuckyTemplates. Det låter dig öva dina färdigheter och kunskaper samtidigt som du låtsas att du arbetar med ett verkligt scenario.

Om du vill lära dig mer om hur du gör dina start- och slutdatum dynamiska, speciellt för en övningsdatauppsättning du använder, kan du kolla in LuckyTemplates-forumet. Det finns många samtal där om detta såväl som andra relevanta ämnen. Du kan till och med hitta andra tillvägagångssätt som skulle fungera för dig.

Med vänliga hälsningar,

Melissa


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.