Hirdetés

Keresés

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

  • Delila_1

    veterán

    válasz Louro #26262 üzenetére

    Azopi bobonja remek ötlet, de ha tudok beszélni a kolléganőddel (Skype), feltételezem, hogy hamar meg tudom győzni egy könnyen kezelhető felület hasznosságáról. Hozz össze vele.

  • azopi74

    addikt

    válasz Louro #26262 üzenetére

    Akkor az eredeti kérdére válaszolnák először:

    "De.....mert kellenek a kihívások. Van arra függvény, hogy X és Y tengelyen is nézzek DARABHATÖBB-bel?
    Pl: =DARABHATÖBB(2:2;HÓNAP(MA());B:B;"ERF")"

    Erre írtam, hogy lehet, de a legelegánsabb a sumproduct megoldás:

    ez lenne a jó:

    =SUMPRODUCT((2:2=MONTH(TODAY()))*(B:B="ERF"))

    magyarul

    =SZORZATÖSSZEG((2:2=HÓNAP(MA()))*(B:B="ERF"))

    Viszont így akármilyen brutálisan el vagy eresztve RAM-mal, kifogynál a memóriából, egy 1048576 soros, 16384 oszlopos .xlsx esetén. (akkor is , ha a countif-es megoldást választanád). Egy korlátozott 65536 soros xls esetében még elmegy, de akkor is brutál lassú.

    Ráadásul, gondolom plusz feltételt szeretnél megadni a cella értékére vonatkozóan is (a fenti csak simán összeszámolja a cellákat). Amit persze csak úgy tudsz megoldani, amennyiben ragaszkodsz a teljes munkalap vizsgálatához, ha egy külön sheetre teszed a képletet, pl így (ha a 0-nál nagyobb cellaértékúeket akarod összeszámolni):

    =SUMPRODUCT((Sheet1!2:2=MONTH(NOW()))*(Sheet1!B:B="ERF")*(Sheet1!1:65536>0))

    =SZORZATÖSSZEG((Munka1!2:2=HÓNAP(MOST()))*(Munka1!B:B="ERF")*(Munka1!1:65536>0))

    És ez is persze csak akkor műxik, ha xls a cucc, és akkor is kell azért hozzá RAM, nekem 16 GB mellett is elgondolkozik egy darabig. :)

    Szóval akármennyire is ragaszkodsz a teljes munkalap (összes sor, összes oszlop) vizsgálatához, felejtsd el, és ilyen hivatkozásokat, mint a 2:2 vagy a B:B ne használj ilyesmi függvényekben, ha használhatóvá akarod tenni a táblát.

    "Ráadásul mivel elég sok függvény van már így az excelben (1-2 perc egy-egy frissítés)"

    Nem a sok függvény miatt tart ilyen sokáig, hanem a fent említett teljes soros, teljes oszlopos, teljes munkalapos vizsgálatok miatt. De mondom, ezt küszöböld ki!

    "Az a lenne a cél, hogy a különböző csoportokat tudjam mérni. Ha érkezik tag és beszúrják ne legyen baj. (Ne fix range-ek legyenek a függvényekben.) "

    Határozz meg egy ésszerű korlátot az oszlopok és sorok számára, és úgy csináld.

    Pl, ha tudod, hogy max 100 sor van, és max K-ig tejednek az oszlopok, akkor

    =SUMPRODUCT((C2:K2=MONTH(NOW()))*(B3:B100="ERF")*(C3:K100>0))

    Persze minél nagyobb maximális sorszámot és oszlopszámot határozol meg, annál erőforrás igényesebb a kalkuláció. Beszúrás nem okoz gondot, viszi magával a tartomány hivatkozást. A legegészségesebb megoldás a tábla használat lenne (strukturált hivatkozással) tartományhivatkozás helyett, az teljesen robusztus, és meg sem kottyan neki semmilyen táblabővítés, és a memóriádat is csak a tábla terjedelméig zabálja (csak a tábla hatóköre alá tartozó cellákat vizsgálja) De ezt csak normálisan strukturált szerkezetű forrásadatok esetében lehet alkalmazni, márpedig a példádból adódó teljes kuszaság miatt ez az opció ki van lőve.
    Bár én kedves gyengébbik nembe tartozó kollégáidat inkább meggyőzném arról, hogy a forrásadat legyen inkább strukturált, és utána abból lehet aztán színes/szagos outputokat csinálni pivotok, meg egyéb eszközök használatával, ahol akár már lehet cellákat egyesítgetni, meg minden hajmeresztő dolgokat művelni. Talán egy bonbon és néhány hízelgő szó beválik :)

  • Fferi50

    Topikgazda

    válasz Louro #26262 üzenetére

    Szia!

    Most aztán már végképp nem világos, mi lenne a feladat...
    Ha jól értem, egy "összevissza" vezetett, lényegében egyetlen logikát tartalmazó (mármint csoporthoz rendeli a tagokat) munkalapról kellene egy rendezett táblázatot csinálni.
    Ha most töltődik a táblázat, akkor eseménykezelésben nézném meg, hogy az új jövevény hova tartozik és attól függően szúrnám be a "kimutatás" táblába. De úgy látom, még naponta is figyelni kellene, ki mit csinál, amit szintén valami ilyen módon oldanék meg.
    Ezt az eseményvezérelt táblát adnám oda "folyamatos kitöltésre" és a beíráskor kvázi azonnal aktualizálódna a rendezett táblád.
    Egy szöveges példa:
    Bejön Jocó az I csoportba 21-én: beírja, hogy Jocó - eseménykezelés - megnézem, hogy melyik csoport van fölötte - a saját táblámba beszúrnék egy sort az adott csoport végére és beírnám oda Jocót. Majd miután beírta 21-re a feladatot -eseménykezelés - beírja Jocó sorába a 21-hez a feladatot szintén.
    Az eseménykezelést a Worksheet_Change eseménykezelő végezné a "zavaros" táblán történtek alapján.

    Üdv.

  • Fferi50

    Topikgazda

    válasz Louro #26262 üzenetére

    Szia!

    "A magyar függvényneveket meg én is utálom."
    "Bár a CONCATENATE vs. ÖSSZEFŰZ esetén a magyar javára billen a mérleg :)"

    Ennél az egy "függvénynél" - és szándékos az idézőjel - aztán végképp nem indokolt mérleget billegtetni, mert helyette az & jelet kell használni, egyszerűbb és sokkal rövidebb.

    Üdv.

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

Hirdetés