Tabeller i LuckyTemplates: Typer og distinksjoner

Jeg vil bruke litt tid i dag på å snakke om tabeller i LuckyTemplates. Vi støter på tabeller hele tiden med alle problemer, men vi bruker egentlig ikke mye tid på å tenke på dem alene. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Det var nylig et innlegg fra LuckyTemplates-medlemmet, Ashton, som alltid kommer med gode, tankevekkende spørsmål. Spørsmålet hans fikk meg til å tenke på et mønster som jeg ser ganske regelmessig og ønsker å ta opp i denne opplæringen.

Det var ikke en feil han gjorde, men det er en vanlig feil. Jeg ser mange ganger hvor folk vil si at de har problemer med et virtuelt bord, for eksempel når det ikke er et virtuelt bord i utgangspunktet.

Det er et reelt skille mellom typer bord i LuckyTemplates.

Analogien jeg ville gitt er hvis noen sa: "Hei, jeg har nylig adoptert en hund og jeg har problemer med hunden og lurer på om du kan hjelpe" og det er ikke en hund, men en ulv. De er begge hjørnetenner, men det er noen ganske store forskjeller du vil ta hensyn til.

Så selv om de alle er av samme familie, akkurat som tabellene i LuckyTemplates, er de viktige forskjeller som virkelig påvirker løsningen og hvordan du bruker disse tabellene. Så det jeg ønsket å gjøre var å gå tilbake til Ashtons spørsmål, og deretter fordype meg litt i forskjellene mellom tabellene du finner i LuckyTemplates og vise hvordan det påvirker måten du håndterer dem på.

Spørsmålet var ganske enkelt, men det er litt mer i det enn det først ser ut til. Han hadde et enkelt datasett som bare sier kundene, typen frukt de kjøpte, mengden, og så bare et indeksnummer.

Tabeller i LuckyTemplates: Typer og distinksjoner

Han ønsket å ha en slicer med multi-select-funksjon, slik at hvis du valgte si oransje, ville den trekke opp alle klientene som kjøpte appelsiner, men den ville også vise hva annet de kjøpte.

Tabeller i LuckyTemplates: Typer og distinksjoner

Så hvis vi slår av dette valget (oransje), kan vi se hele datasettet. Vi kan også se at dette er de to kundene (Joe og Mary) som kjøpte appelsiner, men de hadde også et tilleggskjøp hver.

Tabeller i LuckyTemplates: Typer og distinksjoner

Og så, det første vi vet om er at fruktkutteren må være et frakoblet skjærebord. Hvis det var en vanlig skjærer, ville du truffet appelsin og den ville i utgangspunktet tatt ut alt annet enn appelsin i bordet. Vi vet også, fordi dette er dynamisk, har vi et virtuelt bordproblem.

Så la oss fordype oss litt i dette, men før vi gjør det, la oss ta en titt på de forskjellige typene tabeller vi finner i LuckyTemplates.

Innholdsfortegnelse

Tre typer tabeller i LuckyTemplates

Det er tre typer bord som vi finner jevnlig. Den første er den vanligste, og det er en fysisk tabell, og dette er egentlig dine primærdata. Hver gang du henter data eller legger inn data direkte gjennom dette alternativet eller inn, du gjør en referanse eller duplikat, eller du laster inn data gjennom en blank spørring, som en datotabell, det er en fysisk tabell.

Tabeller i LuckyTemplates: Typer og distinksjoner

En fysisk tabell er ikke fullstendig dynamisk, men den har alle disse andre egenskapene som øker filstørrelsen fordi det er fysiske data. Den er tilgjengelig i Power Query. Vanligvis bygges relasjonene i datamodellen gjennom fysiske relasjoner. De trenger ikke å være det, men det er de vanligvis. De brukes til primærdata, og du visualiserer dem enten gjennom datavisningen eller gjennom Power Query.

Tabeller i LuckyTemplates: Typer og distinksjoner

En fysisk tabell er ikke fullstendig dynamisk, men den har alle disse andre egenskapene som øker filstørrelsen fordi det er fysiske data. Den er tilgjengelig i Power Query. Vanligvis bygges relasjonene i datamodellen gjennom fysiske relasjoner. De trenger ikke å være det, men det er de vanligvis. De brukes til primærdata, og du visualiserer dem enten gjennom datavisningen eller gjennom Power Query.

Den som ofte blir forvekslet med den virtuelle tabellen er denne beregnede tabellen eller det vi også kan referere til som en DAX-uttrykkstabell. Dette har en direkte analogi til beregnede kolonner som er opprettet gjennomuttrykkene. Dette gjøres gjennom fanen Modellering og alternativet Ny tabell, og deretter skriver du inn DAX-uttrykket.

Den som ofte blir forvekslet med den virtuelle tabellen er denne beregnede tabellen eller det vi også kan referere til som en DAX-uttrykkstabell. Dette har en direkte analogi til beregnede kolonner som er opprettet gjennom DAX-uttrykk. Dette gjøres gjennom fanen Modellering og alternativet Ny tabell, og deretter skriver du inn DAX-uttrykket.

Tabeller i LuckyTemplates: Typer og distinksjoner

Som du kan se fra sammenligningstabellen nedenfor, er den beregnede tabellen ganske forskjellig i profil fra enten den fysiske tabellen eller den virtuelle tabellen. Det er ikke helt dynamisk.

Den må oppdateres for å hente den nye informasjonen. Det øker den fysiske filstørrelsen. I motsetning til en direkte fysisk tabell, er den ikke tilgjengelig i Power Query. Akkurat som en beregnet kolonne ikke vises i Power Query, gjør ikke en beregnet tabell det heller. Men det har de andre aspektene ved et fysisk bord.

Tabeller i LuckyTemplates: Typer og distinksjoner

Vanligvis beregnede tabeller som brukes for å støtte tabeller og brukes oftere for feilsøking. Det er nå bedre verktøy som DAX Studio og Tabular Editor, så det brukes ikke så ofte til det. Du viser denne tabellen gjennom datavisningen.

Og ærlig talt, som beregnede kolonner, er det generelt noe å holde seg unna. Det finnes bedre måter å gjøre ting på enn gjennom beregnede tabeller.

Og da er analogien til mål den sanne. Disse opprettes i sammenheng med tiltak gjennom DAX-tiltakskoden. De er fullt dynamiske, i motsetning til de to andre typene bord. De øker ikke filstørrelsen fordi de er på forespørsel. Akkurat som mål, beregnes virtuelle tabeller på forespørsel i minnet og brukes alle i løpet av sammenhenger de er nødvendige for.

De er ikke tilgjengelige i Power Query. Du kan ikke sette et fysisk forhold til dem. Hvis du relaterer dem i datamodellen din, gjør du det ved å bruke virtuelle relasjoner, oftest med.

Virtuelle tabeller brukes til mellomberegninger i mål fordi et mål ikke kan returnere en tabellverdi og det må returnere en skalarverdi. Så du bruker vanligvis disse som den midlertidige beregningen som du genererer skalerne på, som er resultatet av målet ditt.

Du kan visualisere disse tabellene i verktøy som DAX Studio, Tabular Editor eller New Table, som igjen sannsynligvis er den minst ønskelige måten fordi det roter opp datamodellen din med en haug med ekstra tabeller, med mindre du sletter dette.

DAX-måleløsning for et virtuelt bord

Går tilbake til Ashtons spørsmål, ved å se på tabellen, kan vi fortelle at den er dynamisk. Vi kan også gjøre flere valg, og dette endres fullt ut i farten. Og på grunn av det vet vi at det er en virtuell tabell fordi de to andre (fysiske og beregnede tabeller) ikke er helt dynamiske. Vi vet også at det er et frakoblet bord, som jeg nevnte i begynnelsen.

Tabeller i LuckyTemplates: Typer og distinksjoner

Jeg brukte Rubber Duck-konseptet for å løse dette. I en tidligere tutorial har jeg snakket om dette konseptet med rubber ducking, som utvikler en konseptuell løsning på problemet før du begynner å grave i den spesifikke DAX.

Og så, for gummiand-løsningen her, var det jeg gjorde egentlig å sette sammen dette frakoblede skjærebordet. Så høstet jeg verdien av disse skjærerne. Deretter kom jeg opp med en virtuell tabell som filtrerte klienter etter de som hadde kjøpt valgene i den frakoblede tabellen.

Deretter tok jeg den klientlisten og filtrerte det opprinnelige datasettet vårt av disse kundene for å komme opp med kundene og kjøpene som ble gjort av disse kundene, i tillegg til slicer-verdien.

La oss ta en titt på det spesifikke målet for å se hvordan dette fungerte og noen av hensynene du har når du jobber med virtuelle tabeller.

Tabeller i LuckyTemplates: Typer og distinksjoner

Det første var å utvikle to høstemål for våre verdier. Den første er verdien av den frakoblede skjæreren.

Siden vi hadde multivalg i kravet, betydde det at vi ikke bare kunne bruke. Så det jeg gjorde var å brukefunksjon for å fange opp potensielt ett eller flere valg i den frakoblede sliceren. For klienter, siden vi skal ha én klient på hver rad som vi evaluerer, kan vi bruke SELECTEDVALUE.

Det neste jeg gjorde var denne virtuelle tabellvariabelen ( VAR Buyers ) som starter med. Deretter går det til å filtrereklienter etter om de foretok et fruktkjøp som var i våre verdier for den frakoblede skjæremaskinen.

Vi kan sjekke dette ved å gjøre en DAX-spørring. Vi kan gjøre det i enten DAX Studio eller i Tabular Editor. Så la oss ta vårt virtuelle tabellmål her, kopier det over til Tabellredigering. Vi skal sørge for at det gir oss verdiene vi forventer å se, som ville være Joe og Mary.

Tabeller i LuckyTemplates: Typer og distinksjoner

DAX-spørringer returnerer alltid tabeller og de startet alltid med EVALUATE, så vi legger til EVALUATE her. Vi får imidlertid ikke noe i resultatet. Dette er fordi den valgte høstingsvariabelen for frakobling av frukt ( SelDisconnFruit ) ikke har noen bevissthet om sliceren. Det er ute av kontekst.

Så måten å teste det på er på en måte kunstig å sette den slicer-verdien. Vi erstatter SelDisconnFruit med et lite bord her. Skriv inn oransje (verdien av skjæremaskinen) mellom snirklete parenteser . Og nå får vi resultatet her, som er Joe og Mary. Med det fungerer det virtuelle bordet akkurat slik vi trodde det skulle.

Tabeller i LuckyTemplates: Typer og distinksjoner

Så vi kan nå gå tilbake til vårt måluttrykk. En av de utfordrende tingene med virtuelle tabeller er at de er enkle å lage virtuelle tabeller innenfor et mål . Men du kan ikke returnere en virtuell tabell som et resultat av et mål . Så vi må returnere en skalar, men som fanger opp det relevante aspektet av den virtuelle tabellen.

Så her har vi den virtuelle tabellen som forteller oss hvilke kunder som kjøpte fruktene som var i verdiskjæreren. Vi kan sette opp en annen variabel ( VAR BuyerIn ) som sier at hvis den valgte klienten var i den kjøperens tabell, får den en en . Og hvis ikke, får den en null .

Tabeller i LuckyTemplates: Typer og distinksjoner

Så tar vi resultatet av det og legger det inn i filterruten. Key Buyers -målet, sier vi, er ett, og det kommer til å være kundene som kjøpte, i dette tilfellet, appelsiner.

Tabeller i LuckyTemplates: Typer og distinksjoner

Og ved å gjøre det filtrerer vi den opprinnelige datatabellen ned til de riktige postene. Du kan se at den nå oppretter den virtuelle tabellen, og den filtrerer riktig basert på hvert valg.




Konklusjon

Det er mesteparten av det jeg ønsket å dekke i dag. Det er et ganske enkelt virtuelt tabelleksempel, men med fokus på forskjellen mellom fysiske tabeller, beregnede tabeller og virtuelle tabeller.

Det er mange interessante problemer å se på nytt med hensyn til virtuelle tabeller, spesielt med feilsøking av virtuelle tabellmål. Det er noe jeg kommer tilbake til i løpet av de neste ukene, men foreløpig er det hele denne opplæringen.

Jubel!


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.