Na, most kavarodtam meg igazán.
Azt szeretném, ha a táblán lévő adatokból, összegezze, hogy, ha 2010.07. havi sorok mellett lévő "IGEN"-eket, vagy bármilyen más feltételt is együtt.
Ez:
=SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=7)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$G$12:$G$2000="IGEN")*1)
És ez is működik:
=SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=7)*(ÉV(Adat!$B$12:$B$2000)=2010)*(Adat!$G$12:$G$2000="IGEN"))
Tehát összeszámolja az igenek DARABJÁT, azokban a sorokban, ahol 2010.07. hó van.
Sőt:
=SZUM(SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=7)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000="DP")*1);SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=8)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000="DP")*1);SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=9)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000="DP")*1))
ez is működik. Itt negyedévenként összesíti a táblán lévő adatokat, az előbbi feltételek alapján
Sőt-sőt:
=SZUM(SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=7)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000=M3)*1;(Adat!$H$12:$H$2000="Anyagi")*1);SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=8)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000=M3)*1;(Adat!$H$12:$H$2000="Anyagi")*1);SZORZATÖSSZEG((HÓNAP(Adat!$B$12:$B$2000)=9)*1;(ÉV(Adat!$B$12:$B$2000)=2010)*1;(Adat!$F$12:$F$2000=M3)*1;(Adat!$H$12:$H$2000="Anyagi")*1))
Ez negyedévenként összesít 4 változó alapján. 2010, július, augusztus és szeptember adataiból azokat, amelyek mellett az egyik sorban szerepel az "anyagi" szó, illetve egy másikban megegyezik az M3-ban lévő (egyébként "DP") szóval. Mindegyik feltételnek teljesülni kell, és azokat számolja össze. Nem értékeket összegez, hanem a feltételek teljesülését számolja össze.
Ráadásul nem tömbképletként vannak bevíve.
De, ha jól értem, amit írtatok, ennek nem kellene működnie.
Az eredeti kérdéshez visszakanyarodva. Lassú a számolás. Most úgy oldottam meg, hogy a második fülön (az elsőbe viszem be az adatokat, a 2. összesít) van egy újraszámol gomb ezzel:
Sub Gomb1_Kattintáskor()
Application.Calculation = xlCalculationAutomatic
End Sub
Az adat fülön lévő bevitelnél, a makrók futásánál ki van kapcsolva ez a számolás, így az adatbevitel gyors. Majd amikor kész vagyok, akkor vagy rányomok az újraszámol gombra, vagy rámentek/bezárom.
A bonyolultnak tűnő függvények miatt elképzelhető a lassú számolás? Vagy fogadjam el SQLkerdes véleményét, hogy sokat számolunk, sok időt vesz igénybe?