Obsah

Někdy nastávají situace, kdy není předem přesně známo, kolik a které řádky je třeba ze zdrojových dat importovat. Předpokládejme, že musíme do Power Query načíst data z textového souboru, což na první pohled nepředstavuje velký problém. Potíž je v tom, že soubor je pravidelně aktualizován a zítra může mít jiný počet řádků s daty, záhlaví tři, nikoli dva řádky atd.:

Import plovoucího fragmentu v Power Query

To znamená, že nemůžeme předem s jistotou říci, od kterého řádku a přesně kolik řádků je třeba importovat. A to je problém, protože tyto parametry jsou pevně zakódovány v M-kódu požadavku. A pokud zadáte požadavek na první soubor (importujete 5 řádků počínaje 4.), pak to s druhým již nebude fungovat správně.

Bylo by skvělé, kdyby náš dotaz dokázal sám určit začátek a konec „plovoucího“ textového bloku pro import.

Řešení, které chci navrhnout, je založeno na myšlence, že naše data obsahují nějaká klíčová slova nebo hodnoty, které lze použít jako značky (funkce) začátku a konce datového bloku, který potřebujeme. V našem příkladu bude začátek řádku začínající slovem SKUa konec je řádek se slovem Celková cena. Toto ověření řádků lze v Power Query snadno implementovat pomocí podmíněného sloupce – analogu funkce IF (LI) v aplikaci Microsoft Excel.

Podívejme se, jak to udělat.

Nejprve načteme obsah našeho textového souboru do Power Query standardním způsobem – prostřednictvím příkazu Data – Získat data – Ze souboru – Z textového/CSV souboru (Data – Získat data – Ze souboru – Z textového/CSV souboru). Pokud máte Power Query nainstalovaný jako samostatný doplněk, budou příslušné příkazy na kartě Dotaz na napájení:

Import plovoucího fragmentu v Power Query

Jako vždy lze při importu vybrat znak oddělovače sloupců (v našem případě se jedná o tabulátor) a po importu odebrat automaticky přidaný krok upravený typ (Změněný typ), protože je příliš brzy na to, abychom přiřazovali datové typy sloupcům:

Import plovoucího fragmentu v Power Query

Nyní s příkazem Přidání sloupce – podmíněný sloupec (Přidat sloupec – podmíněný sloupec)přidáme sloupec se zaškrtnutím dvou podmínek – na začátku a na konci bloku – a v každém případě zobrazíme různé hodnoty (například čísla 1 и 2). Pokud není splněna žádná z podmínek, pak výstup null:

Import plovoucího fragmentu v Power Query

Po kliknutí na tlačítko OK dostaneme následující obrázek:

Import plovoucího fragmentu v Power Query

Nyní přejdeme na záložku. Proměna a vybrat tým Vyplnit – Dolů (Transformace – Vyplnění – Dolů) – naše jedničky a dvojky se protáhnou po koloně:

Import plovoucího fragmentu v Power Query

No, pak, jak asi tušíte, můžete jednoduše filtrovat jednotky v podmíněném sloupci – a zde jsou naše kýžené údaje:

Import plovoucího fragmentu v Power Query

Nezbývá než příkazem zvednout první řádek do záhlaví Použijte první řádek jako záhlaví Karta Domů (Domů – použijte první řádek jako záhlaví) a odstraňte nepotřebný více podmíněný sloupec kliknutím pravým tlačítkem na jeho záhlaví a výběrem příkazu Smazat sloupec (Smazat sloupec):

Problém je vyřešen. Nyní, když měníte data ve zdrojovém textovém souboru, dotaz nyní nezávisle určí začátek a konec „plovoucího“ fragmentu dat, která potřebujeme, a pokaždé importuje správný počet řádků. Tento přístup samozřejmě funguje i v případě importu XLSX, nikoli TXT souborů, stejně jako při importu všech souborů ze složky najednou příkazem Data – Získat data – Ze souboru – Ze složky (Data — Získat data — Ze souboru — Ze složky).

  • Sestavení tabulek z různých souborů pomocí Power Query
  • Přepracování kontingenční tabulky na plochý pomocí maker a Power Query
  • Vytvoření projektového Ganttova diagramu v Power Query

Napsat komentář