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.
I den här handledningen kommer jag att visa dig den ultimata budgettilldelningsformeln som du kan använda när du hanterar mängder och data med olika granulariteter. Du kan se hela videon av denna handledning längst ner på den här bloggen.
Dina budgetar kan vara på en månatlig, kvartalsvis eller årlig granularitet medan din försäljning vanligtvis är på en daglig nivå. Detta skapar en missmatchning i modellen.
Budgettilldelningsformeln som diskuteras i denna handledning gör att du kan lösa denna bristande överensstämmelse i granulariteter. Det gör också att du enkelt kan växla mellan olika tidskontexter med bara några få justeringar av algoritmen.
Efter att ha förstått hur det fungerar kommer du att kunna använda denna metod på ett effektivt sätt när du hanterar budgetar i dina egna miljöer.
Innehållsförteckning
Felaktiga granulariteter
Låt oss titta på modellen.
Dina budgetar kommer i allmänhet att ha olika detaljer. Det betyder att dina budgetar kan vara på månadsnivå, till exempel Budget per månad eller per produkt.
Men din försäljnings- eller faktatabell kan vara på daglig nivå.
Så det finns en brist på granularitet.
För att göra en analys eller jämförelse måste du hitta ett sätt att fördela dina budgetar över den högre granulariteten.
Den högre granulariteten, i detta fall, är varje dag.
Så du måste hitta ett sätt att ta dina månatliga belopp och fördela dem i dagliga belopp.
Introduktion till budgetfördelningsformeln
Jag kallar detta förformel eftersom du kan använda den här tekniken med budgetar av vilken granularitet som helst. Du kan använda den för kvartalsvisa eller årliga budgetar. Allt du behöver är att göra några små justeringar för att detta ska fungera.
Låt oss först titta på slutresultatet av budgetfördelningsformeln .
Jag har mitt datum i tabellen och jag kan enkelt ändra det med hjälp av skivaren.
Jag har också fått minbelopp och budgetfördelning .
Tabellen hänvisas till i denna visualisering:
Min dagliga försäljning är varierande. Men mina budgetar är konstanta eftersom de är månatliga belopp.
Det här diagrammet visar dock representationen bättre eftersom det visar ett månadsperspektiv.
Diagrammet visar försäljningen per månad kontra månadsbudgeten.
Förstå tilldelningsalgoritmen
Låt oss nu titta på formeln.
Det jag först vill förklara är den här delen av formeln:
För att förstå det, låt mig ge ett exempel. Låt oss säga att det finns ett månadsbelopp. Låt oss multiplicera det beloppet med 1 delat med 30, eller med hur många dagar det är i månaden. Det blir allokeringsalgoritmen.
Formeln är DayInContext dividerat med DaysInMonth multiplicerat med MonthlyBudgetAmounts . Det blir metoden som ger dig den månatliga budgettilldelningen till varje dag.
Så om du hade kvartalsbudgetar skulle det vara 1 dividerat med DaysInQuarter multiplicerat med kvartalsbudgeten . Det är så man fördelar en kvartalsbudget över varje dag.
Det är bara att bygga och komma till denna punkt i formeln.
Du måste börja med den här delen av formeln i åtanke. Sedan måste du ta reda på hur du får den dynamiska DayInContext , DaysInMonth och hur du fördelar MonthlyBudgetAmounts .
I formeln för budgetfördelning har jag byggt upp allt inom VARIABLER eftersom många av dessa individuella åtgärder inte krävs.
Du bör använda när en beräkning endast är relevant för ett visst mått.
Om ett mått kan förgrenas då, skulle jag inte rekommendera att använda VARIABLER. Istället skulle jag skapa det initiala måttet först och sedan förgrena mig till ett kumulativt totalt eller glidande medelvärde.
Komponenter i budgetfördelningsformeln
Så låt oss nu ta en titt på varje enskild del av budgettilldelningsformeln.
Först och främst finns det Days In Context .
Detta försöker räkna upp hur många datum som finns i ett visst sammanhang.
Det här är ganska enkelt eftersom det finns ett utvärderingssammanhang för varje dag. Så om jag går ( Dates ) kommer det att ge mig en dag för varje enskild rad.
Nu går vi till Dagar i månaden .
Detta är ett viktigt format eftersom det är ett dynamiskt sätt att räkna ut hur många dagar det är i månaden.
Så jag använder fortfarande COUNTROWS( Dates) , men jag har ändrat sammanhanget förfungera. Jag tog bortfilter från Dates. Men sedan returnerar jag filter med hjälp av från Månad & År .
Detta ger mig ett specifikt månad & år sammanhang. Så för maj månad visar den 31 dagar; för juni visar den 30 dagar.
Oavsett vilken månad du befinner dig i, kommer den att fördela hela månadsbudgeten exakt över den månaden. Du kommer inte att få en missmatch där en månad har 30 dagar men sedan delas den med 31 dagar.
Så detta gör att du kan ha korrekta och dynamiska tilldelningar.
Använda TREATAS för virtuella relationer
Nästa sak jag vill göra är att beräkna Total Budget . Låt oss nu titta på den här delen av formeln:
Formeln för total budget är enbaserat på en virtuell relation jag har skapat.
Denna virtuella relation skapas avfungera.
I tabellen kan du se dessa större belopp.
Dessa belopp bestäms av valen i produktnamnskivan .
Jag tittar bara på en utvald grupp av produkter. Detta räknar upp den totala budgeten för var och en av dessa olika månader.
Låt oss nu titta på TREATAS -formeln för månadsbudgetbelopp .
TREATAS gör det möjligt för mig att skapa en virtuell relation.
Jag vill skapa relationen praktiskt taget eftersom det finns många månadsnamn i datumtabellen.
Och många månadsnamn i produktnamnet.
Att placera en många-till-många-relation skapar för många problem i dina modeller.
Istället kommer jag att skapa en virtuell relation mellan tabellen Datum och tabellen Produktbudgetar i min formel.
Det fysiska förhållandet mellan datumtabellen och försäljningstabellen kommer fortfarande att fungera.
Men genom att skapa en virtuell relation kan du jämföra information mellan datumtabellen och försäljningstabellen efter datum.
Så nu har jag månadsbeloppen.
Exempel på budgetfördelning
Låt oss gå tillbaka till budgetfördelningsformeln.
Nu har jag allt jag behöver för att få det att fungera. Det finns dagar i sammanhang och dagar i månaden .
Så, genom att beräkna 1 dividerat med 30 multiplicerat med månadsbudgetbeloppet, får jag min dagliga allokering på 8 778,13.
Att gå till en annan månad ger ett annat dagligt tilldelningsbelopp.
Ändra granularitet i formeln
Det här är formeln för den ultimata budgettilldelningen eftersom om du hade kvartalsbudgetar behöver du bara ta reda på hur du manipulerar den här delen av formeln för kvartalsvis.
Om du hade årliga budgetar är allt du behöver göra att fördela den efter år. Det kan vara 365 eller 90 dagar. Allt beror på vilken parameter du behöver för att allokera och jämföra med dina dagliga resultat eller resultaten som har en högre granularitet.
Slutsats
Denna ultimata budgetfördelningsformel låter dig enkelt skapa budget- och ekonomirapporter även när du hanterar data med olika detaljer.
Med bara några få justeringar av formeln kommer du enkelt att kunna ändra den till det sammanhang du vill visa i dina rapporter.
Jag hoppas att du har lärt dig mycket av den här handledningen.
Med vänliga hälsningar,
***** Lär du dig Lucky Templates? *****
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 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.
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
LuckyTemplates Kalendertabell: Vad är det och hur man använder det
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.
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.
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.
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.
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.