LuckyTemplates virtuella bord | 5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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å.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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.

LuckyTemplates virtuella bord |  5 tips och tricks för felsökning

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!


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

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.