Ebben a power query oktatóanyagban szeretném bemutatni a többsoros cellák több sorra való felosztásának egyik módját. Néha olyan Excel- fájlt kap , amelyben a cellán belüli adatok több sorra vannak felosztva. Ma szeretném megmutatni, hogyan használhatod a Text.Split és a List.Zip alkalmazást , hogy segítsenek ebben az esetben. Az oktatóanyag teljes videóját a blog alján tekintheti meg.
Térjünk át a power lekérdezésre.
Mielőtt bármit tennénk, győződjön meg arról, hogy a képletsáv látható a képernyőn. Ha nem látható, lépjen a Nézet fülre , és kapcsolja be.
Másodszor, nézzük meg azt is, hogyan kereshetünk kocsivisszaküldéseket vagy soremeléseket. Ehhez megnyitom a speciális szerkesztő ablakot, és rákattintok a jobb felső sarokban lévő kérdőjelre.
Ezzel egyenesen az online dokumentációhoz jutok. Kiválasztom az M nyelvi specifikációt , és megyek az Összevont nyelvtanhoz .
Görgessünk egy kicsit lejjebb, hogy lássuk a karakteres menekülési sorozatokat . Ez megmutatja, hogyan kell írni ezeket a kocsivisszaadásokat vagy soremeléseket. Egy hash-jel vagy egy font jellel kell kezdenünk, amelyet egy nyitó zárójel követ, majd a vezérlőkarakter.
Amint látja, ez két vagy három betű. Ez a CR a kocsivissza, az LF a soremelés, vagy a tabulátor a tabulátor, majd egy záró zárójel.
A cellák felosztása több listaelemre
Térjünk vissza példánkhoz, és beszéljük meg, melyiket használjuk. Egyéni oszlop hozzáadásához kattintson a bal felső sarokban található mini táblázat ikonra, és válassza az Egyéni oszlop hozzáadása lehetőséget .
Meghívjuk ezt az oszlopot Temp , és beírjuk a Text.Split nevű függvényt .
Ez a funkció szöveget akar szövegként és elválasztót is szövegként. Tehát kiválasztom a Prioritás oszlopot, beírok egy kocsi vissza, majd megnyomom az OK gombot .
Ennek eredményeként listát kapunk. Amikor oldalra kattintunk a fehér mezőben, lent egy előnézetet látunk.
Ez most jól működik, úgyhogy menjünk a második oszlopra. Kattintson a fogaskerék ikonra, majd a Priority helyett az MS Schedule oszlopra, majd kattintson az OK gombra .
Lássuk a tartalmat. Ez nem néz ki jól, ezért ezen változtatnunk kell.
Változtassunk valamit a képletsávon belül. Cseréljük le a cr-t lf-re (soremelés), majd nyomjuk meg az OK gombot . Ezután kattintson oldalra a fehér mezőben.
Ellenőrizzük ezt a Prioritás rovatunkban is. Ehhez szükségünk van a soremelésre.
Az elemek összehozása a pozíció alapján
Most, hogy tudjuk, hogyan oszthatjuk fel celláinkat több listaelemre, összehozhatjuk az elemeket a listában elfoglalt helyük alapján, így értékpárokat hozhatunk létre.
Ehhez használhatjuk a List.Zip fájlt . A képletnek ezt a részét másoljuk.
Ezután hozzáadjuk a List.Zip fájlt , nyitó zárójeleket, majd zárójeleket a listákat tartalmazó lista létrehozásához. Beírunk egy vesszőt, majd ismét beillesztjük a kódrészletet, majd a záró göndör zárójelet és a záró zárójelet.
Változtassuk meg itt az oszlophivatkozást is Priority- ről MS Schedule- ra , majd nyomjuk meg az OK gombot .
Kattintson az oldalra a fehér térben, és most egy több listát tartalmazó listát láthat.
Adjunk hozzá egyet új lekérdezésként, hogy lássuk a tartalmat, mert ezeket az értékpárokat össze kell hoznunk.
A kiválasztott oszlopok megtartása
Csak azokat az oszlopokat is megtarthatjuk, amelyeket szeretnénk. Csupán az első oszlopra vagyunk kíváncsiak, aminek a neve Tier , és az általunk most létrehozott, Temp nevű oszlopra .
Egy szögletes zárójelben rámutathatunk a megtartani kívánt oszlopokra. Az oszlopneveknek is szögletes zárójelben kell szerepelniük.
Tehát írjuk be a szögletes zárójelbe, majd a Tier-t, ami az első oszlopunk. Beírjuk a vesszőt, majd egy újabb szögletes zárójelet és a Temp.
Maradt ez a kis táblázat, amelyet új sorokkal bővíthetünk.
A bal oldali ikonra kattintva láthatjuk az értékek kinyerésének lehetőségét.
Adjunk hozzá egyéni határolót, majd nyomja meg az OK gombot .
Nos, még nem tartunk egészen ott, és egy kis takarítást kell végeznünk.
Tehát folytassuk az Egyéni oszlop hozzáadása lépést.
Átalakítanunk kell a lista tartalmát.
A List.Transform nevű függvényt kell használnunk , ezért ezt itt a képletsorban teszem hozzá.
Ezeket a szövegeket is meg kell tisztítanunk a Text.Clean funkcióval.
Térjünk vissza az utolsó lépéshez. Az eredmények fantasztikusak.
Oszlop felosztása határolóval
Nos, nincs más dolga, mint a jobb oldali oszlop felosztása az általunk megadott határolóval.
Végül a képletsávon belül visszaadhatjuk ezeknek az oszlopoknak a tulajdonnevüket. Az elsőt Priority- nek , a másodikat MS Schedule- nek hívták .
Következtetés
A Power Query oktatóanyagának összefoglalása érdekében karakteres escape szekvenciákat használtunk a soremelések és a kocsivisszaadások keresésére. Azt is megtanultuk, hogyan lehet velük többsoros cellákat több sorra felosztani, hogy adatainkat megfelelő táblázatos formátumba állítsuk vissza.