[OpenOffice Calc] sorkiválasztás feltétellel

Fórumok

Szevasztok!

Egy piti OOo Calc problémám van: adott egy táblázat, az A jelű oszlopban dátumok vannak (ÉÉÉÉ-HH-NN formátumban), a B oszlopban pedig sima számok.

Olyan függvényt akarok írni, ami csak egy adott hónapra összesíti a számokat, azaz akkor adja össze a B oszlop értékeit, ha az A oszlop aktuális sora pl. februárt definiál.

SUMIF-fel (fejből):
SUMIF(A1:A100; ???; B1:B100)

Tehát nem tudom, mi legyen benne a feltétel. Lehetne MONTH, de a MONTH(A1:A100) valami tök fals és hülye értéket ad. Nekem az kéne, ha egy futó változó értékét behelyettesíthetném, pl. SUMIF(A1:A100; MONTH($POS) = 2; B1:100), azaz $POS a futó változó, ami az A1:A100 tartományban éppen kiértékelt cella értékét tartalmazza. Na ilyet nem találtam, de ettől még lehet. Próbálkoztam mindenféle feltételekkel, sikertelenül. A SUMIF feltétel mezője (2. paraméter) elfogad relációkat, de olyan relációt nem tudtam neki megadni, hogy "az _aktuális_ mező hónap része = 2", mert a MONTH() függvénynek konkrét sorra van szüksége, ha tartományt adok meg neki, akkor furcsa értéket ad vissza. Olyat meg nem akarok beirogatni neki, hogy "=2008-02".

Próbáltam úgy is elindulni, hogy a megadott tartomány már előre "szűrve" van, tehát elvileg az A1:A100-ból csak azok maradnának, amik februáriak. Tehát megadom a Calc-nak, hogy pl. A1:A100, valami ügyes feltételbe ágyazva, és ő a memóriában már csak azokat az elemeket tartja meg, amik egyeznek a kritériummal (MONTH($POS) = 2). Elvileg vmi ilyesmit tudna a Calc is, csak nem tudom, hogyan lehet előcsalogatni.

Makrót nem akarok írni, nem hiszem el, hogy nem lehet simán a cellákba írt függvényekkel megoldani.

Átnéztem pár Google találatot, egyik sem volt jó.

Tudtok segíteni?

Kösz

Hozzászólások

Miért nem csinálsz egy oszlopot, ahol a MONTH() fv-nyel kiszeded az A1:A100-ból a hónapokat? Mondjuk a C1:C100-ba. Aztán SUMIF(C1:C100; "=2"; B1:B100).

Értem én, hogy te beágyazva akarod a MONTH fv-t a SUMIF-ba, de miért nem jó így? (Azt azért még messze elkerüli a megoldásom, hogy makro-t írj.)

A sumif függvény feltétel mezőjében működnek az OOo reguláris kifejezései. Attól függően, hogy a dátum mezők milyen nyelvre vannak beállítva, más regexpet kell használnod. Pl., ha magyarra van állítva a nyelv, akkor ha a dátumot tartalmazó cellára kattintasz, akkor ilyesmit látsz:

2011-04-02

Az ilyen formátumű dátumkból pl egy ilyen sumif tudja kiszedni az áprilisi dátumokat:

=SUMIF(A$2:A$7;"....-04-..";B$2:B$7)

Ha angol a dátummezők nyelve, akkor valami ilyesminek mutatja a dátumot:

04/02/2011

Ekkor értelemszerűen módosítani kell a regexpet is:

=SUMIF(A$2:A$7;"^04.*$";B$2:B$7)

Letesztelve, működik.

Csaba