LuckyTemplates virtuell bord | 5 tips og triks for feilsøking

LuckyTemplates virtuelle bord er mitt personlige favoritt-DAX-emne. De er nøkkelen til å låse opp den fulle kraften til DAX. Virtuelle tabeller er den eneste typen tabeller i LuckyTemplates som er fullt dynamiske, og det er problemer som bare kan løses ved å bruke virtuelle tabellteknikker i målene dine. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

I denne opplæringen skal jeg dele mine topp 5 tips og triks som jeg har samlet i løpet av årene som virkelig har hjulpet meg å forstå og feilsøke hva som skjer i Power Bi virtuelle tabeller.

Eksemplet jeg skal gå gjennom i dag er fra, og det kommer fra et medlem ved navn Dave C, som jobber innen industrisikkerhet. Dave hadde en rekke sikkerhetsscore, og han ønsket å normalisere disse slik at toppscore var 10, og deretter dynamisk komme opp med Nth i den listen.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

I utgangspunktet tenkte vi å gjøre dette gjennom en enkelmåle, men vi innså senere at mange av hans normaliserte verdier har bånd. For eksempel, hvis du vil ha det syvende elementet på listen, kommer det ikke til å være et nummer syv i en RANKX. Det er ingen enkel måte å trekke det ut av en filtertilstand. Så vi bestemte oss for en-basert mål slik at det alltid ville telle ned det n-te tallet.

Dette ligner på når du trekker det syvende kortet fra en kortstokk, du teller ut syv kort, og så snur du den bunken med syv, og kortet på bunnen er det du vil ha. Vi skal gjøre tilsvarende i et TOPN-tiltak.

Innholdsfortegnelse

Tips #1: Bruk et eksternt verktøy for å visualisere LuckyTemplates virtuelle bord

Du kan bruke DAX Studio eller Tabular Editor. I dette eksemplet bruker jeg Tabular Editor 3 (TE3). Det er teknisk mulig å gjøre dette ved å bruke fanen Modellering – Ny tabell, men det kommer til å lage fysiske tabeller i datamodellen din. Du må vende manuelt mellom det og editoren, og det er bare en treg og vanskelig måte å gjøre det på.

Når du ser den dynamiske måten det kan gjøres på gjennom et eksternt verktøy, vil du se fordelen.

Så innenfor TE3 oppretter vi en ny DAX-spørring. Vi kan ta vårt første mål og kopiere dette over til DAX-søket vårt.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Hvis du husker det, starter DAX-søk alltid med EVALUATE . Vi kommer til å få en feil først fordi DAX-spørringer returnerer tabeller . Dette var et mål med de to siste variablene som er skalarer. Det vi kan gjøre her er å endre returverdien , som er mitt neste tips.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Tips #2: Feilsøk LuckyTemplates virtuelle tabell i deler ved å bruke variabler

Du kan feilsøke virtuelle tabeller på omtrent samme måte som du gjør med mål – bit for bit, ved å endre returverdien. La oss starte med den første virtuelle tabellen, vEvalTable . Vi erstatter ganske enkelt RETURN-verdien (Final) med vår første variabel (VAR). Og du kan se at feilen forsvinner fordi DAX-spørringen nå får en tabell.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

I vEvalTable tar vi de originale dataene, som er sikkerhetsskårene, og vi normaliserer disse og legger til den Normaliserte verdi-kolonnen til den virtuelle tabellen. Vi har indeksen, verdien av regionen og den normaliserte verdien. Vi kan sortere disse verdiene opp eller ned og filtrere verdiene også.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Dette gir oss akkurat det vi hadde forventet. Den returnerer 50 rader, som er hele datasettet. Det går bra, så la oss gå ned og utforske neste tabell, som er vTableTopN . I denne tabellen tar vi TOPN ved å bruke den n-te elementskyveverdien. I dette eksemplet har vi den syvende verdien av den virtuelle tabellen ovenfor (vEvalTable), og vi tar den TOPN basert på den normaliserte verdien i synkende rekkefølge.

Så når vi endrer RETURN-funksjonen vår til den, faller den av og vi får ingenting. La oss ta en titt på hvorfor fordi dette er et veldig viktig konsept for feilsøking og forståelse av virtuelle tabeller.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Hvis vi ser på formelen, har vi Nth Item Slider Value som hovedmistenkt her. Tilbake til LuckyTemplates, vi kan se at dette i utgangspunktet bare er å høste tallet syv. Merk at glidebrytere finnes innenfor konteksten til en side .

Og så, i dette tilfellet, når vi ser på å feilsøke den tabellen ut av kontekst, har den valgte verdien ingen kontekst rundt seg . Det har ikke noe i forhold til å kunne trekke det tallet. Vi fikk en TOPN, men vi vet ikke hva N er i TOPN fordi den valgte verdien returnerer en blank.

Hvordan håndterer vi det? La oss se på det valgte verdimålet. Mesteparten av tiden tar vi alltid hensyn til den første parameteren i, men det er en andre parameter, som er en alternativ. Dette bringer oss til mitt tredje tips.

Tips #3: Bruk den alternative parameteren i SELECTEDVALUE

Det som skjedde her er at det har trukket blankt som alternativ. Men det vi ønsker å gjøre (for feilsøkingsformål) er at vi ønsker å sette inn en reell verdi her. Så vi setter tallet 7 og lagrer det.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Nå har vi noen verdier. Den returnerer syv rader, som er nøyaktig hva den skal på grunn av den TOPN-verdien på syv.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

La oss fortsette nedover linjen til neste virtuelle tabell, som er vTableNthItem . Vi har den bunken med syv kort, og dette bordet snur den i bunn og grunn. Vi var i synkende rekkefølge i forrige tabell, og nå er vi i stigende rekkefølge.

Hvis vi tar og kopierer dette ned til RETURN-delen, får vi resultatene. Det er interessant at det ikke returnerer én rad. Den returnerer tre rader fordi disse tre er uavgjort. Det er nettopp grunnen til at vi bruker TOPN i stedet for RANKX, i dette tilfellet.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

La oss nå gå til Resultat . Hvis vi kopierer VAR-resultatet ned til RETURN-delen, kommer dette til mitt fjerde tips.

Tips #4: Bruk { } for å gjøre skalarer om til tabeller

Innenfor formelen tar vi maks () av det vTableNthItem og vi returnerer den normaliserte verdien. Dette kan være, kan det være, kan det være. Det er bare en aggregator som returnerer den ene verdien i den tabellen. Og så, hvis vi kopierer dette ned, vil det gi oss en feil fordi dette nå er en skalar.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Men dette er mitt fjerde tips, som er i sammenheng med feilsøking. Det du kan gjøre er å legge til de krøllete parentesene . Ved å gjøre det forvandler den skalaren til en tabell.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Og så, det vi har her er bare en siste feilsjekk, som er at hvis det viser seg at evalueringstabellen er mindre enn antall rader, vil den returnere utilstrekkelig data. Men vi vet i dette tilfellet at datasettet vårt er stort nok. Vi kan imidlertid bare teste det ved å skrive inn Final . Igjen, fordi det er en scaler, trenger vi også de krøllete parentesene, og vi får samme verdi her.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Vi har fordypet oss i og feilsøkt denne virtuelle tabellen, og vi har brukt den alternative verdien i SELECTEDVALUE for å forhindre at den faller ut av kontekst. Nå vil jeg bare vise deg et ekstra tips som jeg fant veldig nyttig.

Tips #5: Bruk CONCATENATEX/UNICHAR for å gjøre et bord om til en skalar

I forbindelse med å gjøre feilsøkingen din, vil du se i LuckyTemplates hvordan den tabellen ser ut. Den generelle regelen er at et mål bare kan returnere en skalar, ikke en tabell. Men det er en juksekode som jeg skal vise deg som gjør at den nesten kan returnere et bord.

La oss ta en titt på dette målet, som er Visualized Virtual Table , og vi har her alle de virtuelle tabellene vi hadde i utgangspunktet. For eksempel ønsker vi å vise, la oss si på forsiden av rapporten, vTableTopN.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Du kan bruke dennefunksjon. Du kan faktisk ta det virtuelle tabellnavnet (vTableTopN) og ta verdiene i den tabellen og sette dem sammen. Du kan lage noe som i utgangspunktet ser ut som et virtuelt bord.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Hvis vi tar dette tiltaket, må vi gå tilbake til LuckyTemplates og legge dette inn i et kortmål. Vanligvis gir tabellen en feil, men gjennom CONCATENATEX gjorde den tabellen til en skalering. Du kan se at det er ganske primitivt, men det returnerer akkurat det vi forventer, og det gjør det på en dynamisk måte.

LuckyTemplates virtuell bord |  5 tips og triks for feilsøking

Det er en måte å presse en tabell inn i et mål og vise det i rapporten din. Det er et veldig nyttig feilsøkingstriks. Det vil gi et godt format i en kortverdi som du kan bruke i en rapport.




Konklusjon

Forhåpentligvis gir denne opplæringen deg litt til ettertanke når det gjelder arbeid med et LuckyTemplates-virtuelt bord. Dette er noen ekstra tips og triks for å forstå hva som skjer i de virtuelle bordene dine. Jeg håper du fant det nyttig.

Besøk vårfor flere LuckyTemplates-opplæringer og sjekk ut lenkene nedenfor for mer relatert innhold.

Beste ønsker!


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.