Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Azt hiszem ez nem müködik, mert a HA + VAGY -os esetben magába a függvényve írtam bele a feltételeket, nincs külön oszlop a halmazokhoz, és nem is szeretnék, mert a 10 halmaz 10 oszlopot jelente ha jól gondolom. De plusz 1 oszlopot se szeretnék.
Tehát most így néz ki leegyszerűsítve az A1-re vonatkozó értékeket, ami nem működik a 7-nél több VAGY miatt:
Már hogy a DSUM, DMAX Stb függvényt? Persze, szívesen.
Én azt szerettem volna, ha csak abban az esetben keresi meg a legfrissebb dátumot, ha több feltételnek is megfelelnek a sorok, ezért a DMAX függvényt használtam:
SERVICE800_Export!$A$1:$BA$6000 = Ez az adatbázis range, amin dolgozunk
"STATUSDATE", = ez az oszlop neve ahol a dátumot meg kell néznie
$H$56:$I$57 = itt található a filter, fontos hogy mint az advenced filternél a feljécnek is szereplnie kell, egyébként nem tudja mit keressen.
Nálam a $H$56:$I$57 -ben ez található:
MODEL DIVISIONCustomer CountryPSSDZA
Tehát ott keresi meg a legfrissebb dátumot, ahol az ország ZA és a divizió meg PSSD.
Tehát a logikája teljesen olyan, mintha advenced filtert határoznál meg, lényegében korlátlan mennyiségű feltételt megadhatsz (ezt egy range formájában teszed)...(nekem van hogy pl 17 filter van megadva).
Lehet, hogy máshogy is meg lehet oldani...nekem így sikerült de teljesen jól működik.
Igen, ahogy József mondta, FKERES-sel működhet. Biztosan magad is rájönnél, hogyan kell, de mivel sürgősen kérted a választ, leírom, talán még nem késő.
- A oszlopban a halmazelemek - B oszlopban az, hogy melyik halmazban van
Ha meg akarod tudni, hogy pl. az F1 cella értéke melyik halmazban van, ez a képlet: =FKERES(F1;A:B;2;HAMIS)
Ez így csak akkor működik, ha egy szám egyszerre csak egy halmaz eleme lehet.
Lehetséges, hogy a VAGY-ok száma korlátozott egy függvényben? Függvények egymásba ágyazásába maximum hetet enged az Excel. A változó paraméterszámú függvényeknél (pl. SZUM, VAGY stb.) Excel 2007 előtt általában 30 darab a paraméter szokott a határ lenni, Excel 2007-ben 255. Ha tényleg ez a hiba, hogyan lehetséges enélkül megcsinálni? Esetleg FKERES-es megoldás?!
Amire hivatkoztam Delila 1 válaszára, hasonló a történet, csak 10 halmaz van. 1 halmaznak több szám tesz eleget, ezt vizsgálom a HA és VAGY függvénnyel. Ha az A oszlop cellájában lévő szám az első halmaz része, akkor 1-et adjon eredményül, ha a második halmaz része, akkor 2-t és így tovább 10-ig.
Csináltam több függvényt ezzel a HA és VAGY függvénnyel. De hibát jelez ki az egyik megírt függvénynél, figylemeztetés ugrik fel: "A beírt képlet hibás", és kijelöli (fekete háttér) a képletben a nyolcadik VAGY -ot. Összesen 10 VAGY szerepel a képletben, Excel 97-et használok.
Lehetséges, hogy a VAGY-ok száma korlátozott egy függvényben?
Ha tényleg ez a hiba, hogyan lehetséges enélkül megcsinálni?
Igen ez a megoldás is felmerült, de szeretném sima függvénnyel megoldani anélkül, hogy bármit beírkálnék az eredeti nyers adatba, mivel az a sheet naponta felülírásra kerül.
Szeretném ha minél egyszerűbb lenne a használata, tehát hogy ne kelljen újraírni a függvényt napi szinten és mindig működjön...
De már meg is oldottam ezzel a DMAX DSUM stb. függvénnyel :-)... Klassz kis függvény, nem is ismertem eddig. Olyan mintha az ember advenced filtert használna egy függvényen belül...:-) tényleg tök jó.
Köszi a segítséget!!!
(Ps. Főnököm végre elintézte, hogy legyen hozzáférésem a fórumhoz...haha :-)))...)
Most próbáltam, és sajna ez nem nyerő, mert nálam az említett példához képest eltérő a táblázatom, mert vannak közte üres oszlopok az áttekinthetőség végett, valamint csak az A oszlopban lévő számokra hivatkozó függvényekkel számolok több oszlopban (B, D, F, G). A B-ben működik a duplakattintás, a többiben nem :-((
Volna még mit fejleszteni a táblázatkezelőn, mert szerintem ezek nagyon alapvető elvárások!
Van-e arra valami praktika, hogy a B, D, F, H oszlop első cellájától "húzással" egy lépésben lehessen a 2-100-ig cellákat feltölteni.
Eddig oszloponként külön-külön kellett elvégeznem, ami így jóval-jóval időigényesebb :-/
Mivel nem-összefüggő tartományt alkotnak az oszlopok ezért egy lépésben nem tudod megoldani, azonban ha "húzás" helyett duplán kattintasz a képlet cellája kitöltőfülére, akkor a mellette levő oszlop első üres cellájáig végigmásolja a képletet. Magyarul 4 darab duplakattintással megúszhatod.
Ezt a figurát kíváncsiságból kipróbáltam, nálam sem megy.
Kicsit hasonló a kérdésem... vagy mégsem? :)
Pl van 8 oszlop és az A, C, E, G oszlop 100 sora adatokkal feltöltve. A B, D, F, H oszlop első cellájában van függvény az elötte lévő oszlop (A, C, E, G) cellájában lévő adatból vonatkozva.
Van-e arra valami praktika, hogy a B, D, F, H oszlop első cellájától "húzással" egy lépésben lehessen a 2-100-ig cellákat feltölteni.
Eddig oszloponként külön-külön kellett elvégeznem, ami így jóval-jóval időigényesebb :-/
A formátum alapján vizsgáltatom a másolandó cellákat.
Sub Keplet_Copy() usor = Range("C65536").End(xlUp).Row For sor = 2 To usor If Cells(sor, 2).Interior.ColorIndex = 36 Then Cells(sor, 2).Copy Cells(sor, 6).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 7).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 9).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 10).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 11).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 13).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 14).Select Selection.PasteSpecial Paste:=xlFormulas End If Next Application.CutCopyMode = False End Sub
Felrakom ide az excelt...
http://addat.hu/602f7c00/mintaexcel.xls.html
a mögöttes füleket kitöröltem, úgyhogy megnyitás után a nincs frissítésre kell kattintani.
A B és C oszlopok az alapok mondjuk, ahol a szürke sorokban van összegzés.
ha kinyitod a + jelkkel látod felette az összeadandó értékeket.
tehát a szürke sorokat kell átmásolni a további (F,G,I,J,K,M,N) oszlopba.
Itt már kézzel megcsináltam, de ha változtatni akarok ezt-azt, nem nagyon esik jól mindig "ctrl+c ctrl+v-zni"... :)
TI
Sub Keplet_Copy() usor = Range("B65536").End(xlUp).Row 'B For sor = 2 To usor If Cells(sor, 2).HasFormula = True Then 'B Cells(sor, 2).Copy 'B Cells(sor, 4).Select 'D Selection.PasteSpecial Paste:=xlFormulas End If Next Application.CutCopyMode = False End Sub
Ez a B oszlopban vizsgálja, hogy képletek vannak-e. Igaz esetén a D oszlopba másolja a képletet.
B és D betűkkel jelöltem a sorokat, ahol átírhatod a saját elrendezésednek megfelelően.
Köszönöm a válaszokat...
De egyelőre egyik se jött be.
Az irányított beillesztéssel próbálkoztam én is.
Nem jött be.
a makrós megoldás azért nem jó, mert a konstansok nem konstansok, hanem más táblákból áthozott értékek ebben vegyesen van szumha, fkeres, vkeres, vagy akár abszolút hivatkozás is.
a vastagított képletek pedig nagyrészt szum függvények, de van benne összeadás kivonás is.