Sorok/oszlopok feldolgozása egy munkalapon

Egy szokásos feladat adatok feldolgozása olyan beosztás szerint, amely beosztás egy másik munkalapon található. Egy jó példa a cég részlegeinek listája, amelyet egy törzsadat-munkalapon tartunk nyilván, és amelytől függetlenül kell különálló riportokat készíteni az egyes részlegek számára egy közös adatforrásból. Djeeni a Sorlista/Oszloplista koncepcióját használja az ilyen feladatok megoldásához.

Egy sorlista nem más, mint egy ismételten végrehajtott folyamatrész (ciklus) a Row List Start és Row List Next folyamatlépések között. A Row List Start lépésben megadjuk, hogy melyik munkalap mely sorait kell végigvennünk. Djeeni egyesével végiglépked a sorokon, és végrehajtja a folyamatlépéseket a Row List Next lépésig. Itt veszi a következő sort a lista munkalapjáról és ismét végrehajtja a lépéseket:

  Row List Start
    ...Folyamatlépések, amelyek a sorlista aktuális sorának információit használják...
  Row List Next

A lista aktuális sorának bármelyik cellája (oszlopa) elérhető az oszlop betűjelének és a # jelnek a kombinációjával. Példa: ha az aktuális sor D oszlophoz tartozó celláját kell elérni, akkor a D# szöveget kell írni.

Egy oszloplista pontosan ugyanígy működik oszlopokra. Szintén a # jelet kell használni az aktuális oszlop eléréséhez: #3.

Példa: adatok szétválogatása

Az alábbi Djeeni folyamat szétválogat egy forrás munkalapon található adathalmazt több cél munkalapra, felhasználva egy további munkalapon található kategóriák listáját:

  WSheet Use: Djeeni name: wsAdatok
  Row List Start: Djeeni name: wsKategoriak
    WSheet Filter Add: a wsAdatok D oszlopát szűri a wsKategoriak C# cellájának értéke alapján
      WBook New: Djeeni name: wsKategoriaAdatok
        Copy Range a wsAdatok (szűrt) munkalapról wsKategoriaAdatok munkalapra
      WSheet Release wsKategoriaAdatok
    WSheet Filter Clear wsAdatok
  Row List End

Ez történik:

  • A sorlista egyesével veszi a kategória munkalap sorait
  • Minden egyes sorra, az forrásadat munkalapot (ahol a D oszlop tartalmazza a kategóriák neveit) leszűrjük az aktuális kategória nevére, amely név a wsKategoriak C oszlopában az aktuális soron (#) van
  • Egy új cél munkalapot készítünk egy új munkafüzetben (alternatívaként egy új munkalapot is készíthetünk egy létező munkafüzetben)
  • A leszűrt adatok tartományát átmásoljuk az újonnan létrehozott munkalapra
  • A cél munkalapot elengedjük, hogy helyet csináljunk a következőnek
  • A forrás munkalap szűrését töröljük
  • A kategória munkalap következő sorát vesszük, és kezdjük előröl

Példa: Munkalap adatainak módosítása vagy feljavítása (VLOOKUP)

Egy másik gyakran előforduló feladat egy munkalap adataihoz egy új oszlopot hozzáadni vagy egy meglévő oszlop adatait megváltoztani, amihez egy másik munkalapon lévő lista szolgál alapul. Az MS Excel által adott megoldás a „varázslatos” VLOOKUP (most már XLOOKUP) függvény. Djeeni a sorlistákkal egy automatizált megoldást ad:

  WSheet Use: Djeeni name: wsEredetiAdatok
  Row List Start: Djeeni name: wsKiegeszitoModositasok
    WSheet Filter Add: wsEredetiAdatok D oszlopának szűrése 
                               a wsKiegeszitoModositasok C# cellájának értéke alapján
      Range Set: a wsEredetiAdatok cél oszlopába beírni a wsKiegeszitoModositasok B# cella értékét
    WSheet Filter Clear wsEredetiAdatok  
  Row List End

Ez történik:

  • Használatba vesszük az eredeti adatok munkalapját
  • A sorlista sorbeveszi a kiegészítések munkalap sorait
  • Minden egyes sorra leszűrjük az eredeti adatok munkalap D oszlopát (ahol bizonyos azonosítók találhatók) a módosítások munkalap C oszlopában és aktuális sorában (#) található azonosíró szerint
  • A módosító érték a módosítások munkalap B oszlopából hozzáadásra/módosításra kerül az eredeti adatok munkalapján
  • Az eredeti adatok munkalap szűrését töröljük
  • A módosító munkalap következő sorát vesszük, és kezdjük előröl

Olvass többet a sorlistákról itt.