Contents [show]

Soms is daar situasies wanneer dit nie vooraf bekend is presies hoeveel en watter rye uit die brondata ingevoer moet word nie. Gestel ons moet data van 'n tekslêer in Power Query laai, wat met die eerste oogopslag nie 'n groot probleem bied nie. Die probleem is dat die lêer gereeld opgedateer word, en môre kan dit 'n ander aantal reëls met data hê, 'n kopskrif van drie, nie twee reëls nie, ens.:

Voer 'n drywende fragment in Power Query in

Dit wil sê, ons kan nie vooraf met sekerheid sê vanaf watter lyn en presies hoeveel lyne ingevoer moet word nie. En dit is 'n probleem, want hierdie parameters is hardgekodeer in die M-kode van die versoek. En as jy 'n versoek rig vir die eerste lêer (invoer van 5 reëls vanaf die 4de), dan sal dit nie meer korrek werk met die tweede een nie.

Dit sal wonderlik wees as ons navraag self die begin en einde van die "drywende" teksblok vir invoer kan bepaal.

Die oplossing wat ek wil voorstel, is gebaseer op die idee dat ons data 'n paar sleutelwoorde of waardes bevat wat gebruik kan word as merkers (kenmerke) van die begin en einde van die datablok wat ons benodig. In ons voorbeeld sal die begin 'n reël wees wat met die woord begin SKU, en die einde is 'n reël met die woord Totaal. Hierdie ry-validering is maklik om in Power Query te implementeer deur 'n voorwaardelike kolom te gebruik - 'n analoog van die funksie IF (AS) in Microsoft Excel.

Kom ons kyk hoe om dit te doen.

Kom ons laai eers die inhoud van ons tekslêer in Power Query op die standaard manier – deur die opdrag Data – Kry data – Van lêer – Van teks/CSV-lêer (Data – Kry Data – Van lêer – Van teks/CSV-lêer). As jy Power Query as 'n aparte byvoeging geïnstalleer het, sal die ooreenstemmende opdragte op die blad wees Kragnavraag:

Voer 'n drywende fragment in Power Query in

Soos altyd, wanneer u invoer, kan u die kolomskeidingskarakter kies (in ons geval is dit 'n oortjie), en na invoer, kan u die outomaties bygevoegde stap verwyder gewysigde tipe (Veranderde tipe), want dit is te vroeg vir ons om datatipes aan kolomme toe te ken:

Voer 'n drywende fragment in Power Query in

Nou met die opdrag Byvoeging van 'n kolom – Voorwaardelike kolom (Voeg kolom by – voorwaardelike kolom)kom ons voeg 'n kolom by met die nagaan van twee voorwaardes – aan die begin en einde van die blok – en vertoon enige verskillende waardes in elke geval (byvoorbeeld, getalle 1 и 2). As daar aan geen van die voorwaardes voldoen word nie, voer dan uit nul:

Voer 'n drywende fragment in Power Query in

Na kliek op OK ons kry die volgende prentjie:

Voer 'n drywende fragment in Power Query in

Kom ons gaan nou na die blad. Transformasie en kies 'n span Vul - Af (Transformeer – Vul – Af) – ons een en twee sal langs die kolom strek:

Voer 'n drywende fragment in Power Query in

Wel, dan, soos jy dalk kan raai, kan jy eenvoudig die eenhede in die voorwaardelike kolom filter – en hier is ons gesogte stukkie data:

Voer 'n drywende fragment in Power Query in

Al wat oorbly, is om die eerste reël na die kopskrif te verhoog met die opdrag Gebruik eerste reël as opskrifte tab What is This (Tuis – Gebruik eerste ry as opskrifte) en verwyder die onnodige meer voorwaardelike kolom deur regs te klik op sy kopskrif en die opdrag te kies Vee kolom uit (Vee kolom uit):

Probleem opgelos. Nou, wanneer die data in die brontekslêer verander word, sal die navraag nou onafhanklik die begin en einde van die "swewende" fragment van die data wat ons benodig bepaal en elke keer die korrekte aantal reëls invoer. Natuurlik werk hierdie benadering ook in die geval van die invoer van XLSX, nie TXT-lêers nie, sowel as wanneer alle lêers gelyktydig vanaf 'n vouer ingevoer word met die opdrag Data – Kry data – Van lêer – Van gids (Data - Kry Data - Van lêer - Van gids).

  • Stel tabelle saam van verskillende lêers met behulp van Power Query
  • Herontwerp 'n kruistabel na plat met makro's en Power Query
  • Bou 'n Project Gantt-grafiek in Power Query

Lewer Kommentaar