Home
» Power BI
»
Erstat værdi for matchende tekst i Power Query
Erstat værdi for matchende tekst i Power Query
Hvis du nogensinde har haft et krav om at udføre flere eksakte tekstmatch-erstatninger, er der en god chance for, at du har udført en række udskiftningsværditrin. Men som altid er der flere og nemmere måder at opnå det samme resultat på. Du kan se den fulde video af denne tutorial nederst på denne blog.
I dagens blog vil jeg demonstrere M-funktionen Record.FieldOrDefault for denne specifikke brugssag.
Trin til at erstatte værdi for flere tekster med nøjagtig match
Navigering af datasættet
Lad os starte med at åbne for at få adgang til prøvedata- og erstatningsposten .
Inde i tabellen ser vi, at ikke alle tekststrengene er venstrejusterede.
Når vi flytter til Erstatninger , kan vi undersøge vores registrering og forstå, hvorfor denne metode kun kan fungere på at erstatte eksakte tekstmatches.
En post er et sæt felter, og hvert felt har et navn-værdi-par.
Feltnavnet skal være en unik tekst i posten med Record.FieldOrDefault.
Feltnavnet vil blive brugt til at identificere den ting, vi leder efter, mens feltværdien, der vil blive brugt til erstatningen, kan være af enhver type.
Udskiftning af værdier
Lad os se, hvordan det virker.
Først vil jeg gå til løsningsforespørgslen , og på fanen Transformer vil jeg vælge Erstat værdier.
Et pop op-vindue vises, og jeg trykker på OK .
Dette genererer hovedparten af formularen. Så alt hvad jeg skal gøre er at opdatere syntaksen inde i formellinjen.
Fra formlen kan vi se, at den kalder vores kildetabel som det første argument og den ting, vi leder efter, som det andet argument. Argumenterne er angivet med disse dobbelte anførselstegn (" ").
Det, jeg leder efter, er værdien i kolonne 1, så jeg skriver hver [Col1] for det første argument. Dernæst vil den have tingen til at erstatte botten, og det er her, jeg vil bruge den optagefunktion.
Jeg vil skrive hver Record.FieldOrDefault. Så vil den have posten eller erstatningen og til sidst den ting, vi leder efter. Jeg kan finde det inde i kolonne 1, så jeg vil kopiere og indsætte [Col1] fra det første argument for at referere tilbage.
Hvis værdien ikke findes i posten, vil jeg have den til at returnere det, der er der i øjeblikket. Derfor vil jeg indsætte [Col1] igen for at referere til kolonne 1, hvis værdien mangler. Hvis jeg udelader denne sidste parameter, og elementet ikke findes inde i posten, returneres et null i stedet.
Disse ændringer får vores formel til at se sådan ud.
Lad os bekræfte ved at klikke på tjekikonet til venstre på formellinjen.
Resultatet er vist på billedet nedenfor.
Hver tekstværdi i kolonne 1, der havde et matchende feltnavn i erstatningsposten, er nu blevet opdateret.
Konklusion
I denne blog demonstrerede jeg, hvordan man laver flere eksakt matchende teksterstatninger i . Ved at bruge M-funktionen Record.FieldOrDefault kan du spare tid ved at reducere de nødvendige trin for at opnå de samme resultater.