Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ebben a blogbejegyzésben megvizsgáljuk a megoldásomat. Ehhez a kihíváshoz újra felkerestük a LuckyTemplates első Probléma of the Week című kihívását, ahol konkrét és relatív dátumok keverékéből hoztunk létre egy örök ünnepnaptárt. De ezúttal csak a Power Queryt fogjuk használni . Az oktatóanyag teljes videóját a blog alján tekintheti meg.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha elakad magával a probléma lebontásával, újra átnézheti a webhelyet, hogy megnézze, vannak-e olyan elemek valamelyik megközelítésben, amelyek segíthetnek ebben a kihívásban.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

A beadványok olvasása közben azt tapasztaltam, hogy emberek vegyesen használják a felhasználói felületet , és egyéni funkciókat írtak egy öröknaptár létrehozásához. Élvezetes volt elemezni az egyes bejegyzéseket, és ha ihletet szeretnél meríteni, akkor erre biztatlak.

Amikor magam dolgoztam ezen a forgatókönyvön, több megoldást is létrehoztam. Az, amelyikkel jártam, azt szemlélteti a legjobban, hogyan lehet nem csak kisebb darabokra bontani egy problémát , hanem láthatóvá is tenni . Ez nagyon hasznos, ha hibát vagy váratlan eredményt tapasztal.

Tartalomjegyzék

Az öröknaptár létrehozásának kiindulópontja

Ez a nyers ünnepi asztal a kiindulópontunk. Egy dátum összeállításához egy évre, egy hónapra és egy napra van szükségünk bizonyos dátumokhoz. Már csak az évszám hiányzik.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

De a relatív dátumokhoz még egy kicsit többet kell dolgoznunk. Kezdetnek a nap oszlopot fel kell osztanunk számokra és hétköznapokra is. Tekintsük át ezeket a lépéseket.

Az évek lekérése a dátumtáblázatból

A megoldás dinamikusabbá tételéhez lekérem az éveket a dátumtáblázatból . A képletsorban láthatja, hogy vetítést használtam, hogy egyetlen oszlopos táblázatot kapjak a dátumtáblázatomból. Ez természetesen tartalmazni fog ismétlődéseket. Ezek eltávolításához hozzáadtam a Table.Distinct elemet .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha a táblázatok melletti fehér mezőben oldalra kattintok, megjelenik egy lista is, amely a dátumtáblázat-lekérdezésemben jelen lévő különböző éveket tartalmazza.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kaptunk egy hónap nevet , de valójában szükségünk lesz egy hónapszámra . Most, amikor egy évet egy hónap nevéhez kapcsolunk, a Date.From függvényt használhatjuk az adott hónap első dátumának visszaadásához dátumértékként.

A Dátum.Hónap hozzáadásával csak a hónap száma marad meg az adott dátumhoz. Januárban 1-et ad vissza. Februárban 2-t ad vissza, és így tovább.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

A szám beszerzése a nap oszlopból

Ahhoz, hogy a számot a nap oszlopból kapjuk meg, úgy döntöttünk, hogy nem osztjuk fel az oszlopot, hanem kivonjuk az értéket. Amint a képletsorban látható, a Text.BeforeDelimiter-t használtuk , és ezt a szóközt használtuk a szöveges karakterlánc jobb és bal oldali részének azonosítására.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha nincs hely, azt szeretnénk visszaadni, ami a nap oszlopban marad. Tehát az első rekordnál 1-et ad vissza. A második rekordnál, amely tartalmazza ezt a szóközt, a szöveges karakterlánc első részét, a Third szót adja vissza .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Hasonló megközelítést fogunk alkalmazni a dátumnév meghatározásához, de a List.PositionOf függvényt használjuk . Ez az első argumentumként átadott lista értékének nulla alapú eltolását adja vissza, és -1-et ad vissza, ha az érték nem jelenik meg a listában.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Az első rekordnál átadja az 1 értéket, amely nem szerepel a listánkban. Ezért adja vissza a -1 értéket. A második rekordnál a Monday értéket adja vissza .

Ezt átadja a függvényünknek, és 1-et ad vissza, mert ez a második elem a listánkban. Ezután az összes -1 értéket lecseréljük egy nullára .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ezen a ponton létrehoztuk az összes építőelemet, amelyre szükségünk van az egyéni függvény meghívásához.

Az egyéni funkció előhívása az állandó ünnepnaptárhoz

A képletsorban láthatjuk, hogy a függvénynek négy argumentuma van: egy év , egy hónap , egy szám és egy hétköznap .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

De hogyan határozza meg a dátum értékét? Ismét a List.PositionOf-ot használjuk, hogy számértéket kapjunk a számhoz. Van egy listánk, amely az elsőt, a másodikat, a harmadikat és a negyediket tartalmazza. Amikor átadjuk a számot a List.PositionOf-nak , akkor a nulla alapú eltolást adja vissza.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ismét, ha egy érték nincs jelen, akkor -1-et ad vissza. Tehát az első rekordnál az 1 értéket adjuk át. Az 1 nem szerepel ebben a listában, ezért a -1 értéket adja vissza. A második rekordnál a Third értéket adjuk át, ami a harmadik elem a listánkban. Ez a 2 értéket adja vissza.

Dátumlista készítése

Most készítsünk egy listát a dátumokról. Meghatározzuk az adott hónap kezdő dátumát, meghatározzuk a napok számát abban a hónapban, és a List.Dates segítségével létrehozunk egy listát, amely az adott hónap összes napját tartalmazza.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ezután a List.Select funkciót használjuk, hogy csak azokat a dátumokat őrizzük meg, amelyek egy adott hétköznapon vannak.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha bármelyik lista melletti oldalra kattintunk, láthatjuk, hogy csak ezt a négy elemet tartalmazza.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Feltételes logika alkalmazása

Végül feltételes logikát alkalmazunk egy dátum létrehozásához vagy lekéréséhez. Ha a hét napja null , ami azt jelzi, hogy van egy konkrét dátumunk, használhatjuk a belső #date értéket a dátumérték létrehozásához.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha a szám egyenlő az utolsóval, akkor a List.Reverse függvénnyel megfordíthatjuk a sorrendet a listában, és kivonhatjuk az első értéket.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha ezt a növekvő sorrendet csökkenőre akarjuk változtatni, akkor ebből a dátumtartományból mindig kivonhatjuk az utolsó dátumot. Nem számít, hogy négy vagy öt elemünk van a listában. A sorrend megfordításával és az első tétel kibontásával mindig megvan az utolsó dátum.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Az összes többi esetben a List.Skip parancsot használjuk .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Az értéket a lista ezen pozíciója alapján kinyerhetjük. Hálaadás napján a szám a negyedik, a negyedik pedig 3-at ad vissza. Ezzel kihagyja a lista első három értékét, és mindig a negyedik elemet adja vissza.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Tegyük össze az egészet, és menjünk a megoldás lekérdezésére. A forráslépéshez a RAW ünnepnapok dátumtáblázatát hívjuk. Ezután hozzáadunk egy oszlopot, amely egy listát ad vissza dátumokkal.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Az örökös ünnepnaptár M kódjának áttekintése

Ellenőrizzük az oszlop M kódját. A táblázat minden sorához beágyaztunk egy táblázatot, amely a dátumtáblázattól eltérő éveket tartalmaz. Ezután az egyéni függvény meghívásával átalakítottuk az év oszlop értékeit.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Természetesen ahhoz, hogy az egyéni függvényt meghívhassuk, először el kell végeznünk a beállítást. Meg kell kapnunk a hónap számát , a számértéket és természetesen a hét napját . Aztán abból a beágyazott táblázatból megtartottuk a listát a dátumokkal.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ha oldalra kattintunk a fehér mezőben, lentebb láthatjuk a lista előnézetét.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

A következő lépés a lista bővítése és a CelebratedOnDate hozzáadása .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ezt a logikát használtuk a számítás során: ha a dátum szombaton van, akkor kivonunk egy napot, hogy pénteken érkezzünk. Ha vasárnap van, akkor hozzáadunk egy napot a hétfői leszálláshoz. Ha nem szombat vagy vasárnap, akkor nullát akarunk.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Végül az utolsó lépés a típusok megváltoztatása.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Következtetés

Csak egy gyors emlékeztetőegy folyamatban lévő sorozat, amely minden 1. és 3. szerdán történik a LuckyTemplates fórumon. Az 1. héten közzétett probléma DAX-alapú, míg a 3. heti probléma Power Query-alapú megoldást igényel.

Ha tetszett az ebben a POTW-ben tárgyalt tartalom, kérjük, iratkozzon fel a LuckyTemplates TV-csatornára a továbbiakért. Rengeteg tartalom jön ki folyamatosan tőlem és egy sor tartalomkészítőtől, mindannyian elkötelezettek a LuckyTemplates és a Power Platform használatának javításáért.

Méhfű

Leave a Comment

E-mail melléklet mentése SharePointba a Power Automate segítségével

E-mail melléklet mentése SharePointba a Power Automate segítségével

Ebből a blogból megtudhatja, hogyan mentheti automatikusan az e-mail mellékleteket a SharePointba, majd törölheti az e-maileket a Power Automate segítségével.

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023

A Power Automate folyamatok létrehozása a semmiből

A Power Automate folyamatok létrehozása a semmiből

Ismerje meg, hogyan hozhat létre <strong>Power Automate</strong> folyamatokat a semmiből. Sablon használata helyett mi magunk hozzuk létre a kiváltó okokat és a műveleteket.

4 módszer a Pi használatára a Pythonban példákkal

4 módszer a Pi használatára a Pythonban példákkal

4 módszer a Pi használatára a Pythonban példákkal

Profit and Loss (P&L) kimutatások létrehozása a LuckyTemplates alkalmazásban

Profit and Loss (P&L) kimutatások létrehozása a LuckyTemplates alkalmazásban

Ebben az útmutatóban bemutatom, hogyan lehet Pénzügyi információk mátrixát létrehozni a Profit és veszteség (P&L) kimutatással a LuckyTemplates alkalmazásban.

Hogyan lehet dinamikusan egyesíteni az oszlopokat egy Power Query-táblázatban

Hogyan lehet dinamikusan egyesíteni az oszlopokat egy Power Query-táblázatban

Fedezze fel, hogyan lehet dinamikusan egyesíteni oszlopokat a Power Query Table.CombineColumns függvény segítségével.

SharePoint-fájlok hozzáadása a számítógéphez

SharePoint-fájlok hozzáadása a számítógéphez

Ismerje meg, hogyan adhatjuk hozzá és szinkronizálhatjuk SharePoint-fájljainkat az asztalon és a OneDrive-on.

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.