Hirdetés

Új hozzászólás Aktív témák

  • föccer

    nagyúr

    Sziasztok, jó reggelt!

    Egy kis hangos gondolatébresztésre lenne szükségem. Van egy feladat, amit ugyan függvényekkel szépen meg tudok oldani, de attól félek, hogy nem túl optimális a megoldás. Egyrészt lehetne-e máshogy megközelíteni a dolgokat, hogy hatékonyabb, gyorsabb legyen, másrészt milyen makrós megoldást alakalmaznátok.

    Egy nagyobb project részfeladatát készítem éppen.

    3 munkalap érintett.
    Alapadatok_mintavetelek
    Kezelo_Beton
    Szurt_mintaveteli_lista

    A feladat, hogy az Alapadatok_mintavetelek-re beillesztett adatokra egy dinamikusan paraméterezhető szűrést tegyek és a szűrt eredménylistát a Szurt_mintaveteli_lista munkalapra rakjam át. Jelenleg 8 paraméter van megadva, de ez még bővülni fog. A paraméterek között van sima igaz/hamis, van között, és vannak a listából választható tiltások.

    A listából való tiltások a betöltött alapadatokból listázza ki SORBA.RENDEZ(EGYEDI(SZŰRŐ( függvény kombóval. Ez a lista minden adat frissíténél változik. A tiltást úgy értelmezem, hogy ha az adott, kilistázott lista elem mellett <>"" érték van, akkor a Szurt_mintaveteli_lista elemei közé nem kerülhet be. A listázott elemek az Alapadatok_mintavételek bizonyos oszlopaiból jönnek.

    Az alap datokban várhatóan 5.000-20.000 sor körüli elemszám lesz, a kimeneti tömbben néhány száz, max 1-2 ezer, de nincsenek korlátozva.

    Kezelo_Beton:

    Alapadatok_mintavetelek adattábla:

    A függvényes megoldás kezd összeállni. Ehhez Segéd munkalapon felveszek a paraméterek számának megfelelő oszlopot, és a paramétereket egyesével feltételekbe fogom. Ha a tiltás feltéte igaz, akkor 1, egyébként 0 értékkel érek vissza az adott mintavételnek a sorába. Az ellenőrző oszlopok végén kap egy szum-ot az összes paraméterre. A Szurt_mintaveteli_lista 1 függvényt fog tartalmazni, mégpedig az eredeti alapadatok tömbjére, de a segédmunkafüzet szum oszlopára mutat a befoglalás, méghozzá =0 paraméterrel. Így a tiltások vagy kapcsolatba kerülnek egymással, ergó bármelyik tiltó feltétel igaz, akkor nem kerül be a szűrőbe.

    Namost.

    Ez 20k sorra, a 2 adattáblára, 10-10 paraméterként 4-500.000 függvény, és rettenetesen lassú lesz úgy érzem.

    Mivel, hogyan oldanátok meg a feladatot, hogy kicsit erőforrás hatékonyabb legyen? Hogyan menjek végig a listás feltételeken? Most ugye simán fkeressel belekeresek, és ha nem 0 a visszatérése, akkor tiltottnak tekintem, de ezt makróban csak úgy tudom lekódolni, hogy minden paraméter, minden elemén végig megyek és az is iszonyat lassú lesz.

    Köszi szépen :R

Új hozzászólás Aktív témák