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.
Próbáld így: RANDBETWEEN(11324;33603) A 11324 az megfelel a 1931.01.01 dátumnak a 33603 pedig a 1991.12.31-nek. Állítsd a cellákat dátum formátumra. Ha esetleg nem ismerné fel a függvényt az exceled (#NÉV), akkor nézd meg az eszközök/bővítménykezelőben be van e csekkolva az analysis toolpak.
Vagy mondok még egyet: 1. Autoszűrő rátesz az oszlopokra 2. Az összegzett oszlopban beállítod az autoszűrőt az "egyéni"-t kiválasztva: egyenlő *összesen* (csillag is kell) És már másolhatod is ctrl+c cltr+v
A legegyszerűbb úgy, ha a részösszeg az "A" oszloptól balra lévő tagolókkal úgy csoportosítod, hogy csak az összesen mezőket lehessen látni, majd 1. kijelölöd az így egymás alá került összegző sorokat. 2. Szerkesztés menü/Ugrás/Irányított/Csak a látható cellák 3. ctrl + c 4. ctrl + v ahová akarod másolni
Az esetleg nem lenne jó, ha a "másik munkalapon" (pl. Munka2) egy adott cellában hivatkoznál a részösszegeket tartalmazó munkalapra (pl. Munka1) és cellára (pl. B7)?
Másolni nem tudom. De az fkeres függvénnyel átvihető
1. Ha résszösszegnév oszlop nem az első oszlop, akkor beszursz egy oszlopot az adattábla elé, és bemásolod oda.
2. A részösszegek neve: csoportnév+függvény neve. Ezért a csportneveket leírod egymás alá, majd összefűzöd a függvénynévvel, mondjuk a Boszlopban. pl. körte&" Össz." =körte Össz.
2. Ezután az Fkeres már müxik. =Fkeres($B2;Adattabla;c$1;0)
B2-ben részösszegnév, c1-ben pedig, hogy a részösszeg hanyadik oszlop az adattáblában.
köszi mindkettőtöknek a segítséget. régóta tervezem, hogy letöltöm kompletto tutto az egész fórumot ls végiganalizálom, de még nem tettem meg, nézzétek el nekem.
Ja és mellesleg, ha már itt tartunk, a makróba az új munkalap beszúrását, átnevezését, és a megfelelő cellák automatikus kitöltését is bele lehet építeni.
Lehet, hogy már van jobb megoldásod, nem néztem végig a többiek javaslatait. A változatosság kedvéért itt egy felhasználói függvény.
Function Követési_távolság(KezdőCella As Range, Cella As Range) Dim Hit As Range, Result As Long
With Cella Set Hit = .EntireColumn.Find(what:=.Value, after:=Cella, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious) If Hit Is Nothing Then GoTo hiba If Hit.Row >= Cella.Row Then Result = .Row - KezdőCella.Row + 1 Else Result = .Row - Hit.Row End If End With Követési_távolság = Result Exit Function hiba: Követési_távolság = "hiba" End Function
B1-be a képlet: =Követési_távolság($A$1;A1)
Lehúzással kiterjeszthető akármeddig. A KezdőCella az a cella, amelyikben az első számod van.
Hát igen, úgy látszik ezt a kompromisszumot meg kell kötni, az új lap átnevezésén felül, még egy adatot be kell írni valahova a lap beillesztéséhez.
Köszönöm!
Lenne itt még valami: Ugyanebben a fájlban van egy összesítő lap, amely az újabb, és újabb lapok esetén mindig egy sorral bővül. Ezt a sor beszúrást lehetne automatizálni?
Ha legközelebb megint probléma lenne egy függvény angol-magyar neve, keresd meg a saját gépeden a FUNCS.XLS fájlt (általában itt található: C:\Program Files\Microsoft Office\OFFICE11\1038\) ebben mindent megtalálsz.
Még annyit hozzátennék, hogy ahol 0-k vannak a forrásoszlopban, ott a 0 első előfordulásakor a cellákat eltolva adja az eredményt, aztán a továbbiakban a 0 helyénél nem ír ki semmit, üresen hagyja azt a sort, függetlenül attól, hogy a B1 sorba beírtam-e 0-t a többi vizsgált szám mellé vagy sem.
Végülis ez nem baj, mert a 0-kat nem muszáj kijeleznie, vagy legfeljebb megszámolom. Vagy kicselezem, és átírom a 0-kat másik számra és úgy vizsgálom meg, aztán visszaírom.
Hogyan lehet azt megoldani, hogy csak a kijelölt tartományban végezze el a makrót? Mert ha csak úgy elindítom, a munkafüzet többi részét felülirja (elcseszi), ahova pedig nem is kéne írnia.
Most azt csinálom, hogy egy külön excel táblába kimásolom csak a forrásoszlopot, és ott futtatom le a makrót. Aztán visszamásolom a kapott eredményt.
Kipróbáltam 20.000 db, 5 féle adattal. Az én lassúcska gépemen 49 sec alatt végzett vele. Ne felejtsd el az adatok fölé B2-től kezdve jobbra beírni a különböző értékedet.