Egy munkalapot elnevezni és használni egy nagyon hasznos koncepció ha kevés, és ismert munkalappal dolgozunk. De sok esetben több, vagy egyenesen sok, hasonló szerkezetű munkalappal kell egyszerre dolgozni. Tipikusan ilyen faladat az adatkonszolidáció és munkalap(ok) szétdarabolása.
A konszolidálandó forrás munkalapok már léteznek, és a fileneveik ismertek. A legjobb gyakorlat a WBook List Start és WBook List Next folyamatlépéseket (a Worksheet és If / Lists kategóriákban a Folyamat Eszköztáron) használni ugyanazon műveletek több munkalappal történő elvégzéséhez.
A 'Workbook List' paraméterben a forrás munkalapok munkafüzeteit megadhatja:
Az első lépés a folyamat megadása: először egyetlen forrás munkalapra, mintha nem is lenne több. Használd a WSheet Use folyamatlépést a cél munkalap megadásához, majd egy másik WSheet Use lépést az egyetlen forrás munkalaphoz. Amikor a folyamat kész, kövesd ezeket a lépéseket:
Kész!
Az egy munkalapos konszolidáció átmásolt néhány (feldolgozott) adatot a forrás munkalapról a cél munkalap bizonyos celláiba/ tartományaiba. A konszolidációs sablonban pedig van elég hely, hogy az összes forrás munkalap adatait bemásolhassuk. De hogyan találjuk meg az első üres sort/cellát? Az első üres sor - természtesen- egy sorral lejjebb/cellával jobbra van az utolsó sortól/cellától amelyikben adat van. Az utolsó, adatot tartalmazó, sort könnyű megadni az A oszlopban:
#RowEnd
és egy másik oszlopra (pl. F):
#RowEnd|F
Egy sorral lejjeb lépni (hogy megkapjuk az első üres sort):
[+[#RowEnd|F]+1]
Tegyük fel, hogy az egy munkalapos verzió átmásolt (a Cell Set vagy Range Set vagy Range Copy/Move folyamatlépések valamelyikével) egy adatot a wsConsolidation!D2 cellába. Hozzáadásnál (azaz azért, hogy elkerüljük a már bent lévő adat felülírását) ezt meg kell változtatni erre: wsConsolidation!D[+[#RowEnd|D]+1].
Egy másik módja a konszolidáció elkészítésének (amennyiben a cél munkalap sablonja csak egy fejlécet tartalmaz fix struktúra nélkül), hogy a forrás munkalapról származó új sorokat a cél munkalapon a már ottlévő sorok elé szúrjuk be. Ekkor nincs szükség a munkalap alján lévő első üres sor kiszámolására.
Tegyük fel, hogy a konszolidációs lista a wsConsolidation munkalap harmadik sorában kezdődik. Ahhoz, hogy a konszolidáció több munkalappal is működjön, ezeket a változtatásokat kell elvégezni az adatfeldolgozó lépésekben:
A konszolidáció egyrészről adatok összegyűjtése listákba. Másrészről viszont adatok összegzése (összeadása, átlagolása stb.) több helyről a cél munkalap egy cellájában. Egy munkalapnál (azaz egyetlen forrás adatnál) egy egyszerű Cell Set lépés elvégzi az adat másolását. És több forrás munkalapnál? Voila! A több forrás munkalapos verzió is a Cell Set lépést használja. Az egyetlen változtatás a már a cellában lévő érték felhasználása egy MS Excel függvény segítségével, amivel előállítható az új célérték.
Példa 1: A forrás adatok összegét kell kiszámolni.
'Egyetlen forrás munkalap
Cell Set Cell: wsTarget!C4
Value: [=wsSource!D5]
'Listás verzió
Wbook List Start
...
Cell Set Cell: wsTarget!C4
Value: [+[=wsTarget!C4]+[=wsSource!D5]]
...
WBook List Next
Példa 2: A forrás adatok átlagát kell kiszámolni. Ehhez szükségünk van egy segédcellára, amelyik számolja az átlagolandó adatok számát. A Wbook List lépés előtt beállítjuk 0-ra, majd a Wbook List lépés után az összegzett értéket elosztva megkapjuk a keresett átlagot.
'Egyetlen forrás munkalap
Cell Set Cell: wsTarget!C5 'az adatok száma
Value: 1
Cell Set Cell: wsTarget!C4 'az egyetlen adat átlaga
Value: [=wsSource!D5]
'Listás verzió
Cell Set Cell: wsTarget!C5 'kezdőérték
Value: 0
WBook List Start
...
Cell Set Cell: wsTarget!C5 'az adatszámlálót megnöveljük eggyel
Value: [+[=wsTarget!C5]+1]
Cell Set Cell: wsTarget!C4 'csak összeadunk
Value: [+[=wsTarget!C4]+[=wsSource!D5]]
...
WBook List Next
Cell Set Cell: wsTarget!C4 'itt számoljuk az átlagot
Value: [+[=wsTarget!C4]/[=wsTarget!C5]]
Egy tipikus feladat egy kívülről származó forrás MS Excel munkalap adatainak (pl. egy beszállító cég által megadott adathalmaz vagy egy IT rendszer riportja) szétválogatása. A fő kérdés, hogy el kell dönteni, hogy hány és milyen cél munkalapot kell egyáltalán elkészíteni? A folyamat elején a cél munkalapok még nem léteznek, így a fileok nevei sem ismertek. Továbbá, az elkészítendő cél fielok halmaza is minden futtatáskor különböző lehet a forrás adatai vagy egyéb információk alapján. Mindezek fényében Djeeni három módon tud cél munkalapokat létrehozni:
Lássuk az egyes módokat részleteiben!
Ez a mód hasonló az konszolidációhoz. A cél munkalapok (és -ha szükséges- a kapcsolódó munkafüzetek) egyesével lesznek létrehozva és feldolgozva. Az éppen aktuális munkalapra a WBook List folyamatlépés Djeeni nevével hivatkohatsz.
Egy forrás adathalmaz feldolgozásakor sokszor kell használnunk valamilyen egyéb törzsadatlistát. Legtöbbször cost centerek, részlegek, kapcsolatok, partnerek listáját. A Djeeni folyamatnak a forrás munkalap adatait a törzsadatlista egyes elemeihez tartozóan kell szétválogatnia; azaz a folyamatot a törzsadatlista vezérli. Djeeni a Row List Start…Row List Next folyamatlépéseket használja a törzsadatlista elemeinek egyesével történő eléréséhez és a kapcsolódó műveletek elvégzéséhez. A folyamat konkrét lépései a következők:
Ezekből a lépésekből a következő Djeeni folyamatot lehet készíteni (különböző munkafüzetekkel). Figyeld meg, hogy hogyan kap minden munkafüzet egyedi nevet a törzsadatlista információi alapján a WBook New folyamatlépésben.
WSheet Use Djeeni name: wsSourceData 'forrás adathalmaz
WSheet Use Djeeni name: wsDepartments 'törzsadatlista
Row List Start Djeeni name: rlDepts
Worksheet: wsDepartments
Row from: 2
Row to: #RowEnd|C
WBook New Djeeni name: wsDepTarget
Filename: [=rlDepts!D#] 'a részleg neve a törzsadat D oszlopból
Type: Target
Worksheet Excel name: Report 2020 June
... 'az aktuális cél munkafüzet műveletei a wsDepTarget Djeeni név alatt
Row List Next
Hamarosan!
Ha a cél munkalapok elkeszítésének struktúrája kész, akkor a forrás adathalmaz megfelelő részeit kell kiválasztani az egyes cél munkalapokhoz. Ha a kiválasztás a forrás munkafüzet egy oszlopában lévő valamely ismert adat (vagy egy fix adat vagy egy törzsadatforrásból a RowList folyamatlépés használatával származó törzsadat) alapján történik, akkor a szűrés alkalmazása a legjobb gyakorlat. Djeeni az MS Excel Autofilter funkcióját (ami az oszlopok fejlécében lévő lenyíló dobozokként ismert) kínálja a WSheet Filter Add és a WSheet Filter Clear folyamatlépések formájában.
Ha több WSheet Filter Add szűrést is használunk egy munkalapon, akkor azok összeadódnak (mint egy ÉS kapcsolat) és csak azok a sorok kerülnek kiválasztásra, amelyek mindkét szűrési feltételnek megfelelnek. Minden Range és Cell folyamatlépés a szűrt adatokkal dolgozik.
Példa 1: Fix (kevés) számú cél munkafüzet és ismert szűrési adatok.
WSheet Use Djeeni name: wsSourceData
WBook List Start Djeeni name: wlTarget
Workbook list: c:\wbook1.xlsx;c:\reports\wbook2.xlsx
If Condition: [#wlTarget|NAME]=wbook1
WSheet Filter Add Worksheet: wsSourceData
Column: D
Criteria 1: 1500
... 'a wlTarget Djeeni névvel használt első cél munkafüzet műveletei
WSheet Filter Clear
End If
If Condition: [#wlTarget|NAME]=wbook2
WSheet Filter Add Worksheet: wsSourceData
Column: E
Criteria 1: UK
... 'a wlTarget Djeeni névvel használt második cél munkafüzet műveletei
WSheet Filter Clear
End If
WBook List Next
Példa 2: A forrás szétválogatása a törzsadatokban lévő részlegek nevei alapján. Figyeld meg, hogy hogyan kap minden munkafüzet egyedi nevet a törzsadatlista információi alapján a WBook New folyamatlépésben.
WSheet Use Djeeni name: wsSourceData 'forrás adathalmaz
WSheet Use Djeeni name: wsDepartments 'törzsadatlista
Row List Start Djeeni name: rlDepts
Worksheet: wsDepartments
Row from: 2
Row to: #RowEnd|C
WBook New Djeeni name: wsDepTarget
Filename: [=rlDepts!D#] 'részleg név a törzsadatok D oszlopában
Type: Target
Worksheet Excel name: Report 2020 June
WSheet Filter Add Worksheet: wsSourceData
Column: D 'részleg ID a forrás D oszlopában
Criteria: [=rlDepts!F#] 'részleg ID a törzsadatok F oszlopában
... 'a wsDepTarget Djeeni név alatt az aktuális cél munkafüzet műveletei
WSheet Filter Clear
Row List Next
Néhány forrás adathalmaz olyan tartományokat tartalmaz, amelyek a kezdő és végértékeikkel azonosítottak. Például egy hónap az első napjával kezdődik és addig tart, amíg a következő hónap első napja el nem jön. Ebben az esetben a tartmány a két cellával azonosítható, ameleyeket a Cell Lookup folyamatlépésben kereshetünk ki. A folyamat lépései:
WSheet Use Djeeni name: wsData
Cell Lookup Djeeni name: ceElso
Value: 2020-11-1 'november elseje
Range: wsData!C1:C20000
Cell Lookup Djeeni name: ceUtolsoUtan
Value: 2020-12-1 'december elseje
Range wsData!C1:C20000
Range Use Djeeni name: rgNovember
Range: wsData!C[#ceElso|row]:C[+[#ceUtolsoUtan|row]-1]
A munkafüzetlistáknak saját Djeeni nevük van. Ezek a Djeeni nevek ugyanúgy viselkednek, mint a WSheet Use folyamatlépésben egy munkafüzetnek megadott Djeeni név. Mindkétfajta Djeeni nevet használhatod egy munkalapra hivatkozáshoz a megfelelő helyen.
WSheet Use Djeeni name: wsTarget Cell Set Cell: wsTarget!C3 WBook List Start Djeeni name: wlTarget Cell Set Cell: wlTarget!C3
A sorlistáknak mindig van egy aktuális sora, amelyre a sor száma heleyett a # jellel lehet hivatkozni. Amennyiben több sorlista van egymásba ágyazva, a # jel kiegészíthető a megfelelő sorlista Djeeni nevével.
WSheet Use Djeeni name: wsKulso
WSheet Use Djeeni name: wsBelso
Row List Start Djeeni name: rlKulso
Worksheet: wsKulso
Row List Start Djeeni name: rlBelso
Worksheet: wsBelso
Cell Set Cell: wsKulso!D[#|rlKulso] 'az rlKulso sorlista aktuális sora
Cell Set Cell: wsBelso!D# 'a legközelebbi (legbelső) sorlista aktuális sora