LuckyTemplates Power Query: Fjernelse af duplikerede rækker

I denne blog vil jeg vise dig, hvordan du fjerner duplikerede rækker i LuckyTemplates Power Query baseret på betingelser. Du kan se den fulde video af denne tutorial nederst på denne blog.

Dette eksempel er fra et spørgsmål, der blev rejst på. Medlemmet har transaktionsdata og ønsker at fjerne rækker, der annullerer hinanden.

Der er to forskellige transaktionstyper, en for indgående og en for udgående. Hun har også tilføjet bevægelsestælling. Og ud fra det formulerede hun tre scenarier.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Scenarie et er baseret på to rækker. Hvis de ophæver hinanden, skal begge rækker fjernes. Hvis det ikke er tilfældet, skal begge rækker beholdes.

Scenarier to og tre er baseret på en kombination af rækker, der delvist annullerer hinanden. Disse rækker bør fjernes efter først-ind-først-ud-basis, så kun de seneste indgående transaktioner bevares.

Grundlæggende gentager vi den samme logik igen og igen. Vi bør være i stand til at designe en enkelt tilgang, der passer til alle disse scenarier.

Nogle af de ting, vi skal gøre, er at tilføje en kolonne med absolutte mængder og gruppere efter "tilføj en mængdebalancekolonne" og en indlejret tabel ved hjælp af "alle rækker"-indstillingen. Vi vil også transformere de indlejrede tabeller, sortere bevægelsestypen og bogføringsdatoen, oprette en løbende total og kun beholde rækker baseret på en betingelse.

Jeg har vurderet dette på et mellemniveau, fordi de fleste af de transformationer, vi kan gøre her, er ved at bruge brugergrænsefladen. Med det sagt, lad os gå over til LuckyTemplates Power Query.

Indholdsfortegnelse

Tilføjelse af kolonne med absolutte mængder i Power-forespørgslen

Vi starter med at tilføje en kolonne med absolutte mængder. Vælg kolonnen Antal , derefter på båndet eller fanen Tilføj kolonne , gå til Videnskabelig , og klik derefter på Absolut værdi .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Jeg vil omdøbe denne kolonne i formellinjen.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Gruppér efter ID-indeks og absolut mængde

Vi kan nu gruppere efter ID-indeks og absolut mængde. Vælg ID-indeks , hold derefter shift eller kontrol nede for at vælge flere, og klik derefter på Abs qty (absolut mængde).

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Du finder Grupper efter på fanen Transformer.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Men du kan også finde det på fanen Hjem.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Klik på den, og nu tilføjer vi en ny kolonne. Det er ikke en "optælling", men det vil være "summen" af mængden. Så lad os omdøbe det til Antal (mængde) Balance . Det vil være en sum af kolonnen mængde. Og så tilføjer vi endnu en samling, men det bliver en speciel, så vi vælger Alle rækker . Lad os også give denne kolonne et navn ( AllRows ). Tryk derefter på OK.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Hvis vi klikker i det hvide rum i tabellen, ser vi en forhåndsvisning af den indlejrede tabel nedenfor. Vi ser, at mængderne for denne indlejrede tabel ophæver hinanden, og mængdebalancen er nul.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Hvis vi ser på den næste indlejrede tabel (så klik til side i det hvide rum i næste række), ser vi, at mængdekolonnen ikke ophæver hinanden, og en mængdebalance er større end nul.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Lad os tilføje en brugerdefineret kolonne, så vi kan bruge den til vores indlejrede tabeltransformationer senere. Så vælg Tilføj tilpasset kolonne .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Lad os omdøbe den kolonne tilog vi tilføjer nul (0) som en pladsholder. Klik derefter på OK.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Transformering af indlejrede tabeller i LuckyTemplates Power Query

Vi er nu klar til at skabe logikken til at transformere de indlejrede tabeller. Men vi vil ikke skrive en masse af dem, og det behøver vi ikke.

Vi kan bruge brugergrænsefladen til det meste. Hvis vi bygger logikken for disse transformationer i en separat forespørgsel, var det mest omfattende scenarie, vi havde, det med enten tre eller fire rækker.

Hvis jeg nu klikker på højre side i den sidste række, ser jeg, at denne tabel har fire rækker. Så vi kan bruge dette til at bygge vores transformationer.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Højreklik på siden i det hvide rum, og vælg Tilføj som ny forespørgsel .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Vi ser, at den indlejrede tabel nu er udvidet og blevet tilføjet som en ny forespørgsel, og vi kan bruge denne til at bygge den logik, vi har brug for.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Sortering af bevægelsestype & bogføringsdato

Nu, den første ting, vi skal gøre, er at sortere på Movement Type . Lad os vælge faldende . På denne måde vil de udgående transaktioner altid være øverst.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Dernæst sorterer vi bogføringsdatoen som stigende , og sørger for, at hvis vi udelader rækker, vil det altid ske efter FIFO-princippet (først ind først ud).

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Oprettelse af en løbende total

For at identificere de rækker, som vi vil fjerne, vil jeg tilføje en løbende total for at deaktivere, og vi kan bruge en List.FirstN til den opgave. Denne funktion opretter en liste baseret på en anden liste, hvor de øverste elementer opbevares ud fra et bestemt nummer eller et kriterium.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Lad os gå tilbage til vores forespørgsel. Vi skal bruge to ting til List.FirstN. Først har vi brug for den liste, og den liste er vores mængde kolonne. Hvis jeg højreklikker på kolonneoverskriften Mængde, får vi muligheden for at tilføje som NewQuery .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Og her ser vi koden, som vi skal bruge for at generere den liste. I det anvendte trin kan du se, at det peger på det sidste trin og derefter identificerer kolonnen i disse parenteser.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Den anden del, som vi har brug for til List.FirstN, er et tal til at identificere, hvor mange numre, der skal beholdes fra denne liste. Vi kan bruge indekset til det, så jeg vil tilføje en indekskolonne fra en (1) for denne række.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Så for nummer 1 vil det beholde tallet på den første række i kolonnen Antal, og så videre. Og det kan vi nu opsummere.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Lad os tilføje en brugerdefineret kolonne og kalde den Løbende total . Vi bruger List.FirstN her, og vi kan se, at den første parameter var denne liste, kolonnen Antal. Vi skal pege på det sidste trin, og det sidste trin er det tilføjede indeks .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Vi har identificeret den kolonne, vi ønsker, og det er vores kolonne for mængde. Vores optælling er i kolonnen Indeks.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Nu returnerer den en liste. Hvis vi klikker videre til siden i det hvide rum, kan vi se indholdet af den liste. For den første rekord holdt den kun den øverste række fra den liste. For den anden rekord beholdt den de to øverste rækker.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Nu skal vi bare opsummere disse mængder, og vi kan bruge Lists.Sum til at gøre det. Så jeg vil tilføje det i formellinjen. Og jeg har også tænkt mig at sætte Type .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Filtrering af rækker baseret på en tilstand

Med denne løbende total kan vi identificere de rækker, som vi vil beholde. Vi ønsker kun at beholde rækker, der er større end nul, så lad os tilføje en filterbetingelse.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Vi kan nu fjerne vores hjælpekolonner. Vælg Indeks og løbende total, og klik derefter på Fjern kolonner.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

I den avancerede editor kan vi nu kopiere den kode, vi har oprettet. Jeg åbner , og vi kan se, at dette er vores splittrin. Så vi kan vælge og kopiere alt under det.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Lad os nu gå tilbage til vores oprindelige forespørgsel. Åbn igen Advanced Editor. Og i stedet for pladsholderen, lad os flytte til en ny linje. Jeg vil bruge udtrykket " lad ", fordi det kan fange værdier fra mellemliggende beregninger i variable. Så "lad" og gå derefter til en ny linje og indsæt mine transformationer. Jeg vil også erklære Type .

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Den fremhævede kode ovenfor peger på vores udvidede indlejrede tabel, som er placeret i kolonnen Alle rækker. Så jeg vil pege på det ved at erstatte denne fremhævede kode til AllRows .

Så vores transformationskolonne har nu indlejrede tabeller. Vi bygger vores forespørgsel baseret på den sidste række, ikke? Og det indeholdt fire rækker, da vi startede og kun indeholdt to. Vi har også den mængde balanceret nul, ikke? Og nu har den et tomt bord.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Vi kan fjerne dem ved at filtrere på kolonnen Mængdebalance. Vi ønsker ikke, at mængdebalancen er lig nul.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

Og så vil jeg vælge min transformationskolonne og fjerne andre kolonner. Jeg kan nu udvide mine indlejrede transformationstabeller. Brug ikke det originale kolonnenavn som præfiks, og tryk på OK.

LuckyTemplates Power Query: Fjernelse af duplikerede rækker

På fanen Transformer skal du vælge Datatype , og vi er alle færdige. Og det er sådan, du rydder op i transaktionsdata.




Konklusion

I denne tutorial viste jeg dig, hvordan du rydder op i transaktionsdata, specifikt fjerner duplikerede rækker. Dette er en fantastisk teknik, du kan bruge, når du bruger LuckyTemplates Power Query.

Jeg håber, du nød denne. Se den fulde videotutorial nedenfor for flere detaljer. Tjek linkene nedenfor for mere relateret indhold omkring LuckyTemplates Power Query Editor.

Skål!

Melissa


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.