Home
» Power BI
»
DAX og strømforespørgsel | Oprettelse af selvsorteringskolonner
DAX og strømforespørgsel | Oprettelse af selvsorteringskolonner
Efter en nylig DAX pop-quiz, som jeg forberedte og postede på LinkedIn, rejste en af de personer, der svarede på quizzen, en fascinerende idé, hvorigennem tekstkolonner ikke længere behøvede en numerisk sorteringskolonne for at placere dem i den rigtige rækkefølge. Jeg eksperimenterede med denne nye tilgang, og den fungerede smukt. I dagens selvstudie vil jeg vise dig, hvordan du ved at bruge denne tilgang kan skabe selvsorterende tekstkolonner, der bruger både DAX og Power Query. Du kan se den fulde video af denne tutorial nederst på denne blog.
Lad os tage et kig på øvelsesdatasættet, som vi har fra vores eksterne værktøjer (vi har LuckyTemplates Extended Date Table). I denne tabel har vi et felt ved navn, Månedsnavn , som er det, vi vil fokusere på.
Lad os få fat i månedens navn og trække det ud i en tabel. Du vil se, at det er sorteret alfabetisk. Og så skal vi tage fat på det for at få det til at fungere korrekt i vores tabeller og billeder.
Sådan opretter du selvsorterende kolonner ved hjælp af DAX og Power Query i LuckyTemplates
Lad os lave Power Query først. Lad os gå til vores Datoer-tabel, og vi vil oprette en kolonne og bruge en smule simpel M-kode. Lad os kalde denne kolonne, månedens navn, og vi vil bruge en stjerne bare for at indikere, at det er en selvsorterende kolonne.
Til formlen bruger vi funktionen kaldet Text.Repeat . Den beder om den tekst, du vil indsætte eller gentage, og derefter det antal gange, du vil gentage den. I stedet for noget eksplicit tekst, laver vi ikke-trykte tegn. Og til det kan vi bruge en funktion kaldet Character.FromNumber , og det tal, vi skal bruge, er 0032, som er tallet for et ikke-udskrivende rum. Det vil vi gerne gentage med 12 minus Årets Måned . Derefter sammenkæder vi det med månedens navn.
Det føjer til vores klumme. Det ser det samme ud, men det har nu de der ikke-udskrivningsrum foran.
Når vi søger efter måned, finder vi feltet Månedsnavn* med selvsorteringen. Vi smider det ind i en tabel, og vi kan se, at i stedet for at sortere alfabetisk, så er det faktisk at sortere kronologisk ud fra mellemrummene.
Hvis vi her ser på Sortér efter kolonne , er den bare sorteret af sig selv. Der er ikke noget ekstra sorteringsfelt, der anvendes.
Vi kan også gøre dette ved at bruge en meget lignende tilgang i DAX. Lad mig vise dig, hvordan du gør det.
Lad os først tilføje en brugerdefineret kolonne her. Metoden er den samme. Funktionerne er lidt anderledes. Lad os kalde denne månedsnavn med en dobbelt stjerne. Så, i stedet for Text.Repeat, vil vi bruge en funktion i DAX kaldet. Det er nøjagtig den samme struktur. Den bruger teksten og derefter det antal gange, du vil have den gentaget.
Og så, til teksten, i stedet for Character.FromNumber, vil vi i DAX bruge det tilsvarende, som er. Dernæst vil vi have 0032 , som er vores nummer for det ikke-udskrivende område, og derefter få det gentaget med 12 minus MånedOfYear .
Vi vil sammenkæde det med vores Månedsnavn-felt, og lad os bruge det originale Månedsnavn, ikke Månedsnavnet*. Jeg vil afkorte dette til et kort felt ved at bruge VENSTRE og derefter 3 (vi tager bare de første tre tegn), bare for at kunne bruge det i en visualisering til at vise dig, hvordan det vil se ud.
Så nu, hvis vi trækker det ind i en tabel, sorterer det nøjagtigt kronologisk som M-koden gjorde.
Dette fungerer ikke kun i tabeller, men fungerer også i visuelle billeder.
Konklusion
Jeg synes, at dette er en rigtig fed teknik til at skabe selvsorterende kolonner i LuckyTemplates ved hjælp af DAX og Power Query. Jeg troede, at det var absolut genialt. Jeg er meget taknemmelig over for deltageren i quizzen for at påpege det. Jeg håber, du fandt dette nyttigt i forhold til, hvordan du opretter og administrerer dine tekstfelter.