Skapa en datumtabell i LuckyTemplates
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
LuckyTemplates virtuella bord är mitt personliga favorit DAX-ämne. De är nyckeln till att låsa upp den fulla kraften hos DAX. Virtuella tabeller är den enda typen av tabeller inom LuckyTemplates som är helt dynamiska, och det finns problem som bara kan lösas genom att tillämpa virtuella tabelltekniker inom dina åtgärder. Du kan se hela videon av denna handledning längst ner på den här bloggen.
I den här handledningen kommer jag att dela med mig av mina 5 bästa tips och tricks som jag har samlat på mig under åren som verkligen har hjälpt mig att förstå och felsöka vad som händer inom Power Bi virtuella tabeller.
Exemplet jag ska gå igenom idag är från, och det kommer från en medlem vid namn Dave C, som arbetar inom industrisäkerhet. Dave hade en serie säkerhetspoäng och han ville normalisera dem så att topppoängen var 10, och sedan dynamiskt komma fram till N:an i den listan.
Till en början tänkte vi göra detta genom en enkelmått, men vi insåg senare att många av hans normaliserade värden har kopplingar. Till exempel, om du vill ha det sjunde objektet på listan, kommer det inte att finnas ett nummer sju i en RANKX. Det finns inget enkelt sätt att dra det ur ett filtertillstånd. Så vi bestämde oss för en-baserat mått så att det alltid skulle räkna ner det n:e talet.
Det här liknar när du drar det sjunde kortet från en kortlek, du räknar ut sju kort och sedan vänder du över den högen med sju, och kortet på botten är det du vill ha. Vi kommer att göra motsvarande i en TOPN-åtgärd.
Innehållsförteckning
Tips #1: Använd ett externt verktyg för att visualisera din virtuella LuckyTemplates-tabell
Du kan använda DAX Studio eller Tabular Editor. I det här exemplet använder jag Tabular Editor 3 (TE3). Det är tekniskt möjligt att göra detta med hjälp av fliken Modellering – Ny tabell, men det kommer att skapa fysiska tabeller i din datamodell. Du kommer att behöva växla manuellt mellan det och redigeraren och det är bara ett långsamt och svårt sätt att göra det.
När du ser det dynamiska sättet på vilket det kan göras genom ett externt verktyg, ser du fördelen.
Så inom TE3 skapar vi en ny DAX-fråga. Vi kan vidta vår första åtgärd och kopiera detta till vår DAX-fråga.
Om du kommer ihåg börjar DAX-frågor alltid med EVALUATE . Vi kommer att få ett fel initialt eftersom DAX-frågor returnerar tabeller . Detta var ett mått med de två sista variablerna som är skalärer. Vad vi kan göra här är att ändra returvärdet , vilket är mitt nästa tips.
Tips #2: Felsök dina LuckyTemplates virtuella tabell i delar med hjälp av variabler
Du kan felsöka virtuella tabeller på ungefär samma sätt som du gör med mått – bit för bit genom att ändra returvärdet. Låt oss börja med den första virtuella tabellen, vEvalTable . Vi ersätter helt enkelt RETURN-värdet (Final) med vår första variabel (VAR). Och du kan se att felet försvinner eftersom DAX-frågan nu får en tabell.
I vEvalTable tar vi originaldata, som är säkerhetspoängen, och vi normaliserar dem och lägger till kolumnen Normalized Value till den virtuella tabellen. Vi har indexet, regionens värde och det normaliserade värdet. Vi kan sortera dessa värden uppåt eller nedåt och filtrera värdena också.
Det här ger oss precis vad vi hade förväntat oss. Den returnerar 50 rader, vilket är hela datamängden. Det går bra, så låt oss gå ner och utforska nästa tabell, som är vTableTopN . I den här tabellen tar vi TOPN med hjälp av skjutreglaget för n:te objektet. I det här exemplet har vi det sjunde värdet av den virtuella tabellen ovan (vEvalTable), och vi tar det TOPN baserat på det normaliserade värdet i fallande ordning.
Så när vi ändrar vår RETURN-funktion till det, faller den av och vi får ingenting. Låt oss ta en titt på varför eftersom detta är ett riktigt viktigt koncept för att felsöka och förstå virtuella tabeller.
Om vi tittar på formeln har vi Nth Item Slider Value som huvudmisstänkt här. Tillbaka till LuckyTemplates, vi kan se att detta i princip bara skördar siffran sju. Observera att skjutreglage finns inom ramen för en sida .
Och så, i det här fallet, när vi tittar på att felsöka den tabellen ur sitt sammanhang, har det valda värdet inget sammanhang runt sig . Det har ingenting i form av att kunna dra den siffran. Vi fick ett TOPN, men vi vet inte vad N är i TOPN eftersom det valda värdet returnerar ett tomt värde.
Hur hanterar vi det? Låt oss titta på det valda värdemåttet. För det mesta är vi alltid uppmärksamma på den första parametern i, men det finns en andra parameter, som är en alternativ. Detta för oss till mitt tredje tips.
Tips #3: Använd den alternativa parametern i SELECTEDVALUE
Det som hände här är att det har dragit blankt som suppleant. Men vad vi vill göra (i felsökningssyfte) är att vi vill lägga ett verkligt värde här. Så vi sätter siffran 7 och sparar det.
Nu har vi några värderingar. Det returnerar sju rader, vilket är precis vad det borde på grund av det TOPN-värdet på sju.
Låt oss fortsätta längs raden till nästa virtuella tabell, som är vTableNthItem . Vi har den där högen med sju kort, och det här bordet vänder i princip. Vi var i fallande ordning i föregående tabell, och nu är vi i stigande ordning.
Om vi tar och kopierar detta ner till RETURN-sektionen får vi resultatet. Det är intressant att det inte återvänder en rad. Det återkommer tre rader eftersom dessa tre är oavgjorda. Det är precis anledningen till att vi använder TOPN snarare än RANKX, i det här fallet.
Låt oss nu gå till Resultat . Om vi kopierar VAR-resultatet ner till RETURN-sektionen kommer detta till mitt fjärde tips.
Tips #4: Använd { } för att förvandla skalärer till tabeller
Inom formeln tar vi max () för den vTableNthItem och vi returnerar det normaliserade värdet. Det här skulle kunna vara, det kan vara, det kan vara. Det är bara någon aggregator som returnerar det där värdet i den tabellen. Och så, om vi kopierar ner det här, kommer det att ge oss ett fel eftersom detta nu är en skalär.
Men detta är mitt fjärde tips, som är i samband med felsökning. Vad du kan göra är att bara lägga till de lockiga parenteserna . Genom att göra det förvandlar den den skalären till en tabell.
Och sedan, vad vi har här är bara en sista felkontroll, vilket är om det visar sig att utvärderingstabellen är mindre än antalet rader, kommer den att returnera otillräcklig data. Men vi vet i det här fallet att vår datamängd är tillräckligt stor. Men vi kan bara testa det genom att skriva in Final . Återigen, eftersom det är en scaler, behöver vi också de lockiga parenteserna, och vi får samma värde här.
Vi har grävt i och felsökt den här virtuella tabellen, och vi har använt det alternativa värdet i SELECTEDVALUE för att förhindra att det faller ur sitt sammanhang. Nu vill jag bara visa er ytterligare ett tips som jag tyckte var riktigt användbart.
Tips #5: Använd CONCATENATEX/UNICHAR för att förvandla ett bord till en skalär
I samband med att du gör din felsökning, kommer du att vilja se i LuckyTemplates hur den tabellen ser ut. Den allmänna regeln är att ett mått bara kan returnera en skalär, inte en tabell. Men det finns ett fusk som jag ska visa dig som gör att det nästan kan returnera ett bord.
Låt oss ta en titt på det här måttet, som är Visualized Virtual Table , och vi har här alla virtuella tabeller som vi hade från början. Till exempel vill vi visa, låt oss säga på första rapportsidan, vTableTopN.
Du kan använda dettafungera. Du kan faktiskt ta det virtuella tabellnamnet (vTableTopN) och ta värdena i den tabellen och sammanfoga dem. Du kan skapa något som i princip ser ut som ett virtuellt bord.
Om vi tar den här åtgärden måste vi gå tillbaka till LuckyTemplates och släppa detta i ett kortmått. Vanligtvis ger tabellen ett fel, men genom CONCATENATEX förvandlade den tabellen till en skalare. Du kan se att det är ganska primitivt, men det ger precis det vi förväntar oss och det gör det på ett dynamiskt sätt.
Det är ett sätt att trycka in en tabell i ett mått och visa det i din rapport. Det är ett riktigt användbart felsökningstrick. Det kommer att ge ett bra format i ett kortvärde som du kan använda i en rapport.
Slutsats
Förhoppningsvis ger den här handledningen dig lite att tänka på när det gäller att arbeta med ett virtuellt LuckyTemplates-bord. Det här är några ytterligare tips och tricks för att förstå vad som händer i dina virtuella tabeller. Jag hoppas att du tyckte att det var till hjälp.
Besök vårför fler LuckyTemplates-tutorials och kolla in länkarna nedan för mer relaterat innehåll.
Med vänliga hälsningar!
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.
I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.
I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.
I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.
I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.
Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.