DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler
Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
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.
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.
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.
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.
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å.
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.
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.
Nå har vi noen verdier. Den returnerer syv rader, som er nøyaktig hva den skal på grunn av den TOPN-verdien på syv.
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.
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.
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.
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.
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.
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.
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.
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!
Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.
Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.
I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.
Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.
Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.
I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.
I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.
I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.
I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.