LuckyTemplates anpassade frågefunktioner

För dagens handledning kommer vi att bygga en LuckyTemplates-anpassad frågefunktion som kommer att hantera ett vanligt svårhanterligt format av staplade data. Denna teknik är lätt att återanvända på flera rapporter och flera tabeller. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Det här är en fortsättning på den självstudie jag gjorde nyligen där vi behandlade ett vanligt svårhanterligt format av staplade data och använde Modulo, Pivot och några rengöringsfunktioner med Power Query för att omvandla dessa data till ett organiserat och funktionellt format.

LuckyTemplates anpassade frågefunktioner

Det är mycket troligt att du kommer att behöva upprepa denna process. Om den här typen av format är resultatet av kopiering och inklistring kommer det förmodligen att hända igen. Så i det här fallet vill du förmodligen bygga en anpassad funktion som kommer att kunna återanvändas på flera rapporter och flera tabeller, oavsett hur de heter och vad mer som finns i dessa tabeller.

Innehållsförteckning

Hur man skapar och felsöker LuckyTemplates anpassade frågefunktioner

Låt oss hoppa in i Power Query om detta. Om vi ​​går till vår datatabell, i Advanced Editor, har vi M-koden för hur vi slutade gå från den stackdatan till önskat format.

LuckyTemplates anpassade frågefunktioner

Om vi ​​vill återanvända detta, högerklickar vi bara på Data och säger, Skapa funktion .

LuckyTemplates anpassade frågefunktioner

Det står att det inte kommer att referera till någon parameter, men det är okej att skapa en funktion utan parametrar. Vi kommer att svara, Ja, eftersom vi kommer att lägga till parametrarna allt eftersom i Advanced Editor. Vi kallar den här funktionen, Unstack – 3 Elements , bara för att vi har de tre raderna i råformatet. Om vi ​​hade ett format med två rader, skulle vi förmodligen bygga ett separat som var två eller fyra element.

LuckyTemplates anpassade frågefunktioner

Så nu har vi den här Invoke, vi har inga parametrar, och låt oss gå till Advanced Editor och börja arbeta med den här.

LuckyTemplates anpassade frågefunktioner

För det första behöver vi inte denna källa. Vi kommer att använda funktionsparametrarna för att definiera vår källa.

LuckyTemplates anpassade frågefunktioner

Vi vill definiera parametern som kommer in. Vi gör det med en öppen parentes och sedan ett parameternamn. Låt oss kalla detta, Stack , som kommer att vara den där kolumnen med data som är den oformaterade stackdata som kom in från inklistringen av e-postadresserna.

Vi vill att detta ska komma in som en lista och vi vill att det ska resultera i en tabell eftersom när vi kopplar bort den från den enstaka kolumnen till flera kolumner, går den från en lista till en tabell. Och nu måste vi konvertera den inkommande listan till en tabell så att vi kan lägga till vårt index, initiera vår Modulo unpivot och göra allt vi behöver göra för att formatera om det.

LuckyTemplates anpassade frågefunktioner

Vi kallar det ConvertStack , och det kommer att använda en funktion som heter Table.FromList . Liksom många av M-funktionerna gör den precis vad den säger. Det krävs bara en lista. I det här fallet kommer listan att vara vår stacklista. Och sedan måste vi ersätta källan här med vår ConvertStack. Det ser ganska bra ut! Vi har inga syntaxfel, så låt oss trycka på Klar.

Nu ger det oss vad vi ville ha, vilket är möjligheten att välja en kolumn.

LuckyTemplates anpassade frågefunktioner

Sedan kommer vi att välja TestData, som är felformaterad data. Vi väljer kolumnen Värde och klickar sedan på OK. Efter det klickar vi på Invoke.

LuckyTemplates anpassade frågefunktioner

Vi får dock detta fel. Det är verkligen svårt att fastställa vad det här felet är. Ett av problemen med anpassade funktioner är att de inte bryter ut de tillämpade stegen, du får bara ett steg för hela den anpassade funktionen. Men det finns en väg runt det i felsökningen som jag ska visa dig. Det kommer att göra det mycket lättare att ta reda på vad som händer här.

LuckyTemplates anpassade frågefunktioner

Istället för att köra detta för tillfället som en funktion, kommer vi att köra det som en fråga. Vi ska bara initiera det stackanropet manuellt. Vi måste definiera vad Stack är eftersom vi inte ritar det genom interaktionen med att välja det i Invoke. Så vi har Stack lika med TestData och värdekolumnen i TestData.

LuckyTemplates anpassade frågefunktioner

Vad det gör är att det bryter ner det nu i de tillämpade stegen. Detta kommer att hjälpa oss att ta reda på varför detta inte fungerar. Lägg märke till en intressant sak när vi drar in Stack. Till en början drar den in TestData[Value], men när vi konverterar den till en tabell, istället för Value är kolumnrubriken, är kolumnrubriken nu Kolumn1.

LuckyTemplates anpassade frågefunktioner

Kom ihåg felmeddelandet, det var att det inte kunde hitta kolumnen Värde. Anledningen till att den inte kunde hitta kolumnen Värde är att funktionen Table.FromList byter namn på den till Kolumn1.

Om vi ​​går ner i Applied Steps kan du se att det är i Added Custom-steget där vi får felet. Det var här värdet på posten inte hittades.

LuckyTemplates anpassade frågefunktioner

Och så, om vi går till den avancerade redigeraren, hittar vi det anpassade fältet, och vi kan se att det finns i Text.Remove där vi tar ut de skräptecken som vi inte behövde, men det hänvisar fortfarande till fältet Värde. Vi ändrar det till kolumn1. På samma sätt, i fältet Borttagna kolumner, hänvisar det till Värde, så vi ändrar det till Kolumn1 också.

LuckyTemplates anpassade frågefunktioner

Och när vi kommer till slutet av de tillämpade stegen ger det det perfekta slutresultatet.

LuckyTemplates anpassade frågefunktioner

Nu när vi vet att detta fungerar rätt har vi bara en sak till att göra. Kom ihåg att för att felsöka det, gjorde vi den anpassade funktionen till en fråga. Och så, nu måste vi ta den frågan och förvandla den tillbaka till en funktion.

LuckyTemplates anpassade frågefunktioner




Slutsats

I den här handledningen har vi byggt den här anpassade funktionen, felsökt den, testat den och den fungerar utmärkt. Och nu, när som helst vi har en stack med tre element, kan vi bara välja den tabellen, välja den kolumnen i tabellen och köra den anpassade funktionen. Applicera sedan Modulo, unpivoten och städa upp.

Detta borde ge dig några bra verktyg när det gäller att skapa anpassade funktioner. Kom också ihåg det tricket om felsökning genom att göra om det till en fråga från en funktion och sedan byta tillbaka det efter felsökningen. Det är ett riktigt värdefullt verktyg som gör det mycket lättare att felsöka anpassade funktioner.

Med vänliga hälsningar!


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.