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.
Most látom csak hogy te csak a dupla neveket akarod kiszedni. Tudtommal lehet szűrni egyedi rekordokra. Ha úgy nem megy, sorbarendezed a neveket mondjuka az ABC oszlopokban, majd a DEF oszlokban ezt képletet másolod végig a 2-ik sortól: A2=A1 stb. Ahol CDE-ben mindhárom IGAZ, az duplikált.
Kapard elő a 6300-t, és mentsd le arról is a neveket. Aztán a 7230-hoz rendeld hozzá őket fkeressel. Amelyik névhez nem talál egyezést, azok a csak 7230-as nevek.
Ha jól értem a problémát akkor a BEO lapodon 22-32 oszlop van attól függően hogy hány munkanap van a hónapban. Az első oszlopban vannak a nevek, az első sorban a hónap munkanapjai, a táblázatban meg a személyhez tartozó napi beosztások. És ezeket akarod aztán a napi munkalapokra átvezetni.
Makró nélkül az alábbi megoldás tűnik a legegyszerűbbnek:
A Beo lapon az utolsó oszlop után felveszel még egy oszlopot. Legyen ez mondjuk az AZ oszlop.
AZ1-be ezt irod: =hol.van(napi!c1;b1:ax1;0) (A napi!c1-ben a datumnap lesz beírva)
AZ2-be meg ezt: =index(b2:ax2;1;$az$1), majd ezt a képletet végigmásolod . Ezzel az AZ oszlopban is ott lesznek a a kiválasztott nap beosztásai.
Majd áttérsz a napi munkákat tartalmazó lapra. Ebben az A oszlopban a munkahelyek vannak felsorolva, a B oszlopban a kódjuk, és a C oszlopba akarod a neveket. Ehhez először a C1-be írd be a dátumnapot. Majd a C2-be ezt a képletet:=index(Beo!a2:a200;hol.van(b2;Beo!$AZ$2:$AZ$200;0);1). Majd ezt képletet is másold végig az oszlopon.
És ezzel tulajdonképpen meg is vagy. E két lapot sablonnak használhatod a továbbiakban. Csak a napi!C1-be kell beírnod az új dátumot, és máris ott az új kiosztás.
Ha meg akarod őrizni a napi adatokat akkor napi! lapot másold új lapra a Szerkesztés>>copy>>special beillesztés>>értéket lépésekkel. Fontos, hogy ne ctrl+c ctrl+v-vel csináld a másolást , mert akkor a képleteket másolod át, ami miatt egy új dátum felvétele átírja ezt a táblázatot is.. Ennek elkerülésére a legkézenfekvőbb megoldás, hogy a special beillesztésre csinálsz egy makrót a a makrórögzítővel.
És természetesen átírhatod a duplikátumlap fülét is.
A vázolt megoldás persze csak akkor lesz korrekt, ha 1 munkahelyre csak 1 személy megy. Ha több, akkor közülük csak az elsőt fogja hozzárendelni. Persze megoldható a több személy hozzárendelése is, de az valamivel komplikáltabb.
Javítok. A számolások miatt a hahiba teljesűlére ne az előbb javasolt "" üres stringet, hanem inkább a szóközt add meg. Tehát ezt: " ". A nevek számát így úgy kapod meg, hogy a darab2(oszlop)-darabteli(oszlop;" ")
Én így csinálnám: Felvennék még egy 5-ik oszlopot 0-iknak, azaz a táblázat elejére. Legyen ez mondjuk az A oszlopban- A beleírt értékek: 100*pont1+pont2.
Ezek utan a függőleges mátrixoszlop: g11.g61: 100-150, a vízszintes meg H10-től meg a sor10-ben: 1-45.
H11-be meg a következő képletet írd be, ha a nevek a 3-ik oszlopban vannak.
=hahiba(fkeres($g11*100+h$10;$a$1:$e$1000;3;0);””). Majd ezt képletet másold végig a matrixodban.
A soronkénti ill oszloponkénti neveket a DARAB2-vel számolhatod ki.
A megoldás csak akkor müködik hibátlanul, ha egy pontkombinációhoz csak 1 név tartozik
Excel táblába szerettem volna menteni egy nokia 7230-as telefon számait, de rossz gombot nyomtam, a szinkronizálást. Így egy korábbi 6300 telefon lementett számait is hozzátette.
Szóval a 7230.xml-ben a saját számok, és a 6300.xml számai lettek, összekeverve.
Hogyan lehetne kivenni a 7230.xml-ből azokat a sorokat, amik a 6300.xml-ben is benne vannak?
Ez a 3 oszlop van: GivenName LastName GeneralPhone
Van egy specialis feladatom, amit sajnos nem tudok megoldani.
Kerestem itt is az utolso 5000 beirasban, de nem talaltam hasonlot.
Azert remelem, hogy valaki tud segiteni a megoldasban.
Van egy 4 oszlopos tablazatom: sorszam, nev, pont1, pont2
Ezt kellene matrixba rendezni, ugy, hogy a pont1 legyen a fuggoleges, pont2 a vizszintes keret, es ahol van ervenyes pont1-pont2, abba a cellaba irja be a nev-et. Sot, irja ki soronkent es oszloponkent is a beirt nevek szamat.
A sorszam ellenorzeskeppen kell, hogy osszesen annyi legyen benne, tehat a sorok es oszlopok osszegenek kell vele megegyeznie.
Kerestem matrix fuggvenyeket, de csak meglevo matrixbol kiolvasast talaltam, letrehozast nem. :-((
Ha fontos, akkor irom, hogy excel2003-at hasznalok. (sajnos nagyon idiota a 2000-hez kepest, de azt mondjak, bennem van a hiba, minek ismertem meg a 2000-est.)
Az egyes lapok L1 képlete adja a lap nevét, az M1 ebből képzi a BEO lap aktuális oszlopának a betűjelét.
Az INDEX függvény keresi meg az értéket. Mivel a próbához a BEO lapon csak a G oszlopig írtam adatokat (az eredeti kérdés az A:G tartományra vonatkozott), táblaként eddig írtam be. 31 napos hónapnál az egyes lapok B oszlopában a képlet
Ezzel már egy kicsit közelebb vagyunk. Bár magam nem excel 2007-el dolgozom, de megpróbáltam rákeresni a hibaüzenet alapján a problémára. Találtam egy leírást egy hasonló jellegű hibáról: http://support.microsoft.com/kb/943088/hu
Ha ez nem jön be, akkor javasolom, hogy a képernyőképen (amit sikerült elolvasnom) látható hibaüzenet alján lévő naplófájlt is tedd közzé (pl. tedd fel a www.data.hu oldalra). Komoly esélyt adok annak, hogy ezek alapján valaki már pontosan meg tudja fejteni a hiba okát és talán az elhárítását. Sajnos ez várhatóan nem én leszek:-(.
Én azt nem értem, hogy a szolgálati beosztásod egy oszlopa egy napot vagy egy hónapot jelöl?
Vagyis valaki egy adott hónapban ugyanazon a szolgálati helyen van mindíg vagy annyi oszlopod van, ahány munkanap van és mindegyik oszlop egy napot és szolgálati hely beosztást jelent?
Lentebb azt írod: "A cél az lenne, hogy egyszerűbb legyen áttekinteni, hogy adott napon, adottt helyen ki dolgozik"
Ha a szolgálati beosztás napokra készül, akkor még azt kell tudjuk, hogy a megszerkesztendő munkalapokon hogyan van meghatározva a dátum. Azt írod, hogy a munkalap neve tartalmazza a hónapot, remek. Mi tartalmazza a napot?
A helyes kigyűjtéshez három adat kell:
- a szolgálati hely száma (ez adott az A oszlopban)
- az adott hónap: ez adott a kigyűjtő munkalap nevében
Megpróbálom érthetőbben leírni, bár elképzelhető, hogy Te érted, csak én nem a megoldást :-):
Havi munkafüzetek vannak.
Az első lapon ("BEO" néven, ami egyébként egy beosztás) az "A1:A50" tartományban nevek vannak, míg a nevek mellett oszlopokban (a napoknak megfelelően) szolgálati számok (1,2,3 stb). Egy adott nap egy szolgálati szám - értelemszerűen - csak egy ember mellett szerepelhet.
A következő lapok a hónap napjainak megfelelő nevüek (01, 02, 03 stb). Ezeken a szolgálati számokból szeretném visszafejteni, hogy adott számú szolgálati helyen ki dolgozik. Itt már a szolgálati számok mellett egyéb információk is vannak, ezért kellene a visszafejtés.
Akkor itt a szolgálati számok (mondjuk) A1:A30 ig vannak, és melléjük (B1:B30-ba) kellene a neveket visszaosztani.
A cél az lenne, hogy egyszerűbb legyen áttekinteni, hogy adott napon, adottt helyen ki dolgozik. "Csak" a beosztást kellene elkészíteni és a függvény a napokhoz már átvezetné a beosztott embert.
Üzenem még rajtad kívül a többi kedves és tartalmas hozzászólónak, köszönöm megvagyok!
A féléve felvetett (nem itt,hanem amit jelzett valamellik kedves segítő) ott kaptam hasznos tanácsot, ide jöjjek a problémámmal - ezért jöttem ide.
Az, hogy kicsit késtem több oka is volt de úgy látszott megoldódik a probléma, az excel verzió különbségekre hajaztunkl - több gépen fejlesztett használt, emailben küldözgetett módosítások, nam azonos verzójú excelben.
A program folyamatosan használatban van azóta is, kb. 3 hónapig dolgozik, aztán egyszer csak a makró lefutasákor stílushiba üzenettel az egész munkafüzetben (8 munkalap) átváltozik a megjelenés stílusok nélkül.Csak az adatok keret,cella szinezések nélkül.
Más programból excelbe konvertált munkalapról történik a használatos munkafüzetbe beillesztés, itt jelentkezik olyan hiba, hogy pl. a cellakijelöléskor a beillesztésre kattintva, az adatok nem kerülnek be a munkalapra, kékre vált a munkalap és ennyi. A munkafüzet bezárásával és újra nyitásával a művelet végrehajtható.
Mivel a használatba vett többször módisított munkafüzet (természetesen 2007 - ből 2010-be, majd ujra 2007-be) ez az útja, mire használatba kerül, ennek körülményeit nem ecsetelném. A 2007-es verzióban folyik ezek után a munka, megpróbáltuk ebben a verzióban ujra szinezni és keretekkel ellátni a munkalapokat, úgy nézett ki ez lehet a hiba, azonban megint összeomlott.
Várom ötleteiteket, vírus és memóriaprobléma kizárva.
Egyébként, ha a kérdés komoly, akkor jelzem, hogy itt októberben a 19187 és a 19210 között került megbeszélésre egy hasonló probléma (túl sok cellaformátum). Lehet, hogy errefelé kellene keresgélni a megoldást, de azért a posztolótól ennél egy kicsit bővebb leírás kellene. Előtte el kellene olvasnia a topik felvezetőjét.
A kérdező ezt a posztot változatlan formában beküldte 2012.05.01-én egy másik exceles topikba. (E kettőn kívül nincs is más beírása.)
Mire lehet következtetni ebből?
Ez egy olyan probléma, ami már több mint fél éve előjött. Akkor nem sikerült megoldani, aztán úgy maradt. Nyilván nem volt annyira fontos, és együtt lehetett élni hibás működéssel is. Most valamiért megint fontos lett, talán mert az év végi projektzárás közeledtével a főnök eredményeket akar látni, nem kifogásokat.
Ha "a program egyébként 1800 kb-os" volt fél éve is, meg most is, akkor valószínű, hogy nem kerül bele új adat, tehát az akkori és mostani munkafüzet ugyanaz és változatlan.
Program csak úgy magától nem szokott megváltozni. Változatlan program rendellenes viselkedését a futtatókörnyezet megváltozása okozhatja, ami lehet túlterhelt gép, vírus, mikroszoft hibajavítás, miegymás. A mikroszoft hibajavítás okozta hibát félév alatt ki szokták javítani, a túlterhelt gépnek pedig egyéb jelei is vannak, amelyek miatt használhatatlan lesz, és a júzer amúgy is hardverfejlesztésre kényszerül. Marad a vírus és a miegymás. E kettő közül nem tudok választani. :o)
Másik lehetőség, hogy a kérdező heccből berak ide félévente egy szivatós kérdést, és otthon röhög rajtunk, miközben próbáljuk kibogozni! :o)
Makróval megtűzdelt programom hosszú ideig aránylag normálisan működött hálózati környezetben. Makró segítségével egyes munkalapokat különböző helyekre ment a munkafüzeten belül, datokat gyüjtöget. A másolt munkalapok mindegyike formázott, azaz szinezett, kerettel ellátott, néhány celle feltételes formázással ellátott.
Elkezdett kiakadni a program, a stílusokat elveszítette, volt olyan, hogy a munkafüzet minden munkalapján keret és szinek nélkül csupán a karakterek jelentek meg. A program lefutott.
Vajon mitől lehet? A program egyébként 1800 kb-os.
A H oszlopba másold át az A oszlop neveit, és arra keress rá az fkeressel.
Azt viszont nem értem, hogy miért okoz problémát, hogy többször szerepelnek a számok a tartományban, de nem ugyanabban az oszlopban. Az fkeressel ez esetben egyértelmű a szám-név megfeleltetés
Én meg a te rejtett munkalapos problémádat akartam tanulmányozni, de már az első lépésnél csődöt mondtam. Viszont Gergő közreműködésének köszönhetően mostanra jó néhány rejtély megoldódott. Igy haladok lépésről lépésre.
Majdnem. Mert bár több munkalapom volt, de valszeg az utolsó volt aktív. Mert mint most a makród segítségével kiderítettem, akkor sem tud továbblépni. Én meg a hülye hibaüzenetből nem jöttem rá, hogy ez a probléma. Sőt, még most sem értem, hogy ebben az esetben az "Object variable or With block variable not set" miféle változóról írja, hogy nincs beállítva. Megvilágitanád?
Az FKERES mindig a tartomány első oszlopában keres, nincs lehetőség cifrázni. A feladatleírásodtól pedig kótyagos lettem :o)
Szerintem nem világos, hogy mit szeretnél. És amúgy hogy van az, hogy "oszloponként egy szám, csak egyszer lehet", de amikor az FKERES rákeres egy adott számra az oszlopban, akkor többet talál belőle? ;-)
Egy (számomra) speckónak tűnő fkeres függvény szerű valamire lenne szükségem.
Van egy A3:A52 tartományom, amiben nevek vannak egymás alatt. A B3:G52 tartományban számok vannak, oszloponként egy szám, csak egyszer lehet, de a teljes tartományban a számok ismétlődhetnek. Tehát a B1:B52 tartományban számok összevissza (jó majdnem) vannak, mondjuk 1-50 között. A következő oszlopban szintén, de soronként nem lehet ugyanaz a szám.
Vannak külön lapok, amiknek a neve mondjuk "B", "C", "D" stb
Adott lapon kellene az fkeres függvénnyel nevet keresni a számhoz.
Tehát a "D" fülön az első lap "D" oszlopában keresse meg a 10-es számot és az első oszlopban lévő nevet hozza eredményül.
Gondoltam, hogy az Fkeres függvénnyel ezt meg lehet oldani, de az fkeresnek megadott tartományban egy bizonyos szám (amit keres a függvény) többször is megtalálható, így nem tud eredményt hozni.
VAn valami olyan megoldás, amivel meg tudom mondani az fkeresnek (vagy valamelyik másik függvénynek), hog ypontosan melyik oszlopban keressen a keresni valót?
Na jó, az előzőt is elrontottam. Ha minden igaz, ez már maga a tökély! :P
Sub NextSheet() Dim i As Integer i = ActiveSheet.Index Do If i = Sheets.Count Then MsgBox "Ez az utolsó (nem rejtett) munkalap.": Exit Sub i = i + 1 Loop Until Sheets(i).Visible = True Sheets(i).Select End Sub
Bocsánat, az előző kód nem volt tökéletes, nem működött, ha az utolsó munkalap rejtett volt. Javított változat:
Sub NextSheet() Dim i As Integer i = ActiveSheet.Index Do Until Sheets(i).Visible = True i = i + 1 If i = Sheets.Count Then MsgBox "Nincs több munkalap.": Exit Sub Loop Sheets(i).Select End Sub
Sub NextSheet() Dim i As Integer If ActiveSheet.Index = Sheets.Count Then MsgBox "Nincs több munkalap.": Exit Sub i = ActiveSheet.Index + 1 Do Until Sheets(i).Visible = True i = i + 1 Loop Sheets(i).Select End Sub
Én is ezt vártam. De mondom, nekem hibaüzenetet adott. Valamit biztos elcsesztem. De nem jöttem rá, hogy mit. Írnál egy 3-4 soros macrót, ahol müködik?
Ami az első kettőt illeti, én kitenném egy szövegfile-ba, és ráeresztenék valami scriptet egy olyan nyelven, amelyik korrektül kezeli a reguláris kifejezéseket. Ha ragaszkodsz hozzá, hogy Excelben oldd meg, akkor fel lehet találni újól a hideg vizet, de kínszenvedés lesz.
A harmadikat természetesen nem lehet általánosságban megoldani, csak kiválasztott konkrét hibákra kereshetsz. És az sem biztos, hogy amit elírásnak gondolsz, amögött nincs egy valódi e-mail szolgáltató, amelyik a nevében hasonlítani akar egy másikra.
Bocsánat, hülyeséget írtam, hiszen a 2003 ad segítséget is, ha elkezdem írni az "=(cella" kifejezést. Csak éppen nem tudtam értelmezni a cella() függvény használatát.
A hozzám hasonló szerencsétlenek kedvéért leírom, mire jutottam:
Nyitottam egy új munkafüzetet. Az a1 cellába beírtam egy fájlom nevét: D:dokumentumokdownloadsteszt.xls idézeőjel, meg minden nélkül.
Ezután a b1 cellába írtam a következőt: "=CELLA("filenév";$A$1)". Tehát nem a fájl neét a filenév helyén, hanem azt a szót, hogy "filenév". Így!!!
És az enter után a b1 cella üres volt.
Azonban amikor ezt az új munkafüzetet lementettem, akkor megjelent a b2-ben a "D:DokumentumokDownloads[Munkafüzet1.xls]Munka1" szöveg.
Szóval működik a dolog, de azért azt, aki ezt az eljárást így kidolgozta, szívesen megbúbolnám:-). De legalábbis megkérdezném, hpgy nem lehetett volna egy picit egyszerűbben.
Nézd meg, hogy simán a =CELLA("filename";$A$1) képlet mit ad eredményül.
- Ha üres, az akkor a munkafüzet nincs elmentve.
- Ha nem üres, de a kapott szövegben nincs ] karakter, akkor a korábbi képlet hibát jelez. Akkor meg kell nézni, hogy mi választja el a munkafüzet nevét a munkalap nevétől, és arra keresni rá a SZÖVEG.KERES függvénnyel.
Kösz. Így már értem. Illetőleg EZT értem, meg több konkrét tömbképletet is, de a tömbképletek általános logikai szerkezetét változatlanul nem. Tudnál ajánlani valami irodalmat, ami érthetőbben írja le, hogy hogyan müködnek a tömbképletek, mint az excel súgója.
Persze lehet, hogy itt a G5 és a C5 valójában ugyanazt a cellát jelöli, mert az valóban körkörös hivatkozás, de erről majd Dzsó felvilágosít minket ;-)
Játszadoztam kicsit ezzel a Microsoft Office Chart dologgal, és valahol azt írták, hogy Excel 2007-től kezdve már nincs ilyen lehetőség beépítve. Megnéztem 2007-ben, és alapban tényleg nincs, de elvileg letölthető innen:
Viszont így kezd már kicsit komplikált lenni a dolog. Legalábbis hordozhatóságról nem nagyon lehet beszélni, ha csak az én gépemen van telepítve az a komponens, ami a userform helyes működéséhez kell. Szóval talán mégis jobb az, amit RHCPgergo javasol.
Táblázathoz hozzáadtam neveket data validationben, tehát a legördülő ablakokban ki tudom választani a neveket, én azt szeretném ha egy név véletlenül 2x kerülne kiválasztásra automatikusan színeződne. Ezt milyen parancsal érem el?
Az első képletedben felesleges a szum, mert bármennyi HA-t is ágyazol egymásba, csak 1 értéket fog adni eredményül. És mivel sum(x)=x, a szum felesleges.
A c5 felezésére ill harmadolására meg így szól a képlet:
A logikája világos számomra hogy az oldalsó táblázatból húzza át az értékeket, csak azt nem tudom hogy tudnák ebbe beleágyazni még egy olyat ha pl egy oszlopból lenyílóból azt választják, hogy a behívott időt ossza el kettővel vagy hárommal....
akárhogy is próbáltam Körkörös hivatkozások hibába ütköztem....
Hát ez tipikus példája a write-only kódnak, ennyi erővel egy tömörített Perl programot is betolhatnál. Jó szórakozást annak, aki így kibogarássza...
Annyit mondok, hogy a HA függvényt mindig három argumentummal használd, az utolsó kiegészítésben ez hiányzik és talán máshol is, de így tíz után nem szívesen játszanék élő parsert.
Ez a C5-ös cellába keres be az oldalsó táblázatból két keresett feltétel találkozásából... Azt kellene megoldanom, hogy legyen plusz egy harmadik feltétel amit ha választanak a már beolvasott értéket ossza el vagy harmadolja....
Data / Validation --> allow text length. (Magyarul adatok érvényesítése, ha minden igaz.) Itt egy link, ami alapján meg lehet csinálni. Testre lehet szabni a hibaüzenetet is, ha a user nem megfelelő hosszúságú szöveget ír be, szóval fasza.
A célértéket tartalmazó cellát kimásolod, majd a saját helyére másolod vissza irányított beillesztést választva, ezen belül csak az értéket. És ez működik teljes oszloppal is, hiszen nyilván nem egyetlen cellán akarod végrehajtani.
Aztat nem tudom, hogy mit láttál és hol, de viszont azonban ezzel szemben van egy olyan lehetőség, hogy Tools/Additional Controls/Microsoft Office Chart 10.0 (vagy 11.0, vagy 12.0, stb.)
Még ilyet nem csináltam, de tetszetősnek tűnik. A 20 forintos kérdés az, hogy diagram forrásadatai honnan jönnek, mert ettől függően lehet egyszerűbb vagy komplikáltabb a feladat megoldása.
Ha a fuvarlevélszámokat egymás alá írod be a kritériumtartományba, akkor azokat VAGY kritériumként értelmezi az advanced filter. Tehát szépen kilistázza neked az összeset. Egy valami a fontos, hogy amikor kijelölöd a krit tartományt, ne nyúljon túl a keresendő fuvarlevélszámokon, mert akkor nem fog szűrni. Illtőleg szűr az, csak nem azt amit te akarsz.
Én is SQLkerdes féle advanced filterrel próbálkoztam leges legelőször, csak az a nagy baj vele, hogy nem értem hogy kell haszálni. Valahogy nem sikerül.
Nekem az kellene, hogy van egy nagy táblázatom, (logisztikus vagyok) Van benne vagy 40 oszlop, meg 6000 sor.
Minden sor egy küldemény.
Minden sorban van fuvarlevélszám.
Na nekem mindig kb 15 küldeménnyel van egyszerre dolgom.
Elég hülyén jön ki, hogy most 15 ször filterezzek rá egyenként a fuvarlevélszámokra, aztán jelöljem is még meg közben a sort. Mikor kész újra szűrjek rá a megjelölt sorokra. Utána ha elvégzem a melómat, akkor megint töröljem ki a jelölést. Rémálom. És ezt kb naponta 50 szer.
tehát, ha ebben az advanced filterben menne, hogy beadok 15 fuvarlevélszámot, és azokhoz tartozó sorokat kiköpné, az lenne a tuti.
De valahogy egyedül nem tudtam rájönni, hogy lehet ezt megoldani
Azt én értem, de ha mondjuk kiderül, hogy nincs lehetőség több kritériumra, akkor mást kell kitatlálni. Például talán lehet trükközni valami ügyes képlettel, és a táblázat minden sorához generálni a szűrési kritériumok segítségevel egy igaz/hamis adatot, egy segédoszlopba, és aztán arra szűrni. Az ügyes képlet megszerkesztéséhez azonban nagyon is hangsúlyos, hogy a "tartalmazza" mit jelent.
Próbáld ki SQLkerdes javaslatát, aztán ha nem megy, térjünk vissza erre.
Nem vagyok benne 100%-ig biztos és most nincs időm kipróbálni, de azt gondolom, hogy az Advanced Filter funkcióra van szükséged wildcard (*) használattal.
Nem a "tartalmazza" szón van a hangsúly. Ha egy excel fileban bekapcsolom a filtert, akkor a legfelső sorban kis fekete lenyitható háromszögek jelennek meg minden cellánál. Ezeket lenyitva lehet választani a kifilterezni kívánt kritérium között, de meg lehet adni azt is, hogy tartalmazza, nem tartalmazza, ezzel kezdődik, stb.
Itt tudomásom szerint max 2 kritériumra lehet keresni , én meg sokkal többre szeretnék keresni.
Azt szeretném megkérdezni, hogy ezt hogyan lehet megtenni.
Tudnátok abban segíteni, hogy tudnám megoldani a filterezésnél, hogy ne csak max két kritériumra kereshessek egyszerre, hanem sokkal többre.
Mondjuk idáig laikusként úgy csináltam, hogy filter, contains és akkor oda max 1 kritériumot be tudtam tenni, vagy ha használtam az and, vagy or lehetőséget, akkor 2-őt.
Hogy lehetne megoldani azt, hogy valahova be tudnék tenni több mint két adatot és kidobja azokat a sorokat, amik tartalmazzák adott oszlopban azokat az adatokat.
A legjobb lenne, ha ezeket az adatokat egyszerre lehetne betenni, nem egyenként copy pastelni
Nem teljesen jól működik. Ha lefuttatom az eredeti munkalapról eltünteti a második oszlopot. Ha többször lefuttatom akkor meg teljesen más oszlopokat másol át
Sub Masol() Dim WSHonnan As Worksheet, WSHova As Worksheet Set WSHonnan = Sheets("Munka1") Set WSHova = Sheets("Munka2")
WSHonnan.Range("A:M").Copy WSHova.Range("A1") WSHova.Select Sheets(2).Select Columns(2).Delete Columns(3).Delete Columns(5).Delete Columns(5).Delete End Sub
Egy másolást kellene automatízálni excelben makróval. Van egy hatalmas excel táblám. Abból bizonyos oszolpokat át kellene másolni egy másik munkalap oszlopába.
Pivottáblával is lehet, aminek a forrása az a munkalap, ahova sorokat másolod. Ha egy dinamikus "named range"-et csinálsz, akkor nem kell mindig megváltoztatgatni a pivottábla forrását. Itt van, hogy hogyan kell http://support.microsoft.com/kb/830287
Időközben megoldottam magamtól a próblémát, de a te megoldásod sokkal elegánsabb ezért lecseréltem. :D
Lenne mégvalami.
A tartozás munkafüzetet kellene tovább fejleszteni. Most úgy néz ki a szűrés, hogy többször is szerepelnek benne ügyfelek. Azt kellene tudnia az új makrónak, hogy az azonos nevű ügyfeleket az adataikkal együtt egy másik munkalapra egy sorba másolja át.
Tehát ha egy ügyfélnek több tartozása van és az több sorba szerepel, akkor azt egy másik munkalapon egy sorban összesíti.
Dim Oszlop1 As Integer, Oszlop2, Oszlop3, Oszlop4, TartozasOszlop Dim Sor As Integer Dim MunkaLap As Worksheet
Set MunkaLap = ActiveWorkbook.Worksheets("Sheet2") ' <-- a Sheet2 helyére írd a munkalap nevét, ahova másolni akarod MunkaLap.Cells.Delete
Oszlop1 = 1 ' <-- A oszlop (2 = B, 3 = C, stb.) Írd át az oszlopokat arra, amire akarod. Oszlop2 = 1 Oszlop3 = 1 Oszlop4 = 1
TartozasOszlop = 1
For Sor = 2 To ActiveSheet.Cells(Rows.Count, Oszlop1).End(xlUp).Row ' <-- a 2. sortól nézi (Sor = 2) 'addig a sorig nézi, amíg az Oszlop1 oszlopban van adat. Célszerű átírni a leghosszabb oszlopra. 'ha ez pl. a D oszlop, akkor a fenti sorban legyen Oszlop1 helyett 4. If ActiveSheet.Cells(Sor, Oszlop1) <> "" Or _ ActiveSheet.Cells(Sor, Oszlop2) <> "" Or _ ActiveSheet.Cells(Sor, Oszlop3) <> "" Or _ ActiveSheet.Cells(Sor, Oszlop4) <> "" Or _ ActiveSheet.Cells(Sor, TartozasOszlop) <> 0 Then 'ha bármelyik oszlopban van érték a sorban (vagy a TartozasOszlop cellájában nem 0 az érték), akkor átmásolja a másik munkalapra az adott sort
Alt + F11-gyel hívd be a makrószerkesztőt. Bal oldalon kattints a füzeted nevére. Insert menü, Module paranccsal kapsz jobb oldalon egy üres lapot. Oda másold be a lenti makrót.
Sub Lapok() Dim f As Boolean, lap%
Do f = False For lap% = Sheets.Count To 2 Step -1 If Sheets(lap%).Name < Sheets(lap% - 1).Name Then Sheets(lap%).Move Before:=Sheets(lap% - 1) f = True End If Next Loop While f = True End Sub
Visszalépsz a füzetedbe, Alt + F8-cal behívod a makrókat, és indítod a Lapok nevűt.
Van egy viszonylag egyszerű manuális lehetőség. Lépések:
1) Másold át az adatokat a cél munkafüzetbe egymás alá, pl. az A oszlopba.
2) Az első mellé írj egy egyest a B oszlopba, a második mellé egy kettest.
3) Jelöld ki az egyest és a kettest.
4) Egérrel fogd meg a kijelölés jobb alsó sarkát, és húzd le egészen addig, amíg az A oszlopban az adatok tartanak. Ha jól csináltad, egyesével növekvő sorszámokat kaptál a B oszlopban.
5) Jelöld ki a sorszámokat tartalmazó cellákat az egyestől az utolsóig, és nyomj egy másolást.
6) A kimásolt tartományt illeszd be a B oszlop első üres cellájába, tehát a kimásolt tartomány alá.
7) Ezt ismételd meg még 4x. A végén a sorszámok hatszor lesznek meg a B oszlopban.
8) Jelöld ki az A és B oszlopokat, rendezd sorba B majd A szerint
Remélem egyszerű a bajom! Egy excel fájlba több munkalapom van ezek el vannak nevezve emberek nevével! Szeretném őket abc sorrendbe rakni! Hogyan tudom megcsinálni? egyálatalán meg lehet? Egyszerűen írjátok le légyszi nem vagyok excel guru! Nagyon szépen Köszönöm!!
Remélem tudtok segíteni, nem nagyon értek sajna az Excelhez.
Adott egy táblázat, az egyik oszlopba kellene bemásolni automatizálva vagy hivatkozva vagy nem tudom hogyan (csak ne gépelve) egy másik excel fájl oszlopainak adatait. Ahová másolni kell, ott minden hatodik cellába kellene , hogy kerüljön szám, de a forrásban egymás alatt vannak a számok. Ráadásul úgy kellene átrakni, hogy csak a szám kerüljön be, mert a többi cellában van képlet is.
A sorok azonos sorrendben vannak mindkét excel fájlban, csak mint írtam, amibe másolni kell ott több sor, hat, szerepel, ahonnan másolni kell, ott pedig egymás alatt folyamatosan jönnek a számok.
Remélem érthető, hogy mit akarok:)
Óriási segítség lenne, ha ebben tudnátok segíteni, amit előre is nagyon köszönök!
A táblázatban szerepel egy tartozás oszló ami 0 ft-ot vagy a tartozás összegét tartalmazza. A szűrést erre azt oszlopra is le kellene futtatni, úgy hogy a másik munkalapra azokat a sorokat adja meg amik nem 0 ft-ot tartalmaz. (Tehát a tartozásos sorokat.)
Valamint abban tudnál segíteni, hogy a szűrés úgy is tudjon működni, hogy egyszerre nem csak egy oszlopot figyel hanem többet is (2-öt vagy 3-mat) és ha bármelyikben talál értéket akkor az máris másolásra kerül.
Mi lehet a gond? Van egy 25 cella tartományom (J13:J37) listám, amiben az J13:J21-ig számok vannak, az J22:J37-ig semmi. DARABTELI függvénnyel szeretném összeszámoltatni, mennyi cellában van szám (ami 9 cella, azaz az értéknek 9-nek kell lenni) viszont az érték 8 lesz! Mit rontottam el? A függvényem így néz ki:=DARABTELI(J13:J37;"<=25")
Az az érdekes, hogy így gondoltam én is, de amikor próbálkoztam vele, azaz vba-ban megírt makrómat kijelöltem, az Egyebek gomb elhalványult, és nem lehetett hozzáférni a billentyűkiosztás meghatározásához. Az új makró rögzítésénél viszont igen, ezért csináltam a megírt makróhoz indító makrót, majd írtam be ide a kérdést.
Most viszont, minden további nélkül éles maradt az Egyebek gomb. Jó lenne tudni, hogy mivel tiltottam le anno.
A ctrl+shift-es billentyűkiosztás módjára is rájöttem. Most már csak a kiosztott betűk listázásására várnék vmi egyszerű módszert, már ha van ilyen egyáltalán.
Megpróbáltam kitalálni mi a faszom azok a gyorsok, meg szektorok. Az adatokat tanulmányozva lett is egy meglátásom. Ez alapján is kiszámoltam a vgabee adatait. 7:39.090-jött ki. Ez már elég jól egyezik a te számoddal. Erősítd meg, hogy nálad is ez a pontos szám, és akkor küldöm a megoldó képleteket. Persze nem ártana, ha szövegesen is kifejtenéd egy kicsit bővebben, hogy mit is tartalmaz ez a táblázat.
Nem nagyon értem, hogy miket akarsz összeadni. Nem tudom, mi az a 4 gyors, (amikor csak 3 idő oszlop van), és halvány fingom sincs mik azok az első szektor idők. Ráadásul a vgabee versenyzőnél nálam semmilyen kombinációból sem jon ki a 7:3x.xxx. A legközelebbi hozzá a 7:03.xxx. Egyébként biztos ki lehet számolni, csak tudnom kéne, hogy mit akarsz kiszámolni. Másfelől megjegyzem, ha tanulmányoznád a konvertáló képleteket, akkor biztosan gyorsan rájönnél hogy miképp.
Az internetes oldalt meg nem találom, elmagyarázhanád kicsit szájbarágósabban, mint okos apa a hüje fiának.
Köszönöm, de pont ez a bajom. Excel 2003-al dolgozok, és nem találok beállítást a file egyedi védettségének módosítására, csak az Excel biztonsági szintjét tudom beállítani. Ami pedig valamennyi fájlra érvényes. Meg tudnád mondani, hogy hol tudom a file védettségét módosítani, anélkül, hogy az egészet érintené?
Annyit látok, hogy ugyanezt a fájlt az XlStart könyvtárba téve gond nélkül lefut az Excel minden megnyitásakor figyelmeztetés nélkül. Tehát ott "tudja", hogy én tettem oda az Excel táblázatot. Ezzel viszont egy másik apró gondom van, nevezetesen, hogy nem tudom teljesen beállítani ugyanazt a környezetet, mint a normál Excel megnyitáskor, mely szerint kapok egy Munkafüzet1 nevű állományt, ami eltűnik, ha megnyitok egy meglévő Excel táblázatot. Tehát az ennek a Munkafüzet1-nek a helyére nyílik. És ez így jó.
A programomban be tudom állítani, hogy annak végrehajtása után egy Munkafüzet1 nevű munkafüzet nyíljon meg, de egy meglévő táblázat megnyitása már nem ezt írja felül, hanem új ablakban nyílik meg. Apróság, de nekem nem tetszik, ezért próbálkoztan az indítópultos megoldással.
Az egésznek a célja egyébként az, hogy a programom egyik ága naponta csak egyszer fusson le (megnyit egy honlapot, amit nem szeretnék elfelejteni ellenőrizni), de többször már nem kell, így a program a feljegyzett mai dátum ellenőrzése után leáll.
Jah még annyi, hogy az időket hogyan tudom összeadni? Annyi, hogy egy adott versenyzőnél, mind a 4 gyorsból össze kell adni az első szektor időket. Ha pl V.Gabee felhasználót nézem akkor 7:3x:xxx-nek kell kijönnie.
Hello! Köszönöm szépen jónak néz ki! :) Igy tudod megnézni interneten az eredményeket, bár szerintem már megtaláltad. Felül van a szakaszok száma, ott valamelyikre rákattintasz, letekersz és alul van olyan, hogy részidők megjelenítése.
A csv filera csináltam egy konverziót, amit felraktam a data.hu-ra. Nézd meg és hasonlítsd össze az eredeti internetes adatokkal. Aztán írd meg, hogy stimmelnek-e vagy sem.
Írtam egy kis programot, amit a munkafüzet megnyitáshoz rendeltem és szeretném a számítógép indításakor lefuttatni, ezért betettem az indítópultba. Renben is van, működik, csak éppen az Excel biztonsági rendszerének beállítása miatt rákérdez a makrók engedélyezésére. És ezt az opciót nem is szeretném kikapcsolni, viszont jó lenne, ha konkrétan ez a fájl úgy nyílna meg, és futna le a makró, hogy átugorja a biztonsági kérdést.
Copypaste eljárással bemásoltam a www.rallysimfans.hu lapot az Excelbe. Az időket tartalmazó E oszlopban kicseréltem a pontokat vesszőkre, és a formátumot így adtam meg:
[pp]:mm,000. Hibátlanul átvitte, az időkkel számolni lehet.
Nem igen áll össze, hogy mi a helyzet. Leírom a tapasztalataimat, amit aztán tieiddel összevetve, talán előbbre jutunk.
1. A ralis weblapot minden további nélkül át tudtam copypastezni az excelembe. A pp:mm.xxx formátumokat nem ismerte fel, ezeket stringgé alakította, az yyy.xxx formátumokat számoknak látta (mivel tizedespontot használok és nem tizedesvesszőt), át is alakította őket értékké, de a számjegyeket nem változtatta meg. Nézegetni így is jó, de ha tovább akarsz belőle számolni, akkor a stringeket át kell alakítanod számértékké az isstring vagy az isvalue függvények valamelyikével. Egyvalami azonban biztos. Ebben a tábázatban 109.386 időeredmény nem fordult elő.
2. A csv import file már tele volt xxx.yyy típusú általános formátumokkal. Viszont egy teljesen másik táblázat volt mint az előbbi. Ami azért probléma, mert így halvány fogalmam sincs, hogy miket alakított át xxx.yyy formátumokká. Ezért aztán azt sem értem, hogy te honnan tudod, hogy a 109.386-t 1:49.386-ra kéne visszaalakítani. Én ugyanis találtam ebben a táblázatban 109.386-t, de azt az excelem 9:15:50-re alakította. Már amennyiben az oo:pp:mm formátumot választottam. Ha a pp:mm.x-t, akkor meg a 15:50.4-t. Amiből a 0.4 még oké, az lehet 0.386 kerekítve, de hogy a109 hogyan lett 15:50 az rejtély. Már csak azért is, mert a 109 önmagában 00:00.0 értékhez vezetett.
Szóval nem sokkal vagyunk előbbre. És addig remény sincs, hogy támad valami használható ötletem, amíg nem linkeled be azt a táblázatot, amit a csv import elbarmol.
Nem tudom, mit barmolhat az excel összevissza. Én is megpróbáltam az 1:49.386- bemásolni is, importálni is egy txt fileból, de nekem mindig az 1:49.396 stringet eredményezte, és sosem 109.386-t. Te miből importáltál és hogyan?
Újra átnézve a 19305-t, az a gyanúm, hogy első lépében azt kell meghatározni melyik időzónában hány órát dolgoztak. Ehhez 2 oszlop kell, egy 18 óra elöttnek és egy az utáninak. Ide kiszámítod, hogy abban a időszakban hány órát dolgoztak. Azt, hogy ezt hogyan lehet kiszámolni, az attól függ, hogy milyen formában van megadva neked az eltöltött munkaidő. Mivel erről nem írtál semmit, megpróbálok vmit elképzelni. Ha feltételezem, hogy különálló oszlopokba vezeted a munkakezdés és a végzés időpontjait, ó:pp formátumba, mondjuk a C2:D2-vel kezdődően, akkor
a 18 óra ellöti óráknak az alábbi képletet írd be, mondjuk az E oszlopba:
Most azt csinálja, hogy ha tíz sort másolok át a másik munkalapra, akkor azt az A1-es cellától kezdi el feltölteni. Majd ha ismét lefuttatom akkor kitörli az első 10 cellát és a 11-től kezdi el a feltöltést.
Nekem az kellene, hogy ismét az A1-es cellától kezdje el.
Szia! Ez volt nekem is az első ötletem, de sajnos nem müködik. Meg hát nekem perc:másodperc:ezred másodperc formátumba kéne. Lehet ez a baj, hogy ilyen nincs a listában?
Össze kellene szoroznom egy sorban, különböző cellákban lévő számokat, de van köztük üres cella is amit 0-nak vesz a szorzáskor, így avégeredmény is 0. Milyen függvénnyel lehet a 0-kat kiszedni a szorzásból?
Kipróbáltad amit írtam, vagy csak elképzelted, hogy működik? Mert szerintem úgy, hogy ha 4 tételt választ ki a vevő akárhonnan, akkor azokat a nyomtatandó táblázatod 1-4 sorába fogja tenni, és az alattuk levő sorok lesznek üresek a lap aljáig. Ha nem így működne mégsem, küldd el priviben és kijavítom. Apró szépséghiba lehet, ha a papírlap bal szélén látszódnak a sorszámok végig 65-ig, akkor is, ha nincs mellettük semmi, de ezen is könnyű segíteni az A oszlop elrejtésével. Az fkeres akkor is látja a vezérlő számokat, ha a nyomtató nem.
Kisebb gubancot az okozhat, ha régi tűfejes mátrix nyomtató leporellójából 4 sorhoz, csak 4 sornyi papírt akarsz leszakítani a vevőnek. Ez esetben a soremelést kell vezérelni a tételszám alapján, de ahhoz a nyomtatót is ismerni kéne, nem elég az excelt. De nem hiszem, hogy ilyen nyomtatót használnál, inkább valamilyen lapadagolóst, ami akkor is 1 lapot ad ki, ha azon 1 sor van, meg akkor is, ha 60.
Még egy olyan kérdésem lenne, hogy azt hogy tudom megcsinálni, hogy ha ismét lefuttatom a makrot akkor a másolást nem folyatotlagosan csinálja hanem kezdje a táblázat elejétől?
Abban szeretném kérni a segítségeteket, hogy egy olyan excel táblát kell készítenem, ami személyenként tartalmazza az egy hónapban ledolgozott munkaidőt és a rá kifizetett bttó bért. Szerepel benne a munkába állás és befejezés órája naponként. Ami a nehézséget okozza nekem, hogy változik a munkabér délelőtt és délutáni műszakban és a dolgozó mindkét időzónában is dolgozhat.
pl. 14.00-22.00-ig dolgozik. Az órabér 6.00-18.00-ig 600,-/óra 18.00-6.00-ig 780,-/ óra
Köszönöm szépen a válaszodat! Ezzel a megoldással csak az a problémám, hogy nem lehetnek a tételek között üres sorok.
Ezt a táblát ki kellene nyomtatnom és odaadni a vásárlóknak.
Tudom meg lehet csinálni az üres sorok törlésével, csak hogyha ezt a táblázatot más kezeli ( aki pl nem ért az excelhez) az nem tudja megcsinálni. + A formázás miatt sem túl praktikus.
1. A VBA-ban írt rutinok indításához hogyan lehet billenyűparancsot rendelni? Sehol sem találom ennek a lehetőségét. Mivel elég gagyi, hogy emiatt a makrókhoz indítómakrókat kell rögzitenem, amikhez már minden további lehet a billentyűparancsokat kapcsolni.
2. Mivel lassacskán elfogynak a ctrl+betű indítóparancs lehetőségeim (tekintettel arra, hogy elég sok lehetőséget fenn kell tartanom az excelnek is), hogyan lehet ctrl+shift+betű kombinációt választani hozzájuk? A rögzítő ugyanis csak a ctrl hozzákapcsolását ajánlja fel.
3. Van-e mód a már kiosztott billentyűparancsok kilistázására? Mert már nagyon unom, hogy állandóan visszapofázik, hogy ez a betű már foglalt.
A táblázatod elé beszúrsz egy igen-t számláló oszlopot. Ha a táblázatod az A1:G65 tartományban volt idáig, akkor ezentúl a B1:H65 -ben lesz. Az igen számlálásra a követekező a képletnek a végighúzását javaslom az A2:A66-ban:
=Ha(E1="igen";Darabteli($E$1:D1;"igen");0) Már amennyiben az igenek a táblázateltolás miatt az E oszlopba kerültek át.
A másik lapon meg az A-oszlopot A2-től beszámozod 1-65-ig, a sor1-t B1-től H1-ig meg 1-7 ig, majd egy hahibás fkeressel rákeresel az A oszlop 1-65 számára. Szépen kiírja az összest, a többi sorban meg üres string lesz.
=hahiba(fkeres($A2;tétel!$A$1:$H$65;B$1;0);"")
ps: Az esetedben szerintem az fkeresben célszerűbb a HAMIS mint az IGAZ típus megjelölés
Egy problémában szeretnék segítséget kérni. Nem vagyok nagyon otthon excelben.
Adott egy táblázat amiben fel vannak sorolva különböző alkatrészek (soronként). Ezek mindegyike mellett van egy oszlop, hogy a megrendelő kéri-e az adott alkatrészt vagy nem. Nekem egy olyan összesítőt kellene egy másik munkalapra csinálnom, ami csak azokat a tételeket tartalmazza, amit kért az ügyfél.
Próbálkoztam, azzal hogy FKeres függvénnyel megkeresem az első sort, ahol kérés (megrendelés) van majd ennek rögzítem a sorszámát és a következő sorban az FKeres függvény tartomány kezdősorát a tárolt sorszám+1 sorból indítom.
A probléma az volt, hogy az INDIREKT függvényt csak egy cella értékre tudom alkalmazni és tartományban nem.
Sziasztok! Lehet amatör kérdés, de beimportálok egy táblába időeredményeket. Ugye az excel ezeket számként kezeli és jeleníti meg. Ezeket a számokat átlehet valahogy alakítani újra idővé?
Tehát a gyakorlatban: importálás után ezt kapom excelben: 109.386 Az időeredmény amit megkéne kapnom: 1:49.386 Előre is köszönöm a segítséget!
Sub Mása() Const ForrásMunkalap = "Munka1" Const CélMunkalap = "Munka2" Const VizsgálandóOszlop = "A"
Dim ws1 As Worksheet, ws2 As Worksheet, LastCol As Range
Set ws1 = ThisWorkbook.Worksheets(ForrásMunkalap) Set ws2 = ThisWorkbook.Worksheets(CélMunkalap) Set LastCol = ws1.Columns(ws1.Columns.Count) ws2.Cells.Delete On Error Resume Next Intersect(ws1.Range(VizsgálandóOszlop & ":" & VizsgálandóOszlop).SpecialCells(xlCellTypeBlanks).EntireRow, LastCol) = "a" LastCol.SpecialCells(xlCellTypeBlanks).EntireRow.Copy ws2.Range("A1") LastCol.ClearContents End Sub
Az első három sort (a konstansokat) kell módosítanod.
remélem ez működik. Csinálj egy modult és oda másold be. Úgy futtasd, hogy az aktív munkalap az legyen, ahonnan másolni akarsz. Valószínűleg át kell írnod egy kicsit, írtam bele kommenteket.
Sub OszlopMasolo()
Dim Oszlop As Integer
Dim Sor As Integer
Dim MunkaLap As Worksheet
Set MunkaLap = ActiveWorkbook.Worksheets("Sheet2") ' <-- a Sheet2 helyére írd a munkalap nevét, ahova másolni akarod
Oszlop = 1 ' <-- A oszlop (2 = B, 3 = C, stb.) Ezt az oszlopot nézi, h van-e benne adat, írd át, ha akarod.
For Sor = 2 To ActiveSheet.Cells(Rows.Count, Oszlop).End(xlUp).Row ' <-- a 2. sortól nézi (Sor = 2)
Egy olyan próblémám lenne amit makróval kellene megoldanom. Van egy több soros több oszlopos táblázatom adatokkal. Azt kellene megoldani, hogy a makró végig megy a táblázat egy adott oszlopán és ha van benne bejegyzés, akkor az egész sort átmásolja egy másik táblázatba.
Valszeg ez a javaslat a parasztlengő számítástechnikai megfelelője, de működnie kellene.
Szóval installálj fel egy másik lejátszó programot (iwiew vagy VLC Media Player - google megmondja hol találod) és az elsőt az alapértelmezett lejátszóban nézd, a második videót pedig az alternatív lejátszóban.
Valószínűleg ennél vannak fényévekkel jobb javaslatok, de se az oprendszeredet nem adtad meg, se a lejátszót amiben próbálkozol...
A gépen van több videó, amik közül egyszerre mindig kettőt kellene néznem (a képernyő bal oldalán az egyiket, a jobb oldalán a másikat), de nem tudok egyszerre két videót megnyitni!!! Az egyiket megnyitom, és a másikat ugyanabban az ablakban nyitja meg... help, pls!
Köszönöm a választ. Sejtettem, hogy a tizedesvessző/pont körül lehet a gond, ezért is tértem ki erre. És örülök, hogy elmagyaráztad az Excel működési mechanizmusát ezzel kapcsolatban. Ez nagyon érdekes, jó, hogy megtudtam.
Ami a beállítást illeti, az nálam szándékos. Valahogy hozzászoktam (számítógépen) a tizedespont használatához, és így szoktam beállítani. És ahol ettől eltérés van, mint a saját példám beérkező adatainál, ott konvertálom. Itt is ezt teszi a programom a nem közölt részekben, csak ez a konverzió a sorrendezés után történik. Ha ezzel kezdtem volna a programot, akkor sosem ütközöm bele ebbe.
De végül Retro Image javaslata megoldotta ezt. Így neki köszönöm, hogy rávezetett a megoldásra, neked pedig a hiba okának pontos leírását.
Az excelben minden termékhez adnék egy ID számot, majd létrehoznék egy munkalapot az excel dokumentumban (amiben az árlista van).
Ezután minden ajánlatkor beírnám az ID számokat és ehhez FKERES függvénnyel minden jellemzőjét hozzárendelném a terméknek.
Ezzel az excelben összeállna az ajánlat, amit körlevél funkcióval a word-be behívnék és kész a szép és korrekt ajánlat, eltéveszthetetlen az ajánlat, hiszen mindent automatikusan illeszt be a word!
Ha a javaslatom tetszik és szükséges, szivesen segítek a megvalósításban...
Adott egy lista excelben. Terméknév leírás ár stb. kb 17 000 termék. Sokszor kérnek árajánlatot és nincs kedvem ctrl x c v gombozni egy wordbe az adott sort
Nincs valami megoldás hogy a kijelölt részre kattintva azt automatkusan beillesze a fejleces wordbe vagy egy előre megszerkesztett űrlapba. A doc.-os verzió jobban tetszene űgy hogy a szövegforma maradna a keretek nélkül. Legegyszerúbb megoldás érdekel
A gondot az okozza, hogy - a jelek szerint - a te excel-ed tizedes pontot használ, nem tizedesvesszőt. Ennek következménye, hogy a tizedesvesszőt használó számaidat az Excel szövegnek érzi.
A sorbarendezésnél - annak is a fejléc-azonosítási része során, a következő történik: az excel megnézi, hogy van-e olyan sor, ahol egy korábban szöveg (vagyis fejléc-rész) oszlop két sor között tipust vált. Az utolsó előtti oszlop harmadik sorában pont ez történik, hiszen két számnak látszó (de az Excel számára szöveg) adat után hirtelen egy szám tipusú adat jön (mert a harmadik sorban nincs vessző, így az Excel gond nélkül stzámként értelmezi).
Innen már egyszerű az Excel logikáját követni, az első két sor a fejléc, a harmadik pedig az első adat-sor.
Állítsd át az oprendszered beállításainál, hogy mi a tizedes-elválasztó, mert valszeg ott van rosszul. Vagy ha importáltad a cuccot, akkor az importálás során állítsd be, hogy a számok esetében a tizedes-elválasztó nem a pont, hanem a vessző.
Köszönöm a javaslatot. Teljesen jogos. A helyzet az, hogy nem vagyok profi a VBA-ban, ezért makrórögzítéssel hoztam létre a programsort. És most ellenőriztem, hiába adom meg a makró rögzítésekor, hogy nincs rovatfej, ő ezt nem hiszi el nekem, és az xlGuess opciót írja be. Már ki is javítottam ezt a sort.
És ez meg is oldotta a problémámat.
És innetől már csak érdekesség az ezzel kapcsolatos furcsaság. Kíváncsi lennék, hogy tudja-e valaki az okát. Ha ezeket az adatokat parancsból próbálom rendezni, a következőt tapasztalom: Ha kijelölöm a teljes adattartományt, akkor jól működik a rendezési parancs. Ha viszont csak az A1 cellára állok, vagy az adattartomány bármelyik cellájára, akkor először is azt hiszi, hogy van egy két soros rovatfej, és csak az utolsó 3 sort jelöli ki a rendezéshez. Aztán, amikor közlöm, hogy nincs rovatfej, akkor nagy kegyesen a 2. sort is kijelöli, de az elsőt semmiképp sem veszi figyelembe.
És tesztelgettem egy kicsit a dolgot. Az ok valahogy az utolsó előtti oszlopban keresendő. Ha ezt az oszlopot törlöm, akkor a működés jó. Ha az oszlopban a tizedesvesszőket pontra javítom (Én installáláskor mindig pontra cserélem a tizedesvesszőket, tehát az én számaim tizedesponttal működnek - talán ez is okozhatja a gubancot), akkor jó a működés parancsból kiadva is.
Szóval ha tudod az okot, vagy valaki más meg tudja fejteni, annak örülnék. Szeretem az ilyen gondok hátterét ismerni akkor is, ha a gyakorlatban sikerült megoldani.
Szerintem ne bízd Excel Úrra, hogy kitalálja, van-e fejléc sorbarendezéskor. Amikor Excel Úr helyettünk gondolkodik, annak általában szivacs a vége :o)
Vagyis: próbáld ki úgy, hogy Header:=xlGuess helyett Header:=xlNo van az utolsó sorban.
Sziasztok, segítséget kérek. Egy telefonos beszélgetések költségelszámolásáról szóló adatbázissal dolgozom. A baj, hogy az adatok a beszélgetés időpontjának csökkenő sorrendjében érkeznek. Nekem pedig a használathoz meg kell cserélnem az adatok sorrendjét növekvőre. Erre írtam egy rövid makrót, ami az esetek többségében működik. A makró az adatok elé beszúr egy oszlopot, és az így kapott első oszlopot beszámozza 1-től kezdve az utolsó sorig növekvő számokkal. Majd ezután rendezi az adatokat az első oszlop csökkenő sorrendjében. A makró így néz ki:
Sub telefon_adatok_módosítása()
Dim sor As Long, oszlop As Long, usor As Long
Range(Cells(1, 1), Cells(1, 1)).Select
usor = ActiveCell.SpecialCells(xlLastCell).Row
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
For sor = 1 To usor
Cells(sor, 1) = sor ' A sorrend cseréhez feltöltés a sor számával
A program eddig minden esetben hibátlanul működött, azonban az egyik alkalommal nem. És képtelen vagyok rájönni a hiba okára.
A hibás működés a következő adatállomány esetében jelentkezett (Az első oszlop tartalmazza a hívott szám első számjegyeit, a második a hívás idejét, a harmadik az időtartamot, a továbbiak egyéb paramétereket és költségeket):
Valami érthetetlen okból a program az első 2 adatsort a helyén hagyja és csak a következő hármat rendezi.
Már órákat töltöttem a hiba okának megkeresésével, de nem vagyok képes megtalálni. Azt is kipróbáltam, hogy ha csak az első 3 oszlop adatait tartom meg, és a többi adatot törlöm, majd a programban a rendező sort átírom ennek megfelelően „Range(Cells(1, 3), Cells(1, 3)).Sort Key1...” –re, akkor jól fut le a program. Ha viszont a programot így hagyom (3 oszlopra), de a többi oszlop tartalmát meghagyom, akkor is hibás a rendezés eredménye. Tehát a szöveges oszlopok megzavarják a rendezést.
Tud valaki segíteni, hogy mi lehet a hiba? Mi okozza ezt?
Úgy érted, hogy az átlagos infláció = az ötmilla kamata? Szerintem reális úgy kalkulálni, hogy a hosszú távú kamat annyival van az infláció felett, mint az energiaárak emelkedése, így natúr fejszámolással kijön, hogy tíz év a megtérülés :)
Két tizedes pontossággaé amúgy sem lehet a jövőbe látni...
Basszukulcs! Vagy 3x átnéztem a pénzügyi függvények lismertetőit mielött nekiálltam megkonstruálni a képletet, de nem ismertem fel a mimi bácsi feladat és a per.szám leírás analógiáját :)))))
Az Excel pénzügyi függvényei között kell lennie ilyesmire kész képletnek, csak azt a nem közgazdász Excel-userek nem szoktuk ismerni. Meg lennék lepve, ha nem lenne alkalmas függvény.
Attól tartok, hogy nem fogsz kapni. Mivel ha jól értem, te a mértani sorozat összegképletéból a kitevőkben másodfokon is szereplő n-t szeretnéd kifejteni, de ez elég babrásnak tűnik. Nem csak nekem, aki már rég elfelejtette gimis matekot, de a gugliban sem találtam rá képletet. Tehát marad a numerikus közelítés, ami szerint kb 7,5 év alatt váltod ki a műszereddel az évi 500e költséged, de gondolom, ezt már te is kiszámoltad.
Az eddigi tapasztalataim alapján változatlanul az a meggyöződésem, hogy kiugró adat miatt kurvul el a diagramod. Tehát nem a további 50-től, hanem ezek közül az egyiknél. Próbálj annak utánanézni, hogy hol vált. Ha így se boldogulsz, tedd fel a data.hura a tapasztalataid közlésével, és akkor én is megnézem. A linket elküldheted priviben is.
A HAHIBA-t még akkor csináltam, amikor még azt hittem, hogy a HIANYZIK okozza a diagram deformálását. Dehát írtad, hogy HIANYZIKOT az offsettel kiküszöbölted. (Ami szövegesen leírva nekem túl komplikált volt, amit nem volt idegem kisilabizálni, így csak elfogadtam a kiküszöbölés tényét). A logikája egyébként az volt, hogyha a HIÁNYZIKOT eredményez a függvény, akkor helyette az addig kitöltött (tehát az aktuális cella elötti sorig kitöltött) AA oszlop minimumánál 100-zal kisebb értéket vegyen figyelembe.
Azért csak nem hagyott nyugton a névkezelő használatod. Azt írtad:
Ha névkezelő nélkül kijelölöm a tartományt AA3:AA800 de csak AA3 és AA50 között van adat akkor is rajzol ugyan, de csak a chart elejére és egy csomó helyett hagy a többi adatnak, hogy majd kitöltse. Ezért a névkezelő.
Először is a kérdésem: Ez miért baj? Szerintem nagyon hasznosan jelzi, hogy még kb mennyi adat várható.
No de ha akármiért is probléma, elmesélem neked a ma reggeli kávézásom közben kipróbált változatot: Az XY-nak kijelölt tartományom Z3:AA800. Ennek, ha csak az első 50 sora van feltöltve, akkor az abszcissza 0-60, ha 200, akkor 0-250, ha 700, no akkor már 0-800.
Persze csak ha a Z oszlop is ki van töltve 1-698-cal.
Mindez nekem is újdonság volt (mivel nem igen szoktam diagramozni). Azt idáig is tudtam, hogyha netántán a 800 adat is kevésnek bizonyulna, akkor ha a z800:aa800 cellákat áthelyezem z1500:aa1500-ra, akkor azzal a diagramtartomány már ekkora lesz. És persze ugyanígy csökkethető is. A névkezelő használata nélkül is.
Mindezek alapján remélhetőleg semmi akadálya a neked is megfelelő grafikokon megcsinálásának.
üdv tBando
No most szépen átmásolom e hozzászólást egy doc-ba, mert az hétszentség, hogy a fórum motor küldéskor el fogja zabrálni.
Persze azt tudom, hogy meg lehet neki adni minimum és maximum értéket is, csak azt hittem valahogy ezt meg lehet csinálni makró nélkül is.Meg lapvédelem alatt van, szóval aki kapja nem nagyon variálhat a tengely minimumával. De úgy látom nincs más megoldás... :(
Ez amúgy mi is akart lenni? HAHIBA(fgv;min($AA2:AAxx)-100)
Megnéztem, semmi különös a 131.-ik adattal. Ha mondjuk beleírok 5-t akkor még mindig jól mutatja. Ha beleírok 50-t még akkor is, de ha mondjuk 100 felett akkor ugrik át...
Eljátszogattam egy kicsit a diagrammal, és arra jöttem rá, hogy nem csak a nulla adatnál vált nullára az Y, hanem már egy a többitől jelentősebben eltérő értéknél is. Érdemes ilyen szempontból is megnézni azt a bizonyos 131-ik adatot.
De ami igazán pozitív fejlemény lehet számodra, hogy az Y értékek minimuma (és persze a maximuma is) rögzíthető (jobb klikk, tengely formázása, tengely beállításai). Az over és under értékeket ez esetben értelemszerűen nem fogja mutatni, de a skála bármikor módosítható.
Ha 130 adatig nem nulla az Y tengely kezdőértéke, akkor nézd meg a 131-ik adatot, hogy nem string-e véletlenül, vagy valami, amit nullának érzékelhet. Mert más oka szerintem nem igen lehet a skálaváltásnak. Ezért ha mégsem a nulla van a háttérben, tedd fel a példát a data.hu-ra és akkor megnézem. Amit már azért is szívesen megtennék, mert nem igen értem, hogy a névkezelő hogyan dinamizálja a diagram adattábláját.
A javasolt HAHIBA tippem sajnos nem igazán jó megoldás, ezért ejtsük.
Nos mindenesetre érdekes, hogy több mint 130 értéknél nem nulla az y tengely aztán hirtelen meg igen. Azon kívül a HIÁNYZIK()-ot nem is láthatja mert az eltolásban benne van, hogy addig jelenítse meg az adatot amíg "szám" van, pontosabban addig ahány darab bejegyzés van.
Ha névkezelő nélkül kijelölöm a tartományt AA3:AA800 de csak AA3 és AA50 között van adat akkor is rajzol ugyan, de csak a chart elejére és egy csomó helyett hagy a többi adatnak, hogy majd kitöltse. Ezért a névkezelő.
HAHIBA(fgv;min($AA2:AAxx)-100) ezt hova írjam be?? Nem gagyi, ha működik.
Makrót meg írtam, hogy semmiképpen nem használhatok....
Ha az adataid között van HIÁNYZIK, akkor azt a diagramkészítő 0-nak fogja tekinteni, tehát 0-tól fog indulni az Y-tengelyed. Ezen nem lehet segíteni. Ha csak meg nem felel egy olyan megoldás, hogy HAHIBA(fgv;min($AA2:AAxx)-100). Ekkor Y-kezdőpont 0-helyett a mindenkori minimumod-nal 100-zal kisebb értéke lesz. Elég gagyi. Jobb ha diagramkészítő makrót írsz, ami dinamikusan képes kijelölni a diagramadatokat tartalmazó tartományt.
Egy táblára szóló elrendezés addig él, amíg meg meg nem változtatod. Amikor beírsz új adatokat, azzal már meg is változtattad, és innentől ez lesz a táblára érvényes elrendezés. Ezért aztán, ha új adatokkal is az általad korábban beállított elredezést szeretnéd, óhatatlanul le kell futtatni a Rendezés-Elrendezés-Egyéni-OK parancssort. Amit azzal könnyíthetsz meg, hogy e 4 lépés egyik végrehajtása elött bekapcsolod a makrórögzítőt, és készülő makróhoz parancsgombot vagy gyorsbillentyüt rendelsz. Én az utóbbit szoktam használni. És ezek után az újbóli táblarendezés csak egy billentyűleütés.
(Az fórummotort meg tolja fel magának a rendszergazda :((((
Köszönöm, még egy kérdésem lenne, ha egy tálára beállítok valami rendezést (egyéni), akkor ha frissül a tábla miért nem rendezi át újra a megfelelő adatoknak automatikusan, hanem akkor mindig be kell menni a Rendezés->egyéni-> és ott megint le-OK-ozni a beállítást...meg lehet valahogy oldani, h automatikus legyen?
chartx_egyenleg =ELTOLÁS(Grafikonok!$Z$2;Grafikonok!$AC$1;0;Grafikonok!$AD$1+1;1) /ahol az egyenleg adatok AA2-től indulnak, AC1=0 AD1 pedig, egy darab függvény. Ez határozza mag, hogy hány szám van az adott mezőben. Valójában AA2:AA600-ig lehetnek számok és ahol nem az van ott a HIÁNYZIK() szerepel. Ezt az egészet nem akartam kijelölni névkezelő nélkül a grafikonnak, mert akkor nem dinamikus...
charty_egyenleg =ELTOLÁS(chartx_egyenleg;0;1)
És maga a grafikon adatsor értékében pedig: ='Grafikonok'!charty_egyenleg
Természetesen nem azt akartam hangsúlyozni, hogy grafikon a 6000-6400 sávban mozgott (mert az természetes), hanem hogy az Y csak a 6000-6400 tartományt mutatta. Egészen pontosan: 5800-tól 6600 ig terjedt.
Jól emlékeztem. A diagram sablonok közül a PONT(XY)-t választod. Fölajánl hozzá több formátumot. Kiválasztod közülük a vonalformátumot és kész. Lecsekkoltam 200 adatpárral a 6000-6400 intervallummal. A grafikon végig ebben sávban mozgott. Föl is raknám ide a diagramot, ha tudnám hogyan kell. :(( Elmondhatná valaki.
Ez marhára érdekes... teszteltem én is egy random számsorral (3000 és 8000 közé eső számokkal), de nekem mindig nullától indítja az Y tengelyt, akár 135-nél több, akár kevesebb adatpont van. Nem tudok állandó megoldást, csak esetleg azt, hogy megkeresed minimumfüggvénnyel az adatsor legkisebb pontját és azt írod be kézzel az Y tengely metszéspontjának... nálam okosabbak persze lehet, hogy találnak rá megoldást. :P
Megjegyzem, én mindig is gyűlöltem az olyan grafikonokat, ahol nem nullánál kezdődik az Y tengely (tipikus trükk, amely elrejti a valós adatot), de ez csak személyes preferencia. :D
Van arra mód és lehetőség, hogy egy grafikonba az y tengely minimum értéke az dinamikus legyen. Az automatikus valamiért nem jó egy idő után.
Adva van egy vonalgrafikon és az egyenleget jelenítem meg vele. Kb 140 sorig szépen a minimumértékhez helyezi utána meg valamiért 0-hoz és mivel kicsik az elmozdulások ezért
teljesen kilapul a chart.
Valahogy dinamikusan kellene ezt kezelni, de mindenképp makró nélkül. Lehetséges ez?
hát lehet nem írtal le jól a problémám, de szerintem ez a függvény nem tudja megoldani, vagy legalábbis én nem tudtam vele... Megpróbálom még egyszer egy ábrával is elmondani...szóval az ábrán az "a" betűhöz tartozó értékeket szeretném összeadni függvénnyel...
Helló! Olyan függvényt keresek, ami meg tudja azt csinálni, mint egy FKERES függvény, de úgy, h egy táblában többször is szerepel a keresett érték, és mindegyik értékhez meg-(pontosabban össze)kéne adja a megfelelő cella tartalmát...létezik ilyen függvény, vagy van rá esetleg valami más megoldás? (Excel '07)
The required pathnameargument is a string expression that specifies one or more file names to be deleted. The pathname may include the directory or folder, and the drive.
Remarks
In Microsoft Windows, Kill supports the use of multiple-character (*) and single-character (?) wildcards to specify multiple files. However, on the Macintosh, these characters are treated as valid file name characters and can't be used as wildcards to specify multiple files.
Since the Macintosh doesn't support the wildcards, use the file type to identify groups of files to delete. You can use the MacID function to specify file type instead of repeating the command with separate file names. For example, the following statement deletes all TEXT files in the current folder.
Kill MacID("TEXT")
If you use the MacID function with Kill in Microsoft Windows, an error occurs.
An error occurs if you try to use Kill to delete an open file.
Note To delete directories, use the RmDir statement.
1, Az Excelben előkészített adaokat Word-ben található körlevél funkcióval használd!
Aztán az egyedi levélként elkészült dokumentumokat csatold a levelükhöz....(azt gondolom, macerás lesz megtalálni az elkészült és személyre szabott egyedi leveleket)
2, Vagy használj ingyenes (hírlevélküldő) megoldást, ami pontosan azt csinálja, amit szeretnél....
3, Vagy adatbáziskezelőt használj (szerintem Neked azonnal használható megoldásra van szükséged...)
4, Vagy kérj segítséget és valaki ír Neked egy makrót....
Hát ez érdekes. A munkahelyi gépemen próbálkoztam ugyanezzel az egyszerű képlettel amit írsz, és hülyeséget adott eredményül, ezért azt hittem, nem működik ilyen egyszerűen a dolog, ezért tértem át a bonyolultabb megoldásra. Erre most itthon kipróbáltam, és jó... lehet, hogy a céges gépen nem jók a beállítások? Holnap kipróbálom!
Legyen mondjuk az A1 cellában az egyik időtartam, A2 cellában a másik. Akkor a megoldás (mondjuk a C1 cellába beírva): =A1/A2.
Fontos, hogy felismerje az excel, hogy az A1 és A2 cellában idő van (legyen beállítva a formátumnál, ha nem ismeri fel automatikusan), a C1 cellának (ahova a képletet írod) pedig százalék legyen a beállított formátuma.
A probléma: Adott két időtartam, időformátumban megadva. Pl.:
00:02:20 (két perc 20 másodperc)
02:30:18 (két óra harminc perc 18 másodperc)
Hogyan tudom kiszámolni, hogy az előbbi az utóbbinak hány százaléka? Jelenleg egy bonyolult képletet használok, amivel előbb másodpercre számítom át a fenti időket, majd elosztom őket egymássalm így:
((2*60)+20)/((2*60*60)+(30*60)+18)
De ez azért nem jó, mert ebben csak kézzel tudom változtatni a 2, 20, 30 és 18 számokat, márpedig azok változhatnak. Tehát nekem valami automatikus megoldás kellene, ami azonnal kiszámolja a százalékot, ahogy az alapidők változnak.
Tipikus körlevél feladat wordben. Az adatbázis maga az excel tábla, amely tartalmaz(hatna) e-mail címeket is. A word körlevél készítője erre mutat rá. A "körlevél e-mailben" funkció pontosan erre való, amit írsz.
Az ingoványos talaj a kulcsszó. Vedd észre, ha elérted a határt, ahol még ésszerű dolog táblázatkezelőt használni; a sok farigcsálás helyett én inkább elgondolkodnék egy adatbázison, ami még sok évig működőképes lesz.
Van erre lehetőség. Sajna a leírásból a részletek nem derülnek ki, ezért most csak egy kezdetleges makrót tudok beküldeni.
Sub Mailer() Dim OA As Object, M As Object Dim Rng As Range, r As Range, W As Worksheet Const NevekOszlopa = 1 Const EmailCímekOszlopa = 2 Const FoglalkozásokOszlopa = 5 Const TagdíjOszlopa = 10
On Error Resume Next Set OA = GetObject(, "Outlook.Application") Err.Clear: On Error GoTo -1: On Error GoTo 0 If OA Is Nothing Then Set OA = CreateObject("Outlook.Application") End If
Set W = Worksheets("Munka1") Set Rng = W.Range("a1", W.Range("A" & W.Rows.Count).End(xlUp)) For Each r In Rng.Cells Set M = OA.CreateItem(0) M.To = r.Offset(, EmailCímekOszlopa - 1) M.Subject = "értesítés" M.Body = "Tisztelt " & r.Offset(, NevekOszlopa - 1) & "!" & vbCr & "Ön ebben a hónapban " & r.Offset(, FoglalkozásokOszlopa - 1) & _ " foglalkozáson vett részt, így az Ön tagdíja " & r.Offset(, TagdíjOszlopa - 1) & " Ft." & vbCr & "Üdvözlettel:" & vbCr & "Senki Alfonz" M.Save Set M = Nothing Next End Sub
Igazából M.Save helyett M.Send lenne az igazi, de akkor (elvileg) feljön az Outlook figyelmeztető üzenete, amit kb. 3 másodperc után tudsz csak engedélyezni, ami 200 mail esetén hasonló a szuzukis futószalaghoz. Így viszont kérdés nélkül bepakol mindent a piszkozatok mappába, ahonnan egy mozdulattal át lehet szippantani az összeset a postázandók közé, és már mehet is :o)
Pár dolog, amire figyelni kell. 1) A konstansokat írd át. 2) Indítás előtt indítsd el az Outlook-ot (ez nem tudom miért kell, de nekem csak így működött :o)) 3) Mielőtt áthelyezed a leveleket a piszkozatok mappából a postázandókba, győződj meg róla, hogy nincs-e ott más piszkozat, amit nem kellene elküldeni ;o)
Remélem, outlukat használsz, mert ha nem, az gáz :o)
Kapok minden hónapban egy adatbázist, amiben az szerepel, hogy egy egyesület tagjaiból ki hány foglalkozáson vett részt az adott hónapban. Ezt összesítem és minden egyes névhez hozzárendelem a foglalkozások számához tartozó tagdíjat.
Majd ezt az adatot el kell küldenem minden egyes emberkének emailben, hogy "Ön XY ebben a hónapban 5 foglakozáson vett részt, így az ön tagdíja 1500 Ft".
Ez per pillanat úgy megy, hogy a levelezőbe kézzel belemásolom az üzenetbe az adatokat. Csak ez 200 embernél kb annyira szórakoztató mint a Suzuki gyárban a szallag mellett robotolni.
Ezt a kimásolom-beszúrom folyamatot szeretném valahogy automatizálni ha van rá valami megoldás az excelben. Össze lehet kapcsolni pl valahogy az outlookkal, hogy az outlook az üzenetbe csak egyetlen egy cella adatát tegye bele a szövegbe?
Így érthetőbb? sajnos ennél műszakibb megfogalmazás nem megy, mert az sem tudom merre induljak el a probléma megoldásához.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim V If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Me.Range("B2:I10")) Is Nothing Then V = InputBox("Adat?") Me.Unprotect Target.Value = V Me.Protect End If End Sub
Mongyuk elég kényelmetlen a használata, és biztos nagyon utálnák BB Tüncikéék, de cellákat nem tudnának húzgálni vele :o)
Esetleg elrendezhetnéd úgy az adatot, hogy a beviteli mezők és a feltételesen formázódó cellák külön munkalapon vannak. Így a másolgatás azokat nem érintené. Sőt, el is lehet rejteni munkalapokat
Ha tüncikét nem lehet lebeszélni a cellahuzogatásokról, akkor marad a kármentés: A feltételes formátumadást makrósítod. Mert akkor miután tüncike átadja táblázatot, egy gyorsbillentyűvel a színkijelöléseket helyesre állíthatod. Sőt, mondjuk a ctrl-a billentyű megnyomására talán még tüncike is megtanítható, amit megcsinálhat akár minden áthúzás után is.
"......add meg légyszíves a verziószámot, szükségem van egy ilyen excelre! " -csak vicc volt.
Gyakorlatban:
A oszlopban a védett, feltételesen formázott cellák, mellettük a beviteli cellák (B2:J10)
Ha az a oszlopban szereplő xy cég sorába bejegyzés kerül akkor a cég nevét tartalmazó cella sárgára vált,
majd az utolsó oszlopban ha készre jelentik akkor a cég nevét tartalmazó cella zöld lesz.
Erre azért van szükség mert a valóságban ez egy sokkal nagyobb táblázat rengeteg adattal és többféle formátummal,
A színek változása alapján előbb észreveszik a különböző részlegek a változásokat.
És akkor jön Balfék Béláné Tüncike, és csinál egy nyíl szerinti áthúzást. Véletlenül G3-ba írta az adatot H8
helyett, majd áthúzta a helyére. Így viszont mivel a képlet az a oszlopban követi az áthúzott adatot, a 3.sorhoz tartozó
(A3) cég cellája sárgán marad, aminek meg be kéne sárgulni (A8) az meg marad szürke.. Az utólagos helyreállítás nem fontos, viszont munka közben fontos lenne, hogy jól működjön.
Igencsak kreatívok :)))). Az ilyenek ellen nincs orvosság. Talán az oktatás. A negyedik ötödik figyelmeztetés után talán belátják, hogy felesleges kísérletezgetniük.
Bár el tudom képzelni, hogy az excelnek van egy before paste utasítása, ami egy figyelmeztető felirattal letiltja az áthelyezést. Vagy egy olyan, ami az adott lapon egyszerűen elérhetetlenné a paste-t. De ahhoz én még kezdő vagyok, hogy tudjam miként érhető ez el. Talán valamelyik gurunk megírja.
Szerintem, ha nem csak a feltételesen formázódó cellákat zárolod, hanem a teljes munkalapot, kivéve a beviteli cellákat, akkor nem igen lesz hova pakolgatniuk.
Ha csak nem egy másik beviteli cellára :))). Egy próbát megér.
Egy kis segítséget szeretnék kérni. Van egy közös használatú táblázatom. Információ-cserére készült, képlet nem sok van benne, inkább csak a beírt adatok alapján bizonyos cellák feltételesen formázódnak. Ezeket a cellákat levédtem, de van egy problémám amit nem tudok megoldani.
A felhasználók szokás szerint excel-analfabéta módon áthelyezgetik a beviteli cellákat, ha valamit nem sikerült jól, vagy jó helyre beírni elsőre.
Ezáltal mindig borul a formátum, és a feltételes formázások is. Szeretném korlátozni a felhasználóknak hogy a beviteli cellákba csak írni tudjanak, DE azokat áthelyezni NEM! Van erre valami egyszerű megoldás?
Tegnap kb. éjjel 1 óra körül már nyomon voltam, mint a vadászkutya, csak utólag derült ki, hogy jó volt az elgondolás.
A Túl sok cellaformátum okozta a bajt. Bár megpróbáltam minden felesleges cellaformázást levenni, még így is rengeteg maradt.
Írtam, hogy a Stílusok között millió egyfajta stílus volt. Arra gondolok, hogy a folyamatos Ctrl+C - Ctrl+V használattal egyrészt rengeteg formázást vittem át, másrészt egy idő után (ahogy Retro Image írta) minden cellát külön formátumúnak kezelt, hiába volt ugyanolyan.
Egyesével törölni a millió stílust halva született ötlet volt. Próbáltam megnyitni LibreOffice-szal, teljesen kiakadt tőle. Sajnos abban is csak egyesével lehet törölni a stílusokat.
Elkezdtem keresgélni a neten, és végül egy német oldalon találtam meg a megoldást.
Az oldalon található mind a három fájlt ki kell jelölni, mert egyesével nem engedi letölteni. A kijelölés után, katt a felső sorban levő Letöltés gombra. Egy SkyDrive nevű zip fájlt fog letölteni. Kicsomagolás után 3 újabb zip fájlt kapunk, ebből az XLCleaner-re van szükségünk. Kibontás után megnyitni a XLStylesTool.exe-t, a többi már értelemszerű. A programmal megnyitni a nyűgösködő fájl, mind a 4 lehetőséget kipipálni, és katt a Process file-ra. (Előtte azért egy biztonsági másolatot érdemes csinálni!)
Teszek fel képeket is, hogy lehessen látni a kezdeteket, és a megoldást. Remélem, hogy láthatóak lesznek az adatok. A középső képen látszik, hogy több mint, 50000 különböző formátum van benne, és ettől joggal akadt ki.
Nagy-nagy köszönet Mindenkinek, aki segített nekem, és az együttgondolkozással rávezettek a megoldásra!
MEGVAN a megoldás!!!!!! Ma éjjel 3-kor sikerült megcsinálnom! Ma megosztom a megoldást, hátha valakinek hasznos lesz valamikor, de most már megyek aludni! Jó éjszakát, és köszönöm mindenkinek, aki próbált segíteni az együtt gondolkozásban!
... és még valami, amit eddig csak néztem, felfogtam, de nem gondolkoztam rajta. A Kezdőlap, Stílusok menüben, ahol annak kellene megjelenni, hogy Normál, Jó, Rossz, Semleges, stb. most a következő van: 20% - 1. jelöl - és ebből millió... (és csak ezek).
Ha az egyikre rákattintok, rögtön azt írja ki, hogy Túl sok cellaformátum.
Kérdés: hogy tudnám ezt a förmedvényt innen eltüntetni? Hogy lehetne visszaállítani az eredeti Stílusokat? Ebbe egyáltalán nem piszkáltam bele, feltételezésem szerint a másolásokkal kerülhetett bele, és olyan sok, hogy már nem tudja kezelni.
Az előbb teljesen véletlenül csináltam valamit: ki volt jelölve az egész munkalap (bal felső sarokba kattintással), és a Felfedésre szerettem volna kattintani, helyette viszont az Elrejtésre kattintottam. Azt hittem, hogy abban a pillanatban el fog tűnni az egész munkalap - helyette viszont azt írta ki, hogy "Az objektumok nem vihetők a lapon kívülre."
Ezt most kezdtem végigjátszani, hogy a formázásokat újra átnézem. Minden oszlopot szöveggé alakítottam. Levettem a felesleges színeket. Töröltem a régi munkalapokat, amire biztos nem lesz szükségem ebben a munkafüzetben.
A régebbi munkalapon is töröltem a felesleges színeket.
Hibaüzenetet azt kapok bőven, az első, amivel nyitni szokott a következő:
"A vágólapon levő adatok méretükben és alakjukban különböznek a kijelölt területtől. Szeretné mégis beilleszteni az adatokat?"
Ezt már akkor is feldobta, amikor még működött, de az ok után simán beillesztette az adatot.
Most csak villan egyet, és nem illeszti be az adatot. (Míg másik táblázatnál elkezd forogni a kis karika, amíg gondolkozik, és simán beilleszti.)
Amikor nem sikerül beilleszteni az adatot, semmilyen hibaüzenetet nem ad, hogy miért is nem sikerült.
Másik hibaüzenet, amikor egy Excelen belül nyitom meg a két fájlt: "Túl sok cellaformátum"
Miközben a dátum formátumú oszlopból csináltam szöveget, ott is kiakadt néhányszor. Amikor kijelöltem az egész oszlopot, hogy szöveg formátumúra állítsam be az egészet, ott is azt írta ki egy idő után, hogy túl sok cellaformátum - ezt mondjuk egy bezárás, újra megnyitás megoldotta.
Túl sok módosítás, illetve próbálkozás után pedig totál kiakad, "A Microsoft Excel problémát észlelt, és leállt, a kellemetlenségekért elnézését kérjük. Az Excel megpróbálja helyreállítani a dokumentumot, és újranidul." (Ha jól idéztem.) - Persze nem állít helyre semmit, és nem indul újra, hanem lefagy...
Csak hangosan gondolkodom, de mi lenne, ha a "Nagy" táblázatban kijelölnéd egyesével az oszlopokat, és mindegyiknek (újra) beállítanád a formátumát?
El tudom képzelni, hogy a sok másolás/beillesztés miatt minden cella formátumát külön tartja nyilván az Excel, még akkor is, ha azok egyébként egyformák.
Ja, és egyébként van hibaüzenet, amikor nem sikerül beilleszteni az adatot? Vagy csak úgy egyszerűen nem történik semmi?
Próbálkoztam vele, rengeteg közbenső cellán megáll, minden oszlopban. Így sajnos nem is tudom, hogy mit keressek. Teljesen tanácstalan vagyok. Még akkor is működött a fájl, amikor pár éve véletlenül rosszul másoltam bele egy adathalmazt, és hirtelen 40 megás lett, igaz elég lassú volt, amíg nem javítottam. :)
Nehéz így leírni a problémát, hogy magát a táblázatot senki nem látja.
Nem értettük félre egymást, azt a táblázatot próbáltam frakcionálni, amibe alapból másolni akarok.
Kezd körvonalazódni a dolog (talán), csak a megoldást nem tudom.
Ma két informatikus kb. 2 órán keresztül dolgozott az ügyön, egyelőre még kérdéses, hogy mit sikerült csinálni, merthogy egy újraindítás után a következő hibaüzenet fogadott: "Hiányzó NTLDR" - na ekkor éreztem azt, hogy átok ül rajtam...
Tehát a két táblázat, amiből dolgozom - legyen nevesítve - "Kicsi", amiből az adatokat másoltam volna, és "Nagy", amibe másoltam volna.
Azt már délután kiderítettük, hogy az alapbaj valószínűleg nem a "Nagy" táblázattal volt, hanem a 'Kicsi"-vel. Merthogy voltak benne hivatkozások külső fájlra. Amit nem vettem észre.
Úgy gondolom - ki tudja, hogy mennyire jó az elmélet -, hogy a folyamatos Ctrl+C - Ctrl +V-vel átvihettem egy csomó hivatkozást a "Nagy" táblázatba. Ráadásul, az is kiderült, hogy nem csak szöveg formátum volt benne, hanem dátum is, amit én soha nem használok, mert kezelhetetlen.
Most megpróbáltam, hogy mind a két táblázatból töröltem a külső hivatkozásokat (Office 2007-es verzió - Adatok - Hivatkozások menüben).
Elmentettem mind a két fájlt, de továbbra sem működik a másolás.
Annyit ma kiderítettem, hogy talán október 10. és 11. között történt valami... merthogy az egyik nap még megvolt az összes munkalap, ami a "Nagy" táblázatban volt, a másik napi mentésben pedig már nem volt ott (ezt is ma vettem észre, mert sok munkalap van benne).
Lehet, hogy elég lenne csak onnan kezdeni a feltöltést, és átnézni, hogy azóta miket raktam bele? Ahhoz a táblázathoz talán tudnám használni a "Kicsi"-t újra, mert most már töröltem róla a hivatkozásokat, és minden cellaformátumot szöveggé alakítok át.
Azóta viszont a "Nagy" táblázatban alapból is nagyon sok változás volt, hiszen kb. 3000 sor van benne, így a többi gyereknél is voltak változások, ezeket mind végig kellene nézni...
Még valami, lehet, hogy minden apróságot leírok, de így hátha közelebb visz a megoldáshoz.
A "Kicsi" fájlban szöveg formátumra állítottam be a cellákat. Irányított beillesztéssel átraktam a "Nagy" táblázatba. Mivel két külön Excelben voltak megnyitva, így a felbukkanó ablakban azt választottam ki, hogy szöveget másoljon be. Ezek után viszont az egyik cellában, amiben alapból csak egy dátum van, de a "Kicsi"-ben ezt már szöveggé alakítottam, most mégis dátum formátumban jelent meg a "Nagy"-ban.
Következő lépésben kijelöltem az egész sort a "Nagy"-ban, és a cellaformázásnál szöveget akartam megadni, erre kiírta, hogy túl sok cellaformátum... amit szintén nem értek, mert a saját "Nagy" táblázatomban figyelek arra, hogy egyforma cellaformázást használjak.
Az a gyanum, félreértettél. Én azt a táblázatot frakcionálnám, amelyikbe másolni akarsz, és keresném azt a legkisebb tartományt, amelyiknél kiakad. Hiszen írtad, hogy korábban semmi probléma nem volt, tehát ha mondjuk letörlőd róla a tavalyi betoldásokat, akkor lehetséges, hogy nélkülük az ideiket elfogadja. Ha ez történne, akkor venném csak a tavalyi adatokat, és próbálnék hozzámásolni. Ha kiakad, az nagyszerű, akkor további csökkentésekkel jó eséllyel megtalálod hibát okozó cellát. Ha nem, akkor gebasz van, akkor valami túlcsordulás okozhatja a hibát, ezért újra kezdeném tavalyelöttről a feltöltést, figyelve, hogy hol akad ki.
Érdemes lenni megnézni azt is, hogy mit csinál, ha hanyagolod a ctrl-v-t és csak az értékeket másolod a táblázatodba.
Nekem is volt ilyen problémám, még excel 2003-ban. Még meg van a hibás filem, megnézem, hátha ki tudom silabizálni hogy sikerült felodanom. Mert sikerült.
És még megpróbálkoznék azzal is, hogy nem másolással, hanem hívatkozással próbálnám behívni az ominózis sort/sorokat, ami ha sikerül, már ctrl-c + írányított beillesztéssel értékké alakítható.
Egyszer hasonló gondomat egy kétségbeesett próbálkozással sikerült megoldani.
Az egyes oszlopok tetején állva Ctrl+le nyilat nyomtam, és az egyik helyen nem az alsón, hanem egy közbenső cellán állt meg. Semmi látható hiba nem volt, de a cellára hivatkozó HOSSZ függvény valami százas nagyságrendű számot adott. Ezt a cellatartalmat kellett felülírnom, és helyreállt a lelke (meg az enyém is a több napos kínlódás után).
Csak hogy újabb történeteket osszak meg a táblázattal kapcsolatban: mindenféle felesleges formázást töröltem belőle, egészen a legutolsó oszlopig (mind a két táblázatból).
Ha egy Excelen belül nyitom meg, akkor továbbra is azt írta, hogy túl sok cellaformátum.
Irányított beillesztéssel be tudom másolni, igaz, ez nagyon lassú ennyi adatnál.
Nincs erre valami gyorsabb módszer?
Olyan is volt, hogy két Excelben nyitottam meg, kiírta, hogy túl sok cellaformátum, ennek ellenére irányított beillesztéssel berakta.
Hát ha nem segít a táblázat egyben másolása, akkor próbáld meg frakcionáltan. Átmásolod az egyik felét, megnézed a beillesztést. Ha működik, akkor megnézed a másik felét. Ha azon is müködik, akkor egyelőre nincs ötletem. De ha nem, akkor a nem működő táblarészt bontod tovább, míg el nem jutsz a hibáért felelős táblarészig, ami szvsz az egyik cellád jelemzőivel függhet össze.
Csináltam egy kis 4,88 Megás táblázatot az idei tanévre vonatkozóan. Most már azt nem írja ki, hogy túl sok cellaformátum, de továbbra sem illeszt be semmit.
Sőt, hogy még szebb legyen a történet, csak úgy tudtam megcsinálni, hogy a felesleges munkafüzeteket töröltem, mert abből másolni sem enged!
Sem úgy, hogy az egész munkalapot másoljam, sem úgy, hogy csak a kijelölt részt, akár csak egy cellát is.
Azt nem írtam a hozzászólásomban, hogy az előbb ugyan nem működött a lebutított táblázat, de azóta bezártam, majd újra megnyitottam. Megpróbáltam a másol-beillesztést, és simán ment. Azt hittem, hogy egy sima mentés elég.
Most megpróbálok egy sokkal kisebb munkafüzetet csinálni (az eddigi 18,3 Megás volt), amiben már tényleg csak az idei adatok vannak. Most már én is kíváncsi vagyok, hogy valóban az lenne a gondja, hogy túl sok cella volt benne? Valahogy eddig úgy gondoltam, hogy korlátlanok a lehetőségeim. :)
Valami hasonlón én is gondolkoztam, hogy egy év egy munkafüzet (abba alapjáraton 4-5 munkalapnak kellene lennie - de csak 2-n van sok adat, de akár csak ezzel a 2-vel is megoldható.)
Így lényegesen kisebb lenne a fájl. Megpróbálok egy régebbi mentésből csinálni egyet, ami még működött. Viszont odalesz egy csomó munkám, amit eddig csináltam - és ami bosszantó, hogy már rég késznek kellene lennie...
Amúgy aranyos az optimizmusod - a következő 10 évre vonatkozóan! :)
Az előbb egyszerre írtunk, most olvasom csak ezt a válaszodat. Azt írod (ha jól értem), hogy a lebutított táblázatot úgy készítetted, hogy töröltél munkalapokat, és mégsem működik.
Sajnos nem tudom, hogy ilyenkor az Excel hogy dolgozik, de megpróbálnék egy másik módszert, hátha úgy működik: Próbáld meg a lebutítást ne munkalapok törlésével, hanem a megőrizendő munkalapok kijelölésével (tudod ctrl + a kimásolandó munkalapokra kattintás) kimásolni új munkafüzetbe. Hátha ezzzel már működik. Lehet, hogy szamárságot írok, de egy próbát megér. Ha ez sem megy, akkor sajnos nincs más ötletem.
Bocs, figyelmetlen voltam (ismét). Most olvastam el a 19175-ös hozzászólásodat, ahol leírtad, hogy 23 munkalapod van, és ezek egy része a hivatkozások alapja. Tehát 3000*125=375 000 adat/munkalap, és ebből van 23, azaz 8 675 000 cella. Ez valóban kicsit soknak tűnik.
Én megpróbálkoznék valami olyasmivel (az sem lesz kevés munka, de talán működik), hogy az utolsó év adatainak nyitnék egy új munkafüzetet. A hivatkozásokat ebbe is át tudod venni a régebbi (jelenlegi) munkafüzetből (hiszen nem csak egy munkafüzeten belül lehet hivatkozni). És akkor innentől kezdve a következő 10 év adatai ebbe a fájlba kerülnek. Vagy talán meggondolandó a jövőben csak egy-egy évet tartani egy munkafüzetben.
Igen - teljesen jól értelmezted, hogy évente két új munkalap van a táblázatban - 2005 óta. Annyi különbséggel, hogy kezdetben még korántsem volt ennyi gyerek, és nem kellett ennyi adatot nyilvántartani.
Az évek során alakult úgy, hogy egyre több és több adatot raktam bele, hogy az éves statisztika idején csak rászűrjünk, és könnyebben tudtunk dolgozni.
Az évek alatt két összevonást értünk meg, így tavaly duzzadt fel 3000-es létszámra az iskola - vele együtt a táblázat is.
Most nagyon úgy érzem, hogy teljesen ingoványos talajon vagyok már Excel tekintetében... a makrókról sajnos fogalmam nincs.
Igyekeztem minden munkalapon ugyanolyan formázásokat használni. Azaz ugyanolyan betűtípust, betűméretet, színt, cellaformátumot. Nem tudom, hogy ezt egynek kezeli-ez az Excel, vagy minden egyes cellát teljesen külön számolja a cellaformátumnál?
Csináltam két lebutított táblázatot. Az egyikben csak két név van. (Nem az adatok törlésével, hanem sorok törlésével.) A régi munkalapokat töröltem belőle.
Ebbe szeretném bemásolni a másik táblázatban szereplő immár csak egy nevet. Így sem engedi.
Talán annyi szerencsém van, hogy minden nap mentek egy táblázatot adott dátummal. Így akár nem is kell archiválni, hiszen megvannak a régi fájlok. Csak erről kellene törölni a régi munkalapokat - de a mostani butított változatban megtettem, és még így sem működik.
Vannak viszont olyan munkalapok, amik a fájlon belüli hivatkozások alapjai, így azokat nem tudom törölni.
Megpróbálom, hogy mit lehet tenni a mellékelt Excelben lévő makrókkal, de ilyet soha nem használtam... úgy látszik, épp itt az ideje.
A leírások szerint az Excel 2007-es verziója 64000 különböző cellaformátumot tud kezelni (szemben a 2003-as 4000 cellaformátumával). A hibaüzenet szerint feltehetőleg ebbe ütköztél bele.
Nem tudom, jól értelmezem-e azt a mondatodat, hogy minden tanévhez 2 új munkalap tartozik. Mert ebből arra következtetek, hogy két 3000x125 méretű táblázat van a munkafüzetben minden évről. Nem lehetne esetleg régebbi évek archiválásával csökkenteni a munkalapok számát?
„Ha egy Excel-munkafüzetben már kevés a szabad cellaformátum, vagy ha már a "Túl sok különböző cellaformátum szerepel." hibaüzenetet kapjuk, végezzük el a különböző cellaformátumok számának csökkentését. Ez megtehető akár az alábbi módok egyikével is:
A meglévő cellaformázások egységesítésével csökkentsük a használt formátumok számát. Itt óvatosan kell elindulni, mert ha pl. megszűntetjük egy cellatartomány kitöltését, ezzel lehet, hogy újabb, eddig nem használt formátumokat is létrehozunk, és átmenetileg növekedni fog a különböző formátumok száma. Ha e folyamat során már kevés a munkafüzetben a még szabadon használható formátumok száma, és közben bejön a fenti hibaüzenet, ezt az eljárást is szakaszosan, mentésekkel és újra megnyitásokkal lehet elvégezni. Jelen sorok írója kísérleti jelleggel ezzel a módszerrel egy maximálisan formázott munkafüzet egyedi formázásait lépésről-lépésre törölte, és az így létrehozott formázás nélküli, de minden további eredeti információt tartalmazó munkafüzetben 4000 körüli szabad formátumszámot sikerült megvalósítani.
Bontsuk szét az adott (több munkalapból álló) fájlt két vagy több kisebb fájlra. Ez a módszer akkor használható, ha van reményünk arra, hogy a széttagolás után visszamaradó illetve létrehozott új fájl(ok)ba olyan munkalapok kerülnek, amelyek nem viszik magukkal a hibaüzenetet okozó sok cellaformátum mindegyikét.
Jelen sorok írója ezt a módszert már többször alkalmazta sikerrel az alábbiak szerint:” stb.
Sajnos az e-mail még nem érkezett meg... :( lehet "Bagaméri" néven kellett volna regisztrálnom - meg vagyok átkozva! :)
Egy gyerekhez egy sor tartozik. Nincsenek üres sorok, névsorban van benne az összes gyerek.
Minden gyerek mellett a hozzá tartozó adatok vannak - persze már amit tudok róla. Mert bizony előfordulhat, hogy nincs meg a lakcíme a gyereknek, és akkor azok a cellák üresek maradnak.
Üres oszlopok sincsenek - de vannak olyanok, ahol nem minden gyereknél van benne adat.
Ma fedeztem fel egyébként azt is, hogy eltűnt egy munkalap belőle, de azt sikerült visszamásolnom... na ezt sem értem. Ott működött a másolás, igaz, nem elsőre...
Utána próbáltam megint egy sort bemásolni, megint nem ment.
Évek óta ezzel a táblázattal dolgozom. Minden tanévhez 2 munkalap tartozik. Soha nem volt vele ilyen bajom.
Amit észrevettem - és nem tudom, hogy ennek van-e jelentősége, hogy amikor az Alt+F11-el megnéztem, hogy van-e benne makró, az "EnableSelection" sorban az egyik táblázatban 0 az érték, a másikban -4142 (sőt táblázaton belül munkalapokon is van eltérés) - ennek van esetleg jelentősége?
Ja - és csak hogy teljes legyen a gyönyör... már úgysem lehet másolni, hogy egy Excelben van a két táblázat, mert azt írja ki, hogy túl sok cellaformátum.
Ami megint csak érdekes, mert általában "szöveg" cellaformátumot használok... csakhogy most nézem, hogy amit kaptam, abban van dátum is... :(
Küldtem mailt arra a címre, amivel ide regisztráltál.
Egy 125 oszlopos táblázat nekem marhasoknak tűnik... ez azt jelenti, hogy 124 adat tartozik egy gyerekhez? Vagy egy sorban több gyerek neve is van? Mert az nem valami előnyös, mondhatni elhibázott táblázatfelépítés lenne. Ugyanígy nem túl jó ötlet elrejteni oszlopokat/sorokat. A leghatékonyabb elrendezés szerintem az, ha adatbázisszerűen szerepelnek az adatok a táblázatban. Tehát egy gyerek egy sor, nincsenek üres sorok, oszlopok, lehetőleg cellák sem a tömbben.
Én még mindig reménykedek abban, hogy lehet egy FKERES függvényt csinálni a problémádra vagy írni egy makrót, de anélkül, hogy látnám a táblázatot, nem tudok nagyon mit mondani.
Aludtam rá egyet, így sem lett jobb. Ezzel a táblázattal már egy hónapja késznek kellene lennem. Máskor simán ment, de most hirtelen nagyon sok adatot kaptam hozzá.
A tegnapi válaszod nagyon köszönöm! Megpróbálom összeszedni a tegnap írtakat, hátha ez közelebb visz a megoldáshoz.
Tehát adva van két táblázat. Az egyikben kb. 3000 sor van, ami neveket, és a hozzá tartozó adatokat tartalmazza. A másik táblázatban ugyanolyan adatszerkezetben csak 460 név van. A 460 névből jó része már benne van a nagy táblázatban, egy része viszont nincs. Egy iskolai adatbázisról van szó, amiben az iskola összes tanulója benne van. A 460 gyerek csak az egyik telephelyé, a 3000 az összes. Mivel évente változnak az adatok, hogy hova jár a gyerek, és a két táblázatban egyeznek-e az adatok, így egyesével végig kell nézni mindegyiket.
Ez miatt sajnos sem függvénnyel sem makróval nem lehet összerakni, mert sokszor nyomozni kell, hogy hova veszett el a gyerek.
Az újakat pedig az összes adatával be kell másolni a nagy táblázatba. Ezért hol egész sort, hol csak egy cellát másoltam... eddig.
Merthogy eddig ez tökéletesen működött. Egy másik kb. 1100 soros táblázattal már végigjátszottam ezt.
Eddig is úgy csináltam, hogy két külön Excel volt megnyitva, mert akkor a rejtett oszlopokat is kezeli - mert maga a táblázat a DT oszlopig terjed, így rengeteg adat van benne, amire most nincs szükségem.
Ha viszont egy Excelben nyitom meg a két táblázatot, akkor a rejtett oszlopokból a másolást már nem kezeli, akkor fel kell fedni az oszlopokat (többlet idő).
Ha másként nem működik, akkor nyilván marad ez a megoldás... de a két Excellel való munka sokkal-sokkal gyorsabb lenne.
Kipróbáltam sok mindent... másik üres Excelbe tökéletesen átmásolja az adott sort. Másik táblázatból sem másol viszont ide, amit szeretnék. Egyedül az a táblázat szabotál, amiben a 3000 gyerek van - azaz pont az a táblázat, amire a legnagyobb szükség lenne később is.
A táblázatban sok munkalap van, egyikbe sem tudom beilleszteni az adatot Ctrl+V-vel.
Megnéztem tegnap azokat, amiket írtál... a makrók között sajnos egyáltalán nem ismerem ki magam, de sehol nem találtam makrót, rá utaló kódot. Office 2007-et használok, a beépülő modulokat sehol nem találtam (még a súgóban sem).
Bosszant, hogy kifog rajtam... és valahogy az az érzésem, hogy valami kis piti dolog van a háttérben, csak nem tudok rájönni. :)
Nem tudom mire gondolsz mondjuk egy oszlopdiagramnál realisztikusabb ábrázolásnál. :D Esetleg lehetne valami olyasmi, hogy úgy nézzen ki a diagram, ahogy maguk a polcok. Pl. egy vízszintes oszlopdiagram (Hogy hívják az magyarul? Angol excelben bar chart). Lehetne az egyik érték az a százalék, ami már foglalt a plocon, a másik meg az, ami még nem. Együtt kiadná a száz százalékot, úgy nézne ki kb. mint a loading csík telepítésnél.
1.: az excel több példányban fut (megoldás: zárj be mindent, majd nyisd meg az egyik file-t. A másik fájlt mindenképp a fájl/megnyitás módszerrel nyisd meg)
2.: fut valami makró a háttérben ami használja a vágólapot (mo.: alt+F11 és nézd meg, a bal oldali objektumfában, hogy van-e kód bennük)
3.: valami beépülő modul (add-in) zavar be (mo.: tools/addins - magyarul talán eszközök/beépülő modulok - és szedd ki az összes pipát)
Remélem sikerül megjavítani. Egyébként ha több ezer sort kell összeraknod egyesével, akkor könnyen lehet, hogy megéri makróval vagy függvénnyle próbálkozni. Ha akarod, segítek.
Adott egy excel táblázat, amiben van 4 oszlop, 1 sor. Az adott sor minden oszlopában egy szó. Egy ötödik oszlopban (E) az ÖSSZEFŰZ függvénnyel egy mondattá fűzöm az előző oszlopk tartalmát:
A B C D E
1 Hull az elsárgult levél Hull az elsárgult levél
Az E1 cella tartalma =ÖSZZEFŰZ(A1;" ";B1;" ";C1;" ";D1)
Ezt követően már nincs szükségem az A1 - D1 cellákra, de ha e3gyszerűe kitörlöm, akkor értelemszerűen eltűnik az E1 tartalma is.
Az volna a kérdésem, hogy létezik-e olyan megoldás, amellyel egy adott számított cella tartalma felveszi az erediteligen benne lévő képlet eredményét(értékét)?
Másképp megfogalmazva: Meg tudom-e oldani hogy az összefűzés után a cella tartalma ne a függvény legyen, hanem a 'Hull az elsárgult levél' szöveg'? Ja, és az A1 - D1 cellák elrejtése nem jó megoldás.
Régóta Excellel dolgozom, de ma olyan problémával találkoztam, amit nem tudtam megoldani.
Két táblázattal dolgoztam, két külön Excelben voltak megnyitva. Ctrl+C - Ctrl+V -vel másoltam az adatokat (egész mondatot, vagy csak egy cellát) az egyik táblázatból a másikba. Egy idő után a másolást nem lehetett megcsinálni. Az adat a vágólapon volt, de nem lehetett beilleszteni sem billentyűparanccsal, sem egérrel. Ugyanezt az adatot egy másik táblázatba simán be lehetett illeszteni, csak a fent említettbe nem. Nincs semmi védelem beállítva a táblázaton. Másik gépre átmásolva ugyanez a probléma vele. Mit állítsak be, hogy működjön? A táblázatban sok rejtett oszlop van, így irányított beillesztést nem tudok használni, ráadásul nagyon lelassítaná a munkám, mert több, mint 3000 sort kell összeraknom.
Két ugyanolyan felépítésű táblázatról van szó, más adatokkal, ugyanazok az oszlopok vannak elrejtve.
Bezárás, újra megnyitás után sem változott semmi.
Sajnos a munkám alaptáblázata lenne, így sürgős segítség kellene, hogy tudjak dolgozni! Ha valaki rájönne a megoldásra, és megosztaná velem, nagyon-nagyon megköszönném!
Egy olyan kérdésem lenne, hogy lehet-e a grafikonokkal a következőt ábrázolni:
Van egy polc amin vannak 500-val termékek. És ahogy csökken az értéke a kivonás miatt ezt szépen a "nagy embereknek"(senkit nem megbántva) ábrázolni lehetne. Magyarul csak kicsit dizájnolni akarnám a dolgokat.
És ennek a fordítottja:
Lenne egy raktár amiben megvan hogy pontosan 150 doboz fér be. Ahogy csökkenne a "polc" úgy nőne a raktár telítettsége.
Csak ezt nem sima kör vagy oszlopdiagrammal szeretném hanem valami realisztikusabb ábrázolással. Lehet-e ilyet Excellel? :)
Ez az új típusú formátum felülírásod kurva hasznos tud lennni. Mint írtam már, én a value-copyra általában a ctrl+c, ctrl+e-t használom. De van amikor elcseszem, és ctrl+v-t ütök. Ami igen ijesztő eredményre vezethet, ha relatív hivatkozású képleteket visz át. De a ctrl+e-vel azonnal korrigálható.
Eszembe jutott még egy megoldás: sima ctrl+C --> Ctrl+V-vel másolsz, és utólag rákattintasz a megjelenő kis ikonra a bemásolt szövegnél, a lenyíló menüben meg kiválasztod, hogy csak értéket. Variációk egy témára... :P
Bocs, ezt tényleg elnéztem. Figyelmetlen voltam, nem olvastam végig a szöveget.
Csak azt nem értem, hogy mitől egyszerűbb egy makrót meghívni, mint a meglévő egyszerű módszert használni (igaz ez 2 gombnyomást igényel, szemben a hozzárendelt billentyűkombinációval).
Erre nagyon egyszerű módszert kínál az Excel, mégpedig az irányított beillesztést. A másolást megcsinálod ctrl+c-vel, de a célterületre állva nem a ctrl+v-t használod, hanem az irányított beillesztést (egér jobb gomb, vagy szerkesztés menü). Ez a beillesztés módjának széles skáláját ajánlja fel, neked ebből az érték beillesztése kell.
Ha írsz rá egy makrót. Baromi egyszerű, ha a makrorögzítővel csinálod. Aztán hozzárendelsz egy betüt. Nálam a CTRL+C CTRL+E-vel müködik ez funkció. Persze az is lehet, hogy az excelnek van erre saját billentyükombinációja.
Igazad van. Rosszul használtam a terminuszt. De a kvázi képletem elvben hasonló a tiedéhez. Csak éppen excel szintaxissal, ami jelen esetben nem hátrány.
Kösz. Nem ismertem. A wiki alapján azonban úgy vélem, hogy a jelen példában nem sok hasznát vennénk, mert a regularis kifejezések (az email címek) már eleve külön oszlopba vannak gyüjtve. Viszont ezt a választ írva beugrott egy kvázi reges megoldás, ami némi hibaszázalékkal ugyan, de lényegesen egyszerübb képlettel is alkalmas lehet az abcdefg@abcdefg.hu típusok megtalálására. Ha mondjuk az email címek az A oszlopban vannak, akkor
Az egy olyan kis miniprogramnyelv, amit számos programnyelv támogat (bizonyos mértékig az Office is, mert valami lebutított változat elvben használható a szövegek keresésénél és globális cseréjénl, csak gyakorlatban nem). Szövegminták keresésére, cseréjére való. Például mint a lenti kérdés.
Az első kérdésedre az irányított szűrőt javaslom, amelyhez annyi kritériumot határozol meg, ahány betűkapcsolatra akarsz rákeresni, majd ezeket csillagok közé írod. pl. *bt*, *zrt* stb., mindegyiket külön sorba. Ha például a D10 az emailcímek fejléce, akkor krit lehet d1,e1,f1-ben +d10,+d10+d10, a krit tartomány d1:f4, és a beírások, d2-be: *bt*,e3-ba:*rt*, f4-be:*kft*.
A bonuszra pedig ezt képletet ajánlom egy segédoszlopba:
Az lenne a kérdésem, hogy hogy tudom úgy kijelölni azokat a cellákat egy adott oszlopból, amelyek egy bizonyos stringet tartalmaznak?
Arra lenne szükségem, hogy a céges e-mail címeket kiválogassam, tehát amik kft -t, bt -t stb tartalmaznak, azokat szeretném szűrni.
Bónusz kérdésként :) az is érdekes lenne, ki azokat is ki lehetne jelölni, amik ugyanazt a stringet tartalmazzák '@' előtt és után, mert az is jellemzően céges. (cégnév@cégnév.hu)
Írtam egy kis programot. Ha be tudod másolni Visual Basic ablakban, akkor lefuttathatod makróként. A lényeg, hogy megkeresi azokat az adatokat az "A" oszlopban, amelyek értéke nem 0, és ezeket tömörítve a "C"-be teszi (Ha C nem jó, akkor tudod javítani más oszlopra). És ebből már tudsz olyan grafikont készíteni, amilyet szeretnél:
Sub adatrendezés()
Dim sor As Integer, sor2 As Integer, usor As Integer, ujoszlop As Integer
usor = ActiveCell.SpecialCells(xlLastCell).Row ' Utolsó sor kiolvasása
sor2 = 0
ujoszlop = 3 ' Ez a 'C' oszlop. Ha ez nem jó, akkor a "D" oszlop értéke 4, és így tovább.
Az A oszlopban muszáj, hogy képlet legyen. Természetesen amint mondjuk van adat pl B140 cellában akkor már tud számolni egyenleget és meg is jeleníti azt A140-ben.
Köszi a megoldásokat...meg fogom nézni, bár egyelőre nem sokat értek belőle. Kezdő exceles vagyok még...
Dinamikus diagrammot kellene készíteni, ami csak annyi adatot ábrázol amennyi van.
Ha jól értem az A oszlopban (nevezzük képlet oszlopnak) csak A142-ig vannak ábrázolandó adatok, ami azt jelenti, hogy van másik oszlop (nevezzük adat oszlopnak), ami csak eddig van kitöltve adattal. Ha beírsz egy új adatot az adat oszlopba, akkor a képlet oszlopban megjelenik az ábrázolandó adat.
A megoldás (régi módszer):
nevet adsz az ábrázolandó tartománynak és a nevet az OFFSET fv segítségével dinamikussá teszed. A grafikon erre a névre hivatkozzon.
B megoldás:
Azokba a cellákba ahol nincs mit kiszámolni, fölösleges képletet írni előre. Tehát a képlet oszlop csak akkora amekkora az adat o.
Készíts egy grafikont ami ábrázolja a képlet o. értékeit.
Az egész táblázatodat (képlet+adat) un. excel táblává kell alakítani (format as Table v. insert Table, 2003-as verzióban Create List)
Ha új adat kerül az adat oszlopba, úgy a képlet o. lévő képlet automatikusan beíródik és megjelenik az ábrázolandó mennyiség. A grafikonod pedig ettől kezdve dinamikusan változik.
1. nevezd el a 9. sorodat hetek-nek, a 10. sort termék1-nek, a 11. sort pedig termék2-nek (szóköz nélkül, tehát nem termék 1!!)
2. a B20-as celábba a következő képletet írd: =B19-INDEX(INDIREKT(B$18),HOL.VAN($A20,hetek,0)). Ezt másolhatod lefelé és jobbra is.
(ha nem nevezed el a tartományokat, akkor a képlet a következő:
B20=B19-INDEX($10:$10,HOL.VAN($A20,$9:$9,0))
C20=C19-INDEX($11:$11,HOL.VAN($A20,$9:$9,0)) ezek csak lefelé másolhatók)
Kiegészítés:
hun/eng HOL.VAN/MATCH, INDIREKT/INDIRECT
Magyarázat:
A HOL.VAN fv. megkeresi az A oszlopban lévő értéket (pl. 47 hét) a hetek elnevezésű tartományban (ill. a 9. sorban) és eredményként megadja a pozícióját pl. 20. Az INDEX fv megkeresi a termék1/termék2 tartomány (ezt olvassa be az INDIREKT fv a B ill. C18-as cellákból) x-edik pl. 20. elemét és megadja az ott lévő értéket.
Remélem érthető.
SQLkerdes az OFFSET fv-t javasolta, ami szintén tökéletes. Az OFFSET magyar neve OFSZET ill. 2010-es Excelben ELTOLÁS.
Az OFFSET fv vagy egy megadott magasságú és szélességű tartományt ad visszaeredményül, vagy ha a tartomány csak egy cella, akkor az ott lévő értéket. OFFSET(ref pont,sorsz,oszlszám,mag,szél). A Te feladatodban az A10-es cellától 0 sorra és változó számú oszlopra lévő cella értékére vagyunk kiváncsiak. Lefelé másolva a fv-t mindíg eggyel nagyobb oszlopszámot kell megadni, ezért javasolta SQLkerdes a ROW/SOR fv-t, ami eredményül a megadott cella sorszámát adja vissza (ebben a példában 17-et, ami a képlet lefelé másolásával mindíg eggyel nagyobb lesz).
Nem vehet fel 0 értéket sohasem. Viszont a fontos, hogy pl: A1:A600 -ig van az adatsor tartomány...de pillanatnyilag csak A1:A150-ig van benne szám. A többi ugyebár üres cella /illetve képlet van benne/.
Na ezeket az üres cellákat nem kéne, hogy 0-val rajzolgassa a vonalgrafikon.
Olyan problémába futottam, ami meghaladja Excel-tudásomat. Adott egy munkakezdéseket és munkavégzéseket tartalmazó táblázat, és amellett, hogy a napi munkaórák számát kell számolni, az is szükséges, hogy a 22:00 és 6:00 közé eső órákat külön számoljuk. ez utóbbi nem sikerült, egymásba ágyazott képletekkel próbálkoztam, kevés sikerrel.
Valami olyasmit kellene képletbe foglalni, hogy ha a végzés időpontja 0:00-6:00 vagy 22:00-24:00 közé esik, akkor azt az éjszakai műszak végéhez írja és onnantól már lehet számítani a 22:00 eltelt időt.
Az előfordulhat, hogy egy megjelenítendő cella nulla értéket vesz fel? Mert ha nem, akkor lehet csak arra koncentrálni, hogy az első nulla érték előttig ábrázoljon a grafikon. Ez meglehetősen könnyű, csak előtte tisztázzuk, hogy ez helyes-e.
Ha egy ábrázolandó cella felvehet nulla értéket, akkor viszont meg kéne mondjad, hogy hogy lehet megkülönböztetni az ábrázolandó és a nem ábrázolandó nullákat.
Adva van pl A1:A500 oszlop amiben minden sorban egy képlet van. Néhány közülük mondjuk A1:A142 már számot tartalmaz. És idővel ahogy egyéb adatok kerülnek a táblázat egyéb oszlopaiba itt megjelennek a számok.
Röviden ezek túl.képpen aktuális egyenlegközlő cellák.
A grafikonom adatsora A1:A500-ig tart és sajnos a nemlétező adatokat /amiben jelenleg még csak képlet van/ megjeleníti 0-val. Így az egyenlegközlő vonalgrafikon butaságot mutat.
Hogyan tudnám ezt kiküszöbőlni? Persze azon kívül, hogy az adatsort megváltoztatom A1:A142-ig. Szóval az kellene, ha a cella üres akkor ne rajzoljon tovább csak ahol már van szám....
Nekem ugyan 2003-as verzióm van, és az elérési utamban office2011 szerepel (nem office2012) de megvan. És feltételezem, hogy sokminden nem változhatott, ezért feltöltöttem ide: http://data.hu/get/5711608/FUNCS.XLS
Egyébként egy másig fórumon ezt találtam: "...ha a telepítésnél nem tiltották le, akkor a "C:Program FilesMicrosoft OfficeOffice121038"-nek megfelelő mappában van egy funcs.xls, amiben benne van a munkalap és a makrófüggvények "fordítása" is." Nézz utána, hogy nálad a telepítéskor nem lett-e esetleg letiltva. Hacsak a 2010-ből ki nem felejtették, vagy nem nevezték-e át valami más hasonló névre.
Nézz utána az OFFSET-nek vagy az INDEX-nek. Ha ezekbe beteszel egy COLUMN függvényt, akkor ahogy oszloponként húzod (i.e. másolod) a kész függvényt, a COLUMN-ban lévő relatív hivatkozás is "jobbra megy", vagyis a COLUMN függvény egyre nagyobb számokat generál, amit az INDEX v. OFFSET arra tud használni, hogy változzon az általuk hivatkozott oszlop.
Ha sok ilyened lesz egy lapon, akkor ne az OFFSET-et használd, hanem az INDEX-et.
ha valaki vette a fáradságot és töprengett a kérdésemen, köszönöm, de közben sikerült egy működőképes, nekem megfelelő utasítássorozatot találni, ami valszeg elég gagyi (legalábbis szokatlan megoldás), de nekem teljesen jó lesz; közlöm, hátha másnak is volt ilyen gondja
Ettől még érdekelne persze, hogy az előzőleg beírt rutin miért nem működik
Function WorkbookOpen(WorkBookName As String) As Boolean '
WorkbookOpen = False
On Error GoTo WorkBookNotOpen
If Len(Application.WorkBooks(WorkBookName).Name) > 0 Then
Egy olyan Excel alkalmazással kell küzdenem, ahol a képernyő mindenféle gombok nyomogatásának hatására egyéb Excel-fájlok nyílnak ki és csukódnak be - ezzel nincs is bajom, nyitogatom, csukogatom a fileokat, ha módosítás történt bennük, el is mentem őket...szóval eddig jó...
Ha lenne olyan kedves valaki és tudna mutatni nekem egy olyan rövid rutint, ami az egyik gombnyomáskor lefutna és a következőt csinálná:
vizsgálja meg, hogy nyitva van-e egy mondjuk "proba.xls" nevű fájl, próbálja kinyitni, ha nem sikerül, vegye észre ha az nem is létezik és ekkor hozza is létre
Valahogy úgy érzem, ez igazán nem lehet nehéz, de a neten talált ehhhez hasonló funkciókat negvalósító rutinok egyszerűen nem futnak le a masinán - vagy azért, mert olyan utasítás nem létezik vagy nem értem, mi a baj a beírt rutinnal
Mondok rá példát - itt egy végtelenül leegyszerűsített, netről szedett példa:
dim wbook as Workbook
Set wbook = Workbooks("proba.xls")
if wbook is Nothing then
msgbox("egyik")
else
msgbox("masik")
end if
ennél például már leáll a set sornál out of range hibával
Csak pusztán az érdekesség kedvéért: Ha C2-be a hatásfok kritériumának ezt a képletet írjuk be: =AB.MAX($A$10:$D$24;3;B1:B2), akkor B2 teljesítménykritérium esetén az =AB.MEZŐ(A10:D24;4;B1:C2) képlet szintén kiírja a D oszlopból az adott teljesítményű legjobb hatásfokú motort.
Az csak egy példa volt! Nagyon más az elhelyezkedése :)
C oszloptól tart BN oszlopik és 6sortól 20-ig vannak a termékek. De közben rájöttem, hogy az abszolult és relatív hivatkozással megoldható, hogy csak "le kelljen húznom" :)
Nem állítom, hogy tökéletesen értem a problémádat, de ha nekem kellene egy b10:d24 adatbázisból kiválasztanom a b-oszlopban levő teljesítményekhez tartozó b2-vel kiválasztott d oszlopban levő motorok közül a c oszlopban levő hatásfokuak közül a legjobbat, akkor kiegészíteném az adatbázist az a-oszloppal, végigszámozva őket 1-24-ig, majd az alábbi függvényt alkalmaznám:
Az L4:L16 tartományban vannak a hatásfok értékei...
Lehet, hogy az nehezíti a dolgot, hogy pl az L16-ost nem választhatja, mert az már nem felel meg az A38:A39-ben leírt kritériumnak... mert azok már nagyobb telj-re vannak méretezve... persze kijelölhetném azt a 2 cellát, ami csak azt a 2 típust jelöl, de rengeteg más paraméterekkel rendelkező dolgonál jön elő ugyanez a probléma....
Még annyi, hogy, ha #szám!-ot ír ki mert több is megegyezik, akkor azt melyik képlettel tudnám beállítani, hogy azt jelenítse meg amelyiknek egy másik 2 cellában lévő értéke nagyobb!
Konkrétan ez a függyvény azt szolgálja, hogy egy adott teljesítményre milyen motortípust kell alkalmazni, az előzőre dobja ki a motor nevét (csak nem 'telj'-t kell beírni hanem 'tipus'-t), na most ha egy adott teljesítményre 2 típus van, akkor a nagyobb hatásfokúnak a nevét kellene kiíírnia, a hatásfok értékei egy másik oszlopban és sorban vannak...
Beírtam az általad javasolt kódsort, de valamirét most is a jelszó begépelése+ENTER után tovább ugrik az OK (CommandButton1) gombra. A CommandButton2 = Cancel
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CommandButton1_Click
End Sub -----------------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
If TextBox1.Text = "jelszó" Then Worksheets("munka1").Activate Range("A2").Select Range("A1").Select ActiveWindow.Zoom = True Else MsgBox Title:="Password ", Prompt:="A jelszó hibás!" End If
Kiprobáltam amit Delia10 javasolt - neki is köszönöm a segítséget - ott tovább ment a kívánt oldalra, de aztán Hibaüzenettel leállt a kódsor futása (valamit nem talált.)
Heti lebontásban van mennyit kell teljesítenünk. Nekem van egy készletem. Azt kellene megldanom hogy ha 41 hétre való van akkor gönyölítve vonja ki, hogy meddig elég.
Pl
A1-ben van, hogy 3000db van.
41 héten 1000db kérnek
42 héten 1000db kérnek
43 héten 1000db kérnek
Azaz 3 hétre elegendő a készlet.
Az A1-ből 3000ből levonja a 41 hetit még marad akkor levonja a 42 hetit majd a 43 hetit és mivel eléri a nullát megáll.
Ezt a "göngyölítést" lehet valahogy automatizálni.
Ezt úgy értelmeztem, hogy Enter lenyomása után először vizsgálja meg a beírt jelszót, és ha jó, akkor menjen a megadott oldalra :)
Másképp fogalmazva tegye ugyanazt, mintha a parancsgombra kattintottál volna.
A TextBox-nak van egy KeyUp nevű Event-je. Ezzel lehet az entert lekérdezni. Az alábbi kis kód Enter billentyűt (melynek kódja 13) felengedésekor végrehajtja a parancsgombhoz rendelt kódot.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then CommandButton1_Click End Sub
a segédtáblába egy külön oszlopba fűzd össze az a és b oszlopot (pl =F1&G1) és az adattáblában erre keress rá fkeressel pl =FKERES(A1&B1;$E$1:$H$3;4;0)
Van egy segédtáblázatom, illetve egy adattáblázatom A,B és C oszlopokkal. Az adattáblázatban azt szeretném megvalósítani, hogyha kitöltöm A és B oszlopokat és egyezés van a segédtáblázattal akkor a segédtábla C értéke autómatikusan jelenjen meg. (ezt pirossal jelöltem)
Előző kérdésemet kérem tárgytalannak tekinteni. :)
Inkább azt kérdezném meg, hogy mit kell ahhoz beállítani a TextBox-panelen, hogy a helyes jelszó begépelése után Entert nyomva Ne a parancsgombra (OK) váltson a TAB, hanem menjen a megadott oldalra.
Csak az A4-be írom be, azért kell $ nélkül, hogy a formátummásolóval való másolás működjön. Különben minden állatnév a J4-nek megfelelően színes vagy nem színes.
Használnék pár segédoszlopot valahol jobbra, ahol van hely (később 0-ra lehet venni a szélességét, ha már működik)
Ott minden sorba beírnám, mondjuk vegyük a H10 cellát, Bal(B10;(Hossz(B1))=B1.
Ez IGAZ vagy HAMIS értéket ad vissza a soron. Ezután J10-be: Ha(És(Hossz(B1)>1;H10);1;0) - így csak akkor lesz itt 1, ha már legalább két karaktert beírtunk B1-be, és az egyezik a B10 elejével.
Utána az A4-től kezdődő feltételes formázásnál feltételnek képletet kell megadni - mármint CSAK A4-re. A képlet natúr egyszerűséggel csak =J4. (Az abszolút hivatkozást vissza kell javítani relatívra!) Ezután a formátummásoló ecsettel végigvisszük a formátumot az A oszlopon, és működik.
Miután beírom a függvényt a szükséges helyre, beszíneződik az egész oszlop, a "Kiemelendő:" helyre beírva a két kezdőbetűt össze-vissza színez, vagyis nem az adott osztályhoz tartozó sorok (fajok) lesznek színesek, hanem teljesen mások. :) Egyébként 2007-es Excel-en tesztelem ezt a dolgot.
Igen. Ha nem működik az OK után, akkor nyisd meg még egyszer, és vedd le a felesleges idézőjelet, amit az Excel odapakol. Én 2000-es verzióban teszteltem, ott másképp néz ki.
Nem gond az ütközés, ez csak egy korábbi OKTV-s feladatsor része és ki szeretném próbálni. Az általad megadott képletet a feltételes formázáson belül a "Formázandó cellák kijelölése képlettel" ablakban kell megadni, miután kijelöltem a megfelelő oszlopot?
Egy, az állatokat rendszerbe soroló tárgykörrel kapcsolatos problémám lenne. Adott két oszlop: Faj (A4:A268) és Osztály (B4:B268). Van több is, de jelen helyzetben irreleváns. A1-ben szerepel: "Kiemelendő:", míg B1-ben a beírandó betűk, mégpedig az Osztály oszlopban szereplő osztályok első két kezdőbetűje (Emlősök=em, vagy kétéltűek=ké és így tovább). Nos, azt szeretném megvalósítani, hogy ha a "Kiemelendő:" után beírom az adott osztály első két kezdőbetűjét, akkor az ahhoz az osztályhoz tartozó fajok (de csakis azok) színes háttérrel és betűvel jelenjenek meg.
Feltételes formázásra gondolok elsősorban, de, hogy azon belül milyen képletet, függvényt, kijelölést kell alkalmazni, nem tudom. :) Ebben kérném segítségeteket. Előre is köszönöm!
Köszönöm szépen a választ, igen tudom hogy nem egyszerű a megoldás és az elgondolásom is olyan, hogy valamelyik rejtett sheeten elmenteni az összes belépő nevét, és mellete lévő oszlopban a jelszavát. A belépő nevek fixek lesznek, és akik fel vannak véve azok adhatnak majd újat. Próbálkozom megoldani. Köszönöm!
A többit meg a HA és a HÉT.NAPJA függvények kombinálásával és egy kis esetszétválasztással (hogy melyik naphoz mennyit kell adni/kivonni) meg tudod csinálni.
A kérdésem a következő lenne: Ha adott A1 cella ahol dátum van 01.10.2012 szeretném ha B2 cellában 5 munkanappal kevesebb lenne (szombat, vasárnap nem munkanap) és szeretném ha C2 cellában 8 munkanappal kevesebb lenne (szombat, vasárnap nem munkanap) és C2 ben 3 munkanappal több lenne ( vasárnap nem munkanap,de szombat igen) akkor milyen képlettel lehetne ezt megoldani?
Valójában azt azért kérdeztem, hogy ha igennel válaszol, akkor rá tudjam mondani, hogy "Ne is álmoggy róla nagyfijú!" :-)
Nem mintha nem lehetne megcsinálni, csak sokkal bonyolultabb, mint az eddigiek.
Először is kell hozzá egy hely, ahol a felhasználók, jelszavaik, és a személyes engedélyek tárolva vannak. Ez lehet egy munkalap, egy szövegfájl, vagy esetleg CustomDocumentProperty-k garmadája. Másodszor kell egy adminisztrátor, aki a felhasználókat és jelszavakat karbantartja, engedélyeket kiosztja.
Itt máris felmerül a kérdés, hogy mi az egésznek a célja, mert hát biztonságosnak egyik megoldás sem mondható. Más szóval csak a az nem töri fel, aki nem akarja. A szövegfájl és a munkalap biztonság szempontjából tizes skálán 0 illetve 1, de mindkettő könnyen szerkeszhető. A CustomDocumentProperty-k használata lenne a három közül a legbiztonságosabb, (tizes skálán mondjuk 2) de ezek szerkesztéséhez elég komoly extra kódra lenne szükség.
Végül pedig kell a kód, ami a felhasználó szempontjából lekezeli a folyamatot. Talán még ez lenne a legegyszerűbb része a dolognak.
Szóval ezt alaposan át kellene gondolni, megtervezni, aztán megcsinálni: uszkve 5-6 órás munkának saccolom, teszteléssel együtt.
Tetszik a megoldás, és érdekelne a kérdés megoldása is amit feltett Ketele69 nek , hogy különböző felhasználók különböző sheeteket nyissanak meg, és az előre beállított jelszavukat megtudják változtatni, mint a windowsnál,hogy kell a régi jelszó majd az új.
Lehetséges, de ahhoz egészen másképp kell ekezdeni.
Először is szükséged lesz egy Userform-ra. Tegyél rá egy Textbox-ot, egy Commandbutton-t, és egy Label-t.
A Label felirata legyen az, hogy "Mi a jelszó, koma?"
A Textbox-nak a PasswordChar nevű tulajdonságát állítsd "*"-ra.
A Commandbutton eseménykezelője ez a kód legyen:
Private Sub CommandButton1_Click() If TextBox1.Text = "az én titkos jelszavam" Then Worksheets("aktiválandó munkalap").Activate Else MsgBox "Nem nyert." End If
Unload Me End Sub
A Főmunkalapon lévő gombnak pedig ez legyen az eseménykezelője:
Mindig ugyanazt a jelszót kellene beütni? Vagy mindenkinek személyes jelszava lenne, amit esetleg meg is változtathat?
A legegyszerűbb verzió kb. így néz ki:
Private Sub CommandButton1_Click() Dim pwd As String pwd = InputBox("Mi a jelszó, koma?", "Jelszó megadása kötelező") If pwd = "az én titkos jelszavam" Then Worksheets("aktiválandó munkalap").Activate Else MsgBox "Nem nyert." End If End Sub
Amikor az import-ot csinálod van lehetőség arra, hogy beállítsd - oszloponként - hogy melyik oszlop milyen adattipus legyen. A problémás oszlopnál ne General-t válassz, hanem Text-et.
Amikor egy CSV kiterjesztésű fájlt nyitok meg Excel 2010 –ben azokban a mezőkben, melyek nullával kezdődnek, az Excel a kezdeti nullákat eltünteti, ha szöveg szerkesztőben nyitom meg, ott vannak.
pl.: „00152” így jelenik meg az Excelben „152”, a nullák információt hordoznak 000152<>152 . Mivel több tízezer adatról és több száz fájlról van, kézzel visszaírni macerás.
Ha valaki ismer olyan beállítást, amivel ezt ki tudom küszöbölni, nagyon megköszönném.
Próbáld ki ezt beilleszteni a kódodba: sheets("név").activate
Van különbség a Select és az Activate között.
Ha csak az A1 cellát jelölöd ki (Range("A1").select) akkor a Zoom annyira felnagyítja, hogy csak egyetlen cella lesz látható a képernyőn. Simán lehetséges, hogy ez olyan nagy Zoom-nak felel meg, amelyet az Excel már nem tud végrehajtani.
Tudnátok segíteni egy Excel-es függvény kérdésben?
Így néz ki a táblázatom (Munka1):
A B
Név Figyelmeztetés
Kiss Béla késés
dohányzás
rossz cikkszám
Nagy Sándor hibás rögzítés
késés
Horváth János evett munkaidőben
Nevekből van kb 100 db és mindenkinél több adat van a B oszlopban.
Na most ezeket az adatokat kellene kiíratnom Munka2 E oszlopába, úgy hogy névhez csatolja a figyelmeztetéseket, de mindenképp 1 sorban kell, hogy legyenek.
FKERES-sel nem jó, mert ott csak az első találot jelíti meg. Hogy tudom megcsinálni, h minden találtot megjelenítsen? (nevekhez kapcsolva természetesen) Lehet 1 cellába is, de külön jobb lenne.
A B C D E F G
Horváth János 1955-12-20 stb stb evett munkaidőben
Kiss Béla 1977-04-12 stb stb késés dohányzás rossz cikkszám
Nagy Sándor 1981-05-30 stb stb hibás rögzítés késés
"Vagy még az lehet, hogy nincs semmi kijelölve az adott munkalapon, így nem tud mire ráállni." igen, én is valami ilyen problémára gondolok, de a nyomtatási kép rendben van. (minden munkalap tartalma úgy van kijelölve, hogy egy oldalra kiférjen.)
"Vagy nincs a worksheet activate-elve. Lehet egyszerűbb lenne látni a kódodat és úgy segíteni..."
Ez van minden makróban (természetesen a "nev" mindenhol más...)
Lehet túlegyszerűsítem de én arra gondolnék, hogy amikor munkalapot váltasz, akkor új ki kellene adni a .Zoom parancsot. Minden egyes lapváltáskor újra és újra.
Megakarod nézni, hgoy a feladataid közül mennyi esik egy kezdő dátum és záró dátum közé.
A kezdő dátum éve a H2-be rögzítendő, a kezdődátum hónapja a h3-ba.
A záró dátum éve az I2-be rögzítendő, a hónapja az I3-ba.
A függvény: =SUM(--(YEAR(OFFSET(A1,1,0,COUNT(A:A)))>=H2)*(MONTH(OFFSET(A1,1,0,COUNT(A:A)))>=H3)*(YEAR(OFFSET(A1,1,0,COUNT(A:A)))<=I2)*(MONTH(OFFSET(A1,1,0,COUNT(A:A)))<=I3))
Amikor a fenti képletet berögzíted, akkor NEM enterrel kell lezárni, hanem Ctrl+SHIFT+ENTER-t üss a végén. Ha jól csináltad akkor a képlet a szerkesztőlécben {} közé kerül.
A képlet folyamatosan figyeli az A oszlopot és automatikusan figyelembe veszi a berögzített új sorokat is.
Egy kicsit szebben néz ki, ha az OFFSET-es részt nevesített tartományként létrehozod és névként hivatkozol rá.
Adott egy több munkalapból álló 2007-es Excel tábla; az auto_open makróval megnyitott Főmunkalapról, vezérlőgombok megnyomásával lehet a többi munkalapra eljutni. (A munkalapok a beállításokban el vannak rejtve)
Az egyes munkalapokat különböző méretű monitoron szeretném úgy megjeleníteni, hogy a táblák a teljes munkaterületet kitöltve jelenjenek meg. (Nem teljes képernyőben!)
Ennek érdekében az auto_open makróba, illetve a Főoldalon lévő vezérlőgombok mögött futó makrókba a következő sort írtam: ActiveWindow.Zoom = True (Ha jól gondolom, ez a parancssor ennek felel meg: Nézet/Nagyítás/„Kijelölésnyi”)
Sajnos csak a Főmunkalapon működik a dolog, a többi munkalapon nem. Mit, és hogyan kellene „kijelölnöm”, hogy a többi – vezérlőgombokon keresztül elérhető – munkalapon is működjön a makró?
Excelben hogyan lehetne beállítani, hogy több oszlopot nyomtasson egymás mellé egy oldalra?
Egy telefonszámokat tartalmazó (név+szám) táblázatról van szó, ahol több hasábot szeretnék egymás mellé, mint a Word-ben, anélkül, hogy az oszlopokat elmozgatnám.
Help!
Valaki meg tudja mondani, hogy a 2010-es excelben miért nem tudom úgy mozgatni a képfeliratot, hogy a mutatónyíl a helyén maradjon?
A régebbi verziókban müködött :-(
Köszönöm a segítséget, így már nálam is működik. Amikor én így próbáltam, nem raktam az előző mondat végére vesszőt. Itt már nagyon számít a te tudásod és tapasztalatod. Az ilyen formai előírásokra lehet valahol szabály leírásokat találni? Mindenesetre azt látom, hogy itt a fórumon nagyon sokat lehet tanulni.
Valójában ha nevesítve vannak az argumentumok, akkor mindegy a sorrend. Viszont vesszővel kell őket elválasztani, és ez volt a gond: a Password után nem volt vessző.
Azt hogyan tudnám megoldani, hogy az egyik munkafüzeten a sorokat a B oszlopban összesíti.
Azaz B3 14, B4 20, és ez a B2-ben egy szumma függvénnyel 34ként jelenik meg. De ebből egy-kettőt inaktívvá kellene tennem egy időre, hogy ne vegye figyelembe. Majd később újra kellene a hogy megjelenjen a szumma függvényben.
Sub Véd() Dim lap% For lap% = 1 To Sheets.Count Sheets(lap%).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, Password:="TitkosJelszó" Next End Sub
Ismerkedvén a makrókészítéssel, elég gyakran a következő történik. Készítek egy makrót. Lépésenkénti végrehajtással tesztelem. Aztán egyik lépésnél, amelyet sajnos még mindig nem tudtam specifikálni, hogy milyen típusúnál, de általában az utolsó lépések egyikénél, a futás átlép konstansan ugyanannak az xla bővitményem kezdősorára, amit aztán persze nem tud végrehajtani és emiatt várakozik. A kiakadást a Run/Reset paraccsal lehet megszüntetni. Ezután a makrót Run-nal újrafuttatva normálisan végigmegy. És általában a lépésenkénti újbóli végrehajtások is normálisan végigmennek. Mi lehet ennek a hátterében és hogyan lehetne megszüntetni? Van rá tippetek? Az xla-nál lehet valami beállítási zűr? Ami egyébként egy sajátfüggvény, és normálisan müködik.
Úgy azt kipróbáltam. Működik is. Csak az a kérdésem, hogy legelőször meg tudom-e makróval csinálni a levédést a beállításokkal együtt. Sok ilyen file van, amelyik 20; 30; vagy akár 40 lapos. Így eddig minden lapnál külön be kell állítanom, hogy a formázás megengedett legyen, és utána levédeni. Létezik erre is megoldás?
Hát ennél azért nyogadtan adhatnál több infót, hogy érdemben tudjunk segíteni. Mert a kérdésedre a válasz az, hogy "igen, lehet". De nem vagyok biztos benne, hogy ez elég lesz.
Szóval, add meg, hogy:
- melyik oszlopban van a dátum
- melyik sortól melyik sorig terjed a dátummal ténylegesen feltöltött rész a táblán belül.
- milyen tipusú feltételeket szeretnél használni. Pld. egy adott hónap v. két dátum közötti feladatok száma.
Egyébként kétféle megközelítés lehet:
- SUMIF/SUMIFS használata, ha a dátummeződben natív módon nem szereplő feltétel(ek)re vagy kiváncsi, ehhez segédoszlopot kell létrehozni (pld ha csak azt akarod megadni, hogy egy adott hónapban mennyi a feladatok száma - a hónap adat nem natív módon szerepel az adataid között, azt ki kell számolni a dátum adatodból)
- SUM vagy SUMPRODUCT használata ha a dátummeződben natív módon nem szereplő feltételre vagy kiváncsi, ehhez nem kell segédoszlopot létrehozni
- SUMIF/SUMIFS használata, ha a dátummeződben natív módon szereplő feltétel(ek)re vagy kiváncsi, ilyenkor szintén nem kell segédoszlop.
Van egy éves táblám aminek egyik oszlopában dátumok vannak (formátum éééé.hh.nn). Minden sor egy-egy végrehajtott feladatot jelent. Arra lenne szükségem, hogy adott időszakban hány feladatom volt. Megoldható ez képletekkel?
A gyakorlatban ez azt jelenti, hogy ha sok volatilis függvényed van egy workbook-ban, akkor az nagyon lelassulhat a volatilis függvények gyakori újraszámolásától.
Bocsánat, hogy Access-szel offolok itt, de az a topik nem ilyen pörgős.
Hogyan lehet egy lekérdezés LIKE záradékában megadni a literális kérdőjelet? Három kérdőjellel kezdődő stringekre akarok szűrni egy szüveges mezőt, de folyton jokernek veszi.
Ugyanazt a makrót használd, amit a 19031-ben írtam, csak az Unprotect helyett Protect legyen benne. Ha egyszer levédted a lapot, megjegyzi a paramétereket, azt, hogy mit engedtél meg minden felhasználónak a zároláskor.
Az ilyen "megjegyzések" eredményezik, hogy a sokszor használt fájlok mérete rohamosan nő.
Az INDEX egy tartomány x-edik elemét választja ki. Vagyis esetünkben a nevek(?) közül választja ki az egyik elemet.
Azt hogy melyik elemet választja ki a SUM((J1:J12=K27)*ROW(J1:J12)) rész határozza meg.
Ami a SUM-on belül történik az az, hogy a J1:j12 tartomány mind a 12 cellájára megvizsgáljuk, hogy annak értéke megegyezik-e ezen tartomány értékeinek maximumával (K27), majd megszorozzuk egy olyan számmal, amely az éppen vizsgált cella sorszámát reprezentálja (ROW(J1:J12). A vizsgálat maga egy TRUE/FALSE értéket ad. Viszont ha egy ilyen boolean (TRUE/FALSE) értéket egy számmal szorzunk (a ROW(..) eredménye), akkor a TRUE-t 1-nek, a FALSE-t 0-nak értelmezi az excel.
Vagyis ha a J1:J12 tartomány értékeinek függvényében a következő történik:
- minden olyan cellaérték, amely nem egyenlő a maximummal 0-t generál (Jx=Max(J1:J12)=FALSE szorozva ROW(Jx) = 0 * x = 0
- az egyetlen olyan cellaérték, amely egyenlő a maximummal a sorszámát produkálja (pld. J6=MAX(J1:J12)= TRUE szorozva ROW(J6) [=6] = 1 * 6 = 6
Ezek után a 11 nullát és az egyetlen nem nulla értéket (a fenti példában 6) a SUM összeadja, ami az egyetlen nem nulla értéket adja (esetünkben hat). Szóval tudjuk, hogy a 6-ik elem a maximum.
Vagyis az INDEX a H1:H12 tartomány 6-ik elemét adja vissza, ami pont a maximum értéknek megfelelő név.
Ugyanezt lehetne OFFSET függvénnyel is megcsinálni, de az OFFSET volatilis függvény és ha lehet elkerülöm a használatát.
Rajta van a pivot megoldás is. Sőt az újabb kérdéseidre is megpróbáltam válaszolni. Bár lehet, hogy azokat félreértettem. Mert én úgy értelmeztem, hogy a leghosszabb sorozatok legnagyobb és legkisebb értékeire vagy kiváncsi. És nem a teljes számoszlop legnagyobb és legkisebb értékeire, mert az pofonegyszerű.
Megjegyzem, én a részösszeg függvényt sosem használtam, így nincs vele semmi tapasztalatom, de most utánanézve az a gyanúm, hogy arra célra, amire te akarod használni, arra alkalmatlan. Ezért használtam helyette adatbázis tömbfüggvényeket
Azt hogyan lehetne szintén részösszeggel megoldani, hogy nézem egy oszlop-ból a legnagyobb és legkisebb értéket. Nyílván így =RÉSZÖSSZEG(4;A1:A10) és =RÉSZÖSSZEG(5;A1:A10)
de mindezt úgy kéne, hogy időben mindig a MAX érték legyen elől és ahhoz vegye az utána következő legkisebb értéket.
Próbáltam úgy megoldani, hogy mellé raktam egy oszlopot amiben a sorok száma van /hasonlítás képpen/ =SOR(A1). Valahogy ehhez kéne gondolom nézni, hogy a MAXimum éréknek kisebb sorszámúnak
kell lennie mint az utána jövő /nyilván nagyobb sorszámú MINimum értéknek. NA itt már akadás van... Lehet, hogy HA függvény is kéne? "
Köszi ezt már sikerült is megoldanom... egyszerűbb volt mint gondoltam... :)
Már csak a leghosszabb - és + darab-ra kellene gombot varnom... :)
Van egy Excel file kb. 40 munkalappal. minden lapon szeretném a képleteket átírás ellen lezárolni, majd levédeni, de időnként módosítás miatt fel kell oldani. A jelenlegi tudásom szerint minden lapon ezt csak külön külön tudom megtenni. Létezik arra megoldás, hogy ez egy műveletben is elvégezhető?
Pivot-ot megnézem, bár nekem elég bonyinak tűnik...de majd megoldom...
Lehet még egy kérdés.
Azt hogyan lehetne szintén részösszeggel megoldani, hogy nézem egy oszlop-ból a legnagyobb és legkisebb értéket. Nyílván így =RÉSZÖSSZEG(4;A1:A10) és =RÉSZÖSSZEG(5;A1:A10)
de mindezt úgy kéne, hogy időben mindig a MAX érték legyen elől és ahhoz vegye az utána következő legkisebb értéket.
Próbáltam úgy megoldani, hogy mellé raktam egy oszlopot amiben a sorok száma van /hasonlítás képpen/ =SOR(A1). Valahogy ehhez kéne gondolom nézni, hogy a MAXimum éréknek kisebb sorszámúnak
kell lennie mint az utána jövő /nyilván nagyobb sorszámú MINimum értéknek. NA itt már akadás van... Lehet, hogy HA függvény is kéne?
Megcsináltam a részösszeges változatot, de csak úgy tudtam, hogy 10 kiegészítő oszlopot tettem mellé, amelyekben meglehetősen hosszú képletek vannak. Itt reménytelen lenne ismertetni, de ha érdekel, feltehetem a data.hu-ra és akkor silabizálhatod kedvedre.
Ennél azonban sokkal egyszerűbb lenne, ha pivot-tal oldanád meg a feladatot. Ehhez csak a K oszlopot kell hozzáfűznöd a táblázatodhoz, ami a sorozatokat azonosítja ezzel a képlettel: =HA(j10=j9;k9;k9+1). Majd ezt másold végig. Ha értékhibás az oszlopod, akkor írj be a k10-be 1-t. Ezzel minden sorozat kapott egy azonosítót.
Ezután jöhet a kimutatás. A sorcimke a sorozat, az oszlopcímke az előjel, a szumma érték meg 2x a számok, egyszer mint db, egyszer meg mint összeg. E táblázatból, ami már önmagában is elég áttekinthető, könnyedén kinyerhetők a téged érdeklő értékek az db-oszlopok alá írt ezekkel képletekel:
max sorozat előjelenként: =MAX(db oszlop)
a maxhox tartozó összeg: = MAX(HA(dboszlop=maxertek(az előző képlet eredménye);ugyanazon előjelhez tartozó összegoszlop)) Ezt CTRL+SHIFT-tel vidd be, mert tömbképlet, ami legnagyobb összegű leghosszabb sorozat összegét adja. Előfordulhat ugyanis, hogy több leghosszabb van.
Igen, tudnék rá "bal kézzel a jobb fülemet vakarom" típusú képletet, de sokkal egyszerűbb, ha az egész sorozatot lemásolod még egyszer, majd növekvő sorrendbe rendezed, és pont ez jön ki.
Fantasztikus! Ebben a topikban? Szerintem a hónap intrója volt!
Az egyik lehetőséged, hogy csinálsz egy számsorozatot (1, 2...) sima egérhúzással, majd kijelölöd és megformázod egyéni formátumra a szám fül alján, és ezt írod formátumszövegnek:
"3halado_1/Halado03_mondatok_"000"_angol.mp3"
A másik, hogy beírod az első cellába: ="blabla"&
Amikor itt tartasz, rákattintasz a másik munkafüzet A1 cellájára, majd folytatod: &"duma"
hát, a darabszámra egy =MAX(HA(A$2:A$26=D1;B$2:B$26;0)) vagy hasonló ctrl+shift+enteres tömbképlet pl. jó lehet, bár a képedben nem látom a résszösszeg által generált sorokat - mert én azt adtam meg kritériumnak pl.: '-1 Mennyiség
Excelben kérnék segítséget. Excel 2003. 11.8302.8221 SP3 alatt. Egy oszlopban szeretnék sorozatot csinálni, egymás alá, ilyen formában: 3halado_1/Halado03_mondatok_001_angol.mp3 3halado_1/Halado03_mondatok_002_angol.mp3 3halado_1/Halado03_mondatok_003_angol.mp3 Szóval a 3 jegyű szám növekedjen a kezdetektől. Ezt szeretném a lehúzásos módszerrel csinálni. de ha rákattintok az (néhány) első tagra, és azt húzom le, akkor az .mp3-től számol mp6.-ig, és még tovább. Szóval csak az utolsó tagot növelni. Hogyan lehetne beállítani, hogy a szöveg közepén lévő 3 jegyű számsorozatot növelje automatikusan az excel?
Vagy... ami még jobb lenne... hogy egy másik XLS táblázat első (A) oszlopában lévő számokat(és betűket) vegye át, és azt írja be a mondatok_xxx_ angol.mp3 közé. (xxx helyére kéne, ami a másik (file)táblázat A oszlopában van)
De ha az elsőre van egy könnyű megoldás, az is jó lenne. köszi
Ez jónak is tűnik ahogy kipróbáltam már csak azt nem tudom, hogyan rakom ezt bele egyetlen cellába... illetve ha aktív a szűrő akkor a részösszeg függvény ??? helyére mit kellene írni...
Ez egyszerűen zseniális! Eszembe se jutott volna kispróbálni, hiszen ki gondolná, hogy ha egy szöveget egy darabra bontunk szét, attól ismeri fel az Excel, hogy szám, amiről előtte nem ismette fel? Ezt fogom használni, nem kell hozzá képlet, új oszlop. De a képleted is nagyon érdekes! Még nem találom benne a szokott Excel-logikát. A jobbra-balra rendeződést természetese ismertem, viszont hogy a darabolásnak ilyen eredménye lehet, az teljesen új.
Én azt csináltam anno, hogy írtam egy rövid kis makrót, ami cellánként összehasonlította a két munkafüzetet (az egyiket random alapon Masternek, a másikat copy-nak hívtam) és ahol eltérés volt, ott a Master releváns cellájához adott egy kommentet, ami megmutatta, hogy ugyanott mit tartalmaz a Copy workbook.
Nagy bajba kerültem! Csináltam a Windows Autostartba egy linket a táblázatomból. De valamit elnyomhattam mert msot jöttem rá, hogy két ugyan olyan nevű 29 Munkafüzetből álló táblázatom van. Amit hol az egyiket hol a másikat szerkesztettem.
Van valami lehetőség, hogy összefűzzem a kettőt vagy megnézzem hol vannak a különbségek?! :S
Az irányított beillesztés helyett még működhet a Text to Column megoldás.
Ez csak annyi, hogy kiválasztod azt a tartományt, ahol text-ként jöttek be a számok, Data fül és Text to Column. Itt megkérdezi az Excel, hogy mit szeretnél elválasztónak (delimiter), vagyis hogy milyen karakter után szaggassa szét a kijelölt szöveget. Itt olyan jelet kell megadni, ami NINCS az adott tartományban (pld. |). Az excel megpróbálja szétszaggatni a szöveget, nem talál sehol delimiter-t, emiatt a "szöveg" ugyanaz marad, de a Text to Column után az Excel újra kiértékeli az eredményül kapott cellákat és így átalakítja őket számmá.
A művelet sikeres elvégzését az jelzi, hogy míg a szövegek excelben balra rendezettek a cellán belü, addig a számok jobbra.
Az ÉRTÉK függvény helyett pedig megpróbálhatsz nullát hozzáadni a tartomány minden eleméhez, vagyis =SUM((B1:B100)+0). Ez ugyanazt csinálja, mint az érték függvény.
Na, kezdek én is ráérezni erre a tömbképletesdire, és innen jött az ötlet.
Merthogy az adatbáziskezelő stringként exportálja nekem a számokat, és össze kéne adni.
Így sikerült: {=SZUM(ÉRTÉK(B2:B24))}
Délelőtt még külön kiszámoltam az értéket és visszaillesztettem irányított beillesztéssel, de munkaidő után ilyen értékes gondolatai támadnak az embernek. :-)
Tudom, hogy egy olyan kérdést fogok feltenni ami már jó párszor felmerült de egyszerűen nem találom, hogy hol segítettetek.
H oszlopban van a termék neve. J oszlopban van egy hozzá tartozó százalékos érték. 12 sor van. A max()-al meghatároztam hogy melyik a legnagoybb szám. És szeretném hozzácsatolni az abban a sorban lévő szöveget ami a H oszlopban van.
Azaz J10-ben van a legnagyobb érték jelenleg. Hogyan tudnám hozzápasszintani a H10-et? És mind ezt a J27 és K27-be szeretném
Megoldottam, igen, pár óra kuglizás és kísérletezgetés útján. :-/
Az Office alkalmazások közötti átjárhatóságot használtam fel. Mert mint kiderült, az a helyzet, hogy Excelből lazán lehet Word doksikat nyitogatni, adatot kivenni belőle, meg miegymás. Az űrlapmezők eléréséhez a FormFields gyűjtemény kellett, és még arra volt szükség, hogy minden mezőnek legyen egy egyedi Bookmark neve, amelyről a mező azonosítani tudom, és amely alapján meghatározhatom, hogy a kiolvasott adattal mit kell csinálni.
Ennél súlyosabb a helyzet: akkor is rossz, amikor óra-percet jelent, csak éppen 24 óra feletti értéket, ami pl. egy ultrafutóverseny eredményeinél hétköznapi. Ezt a sorbarendezést végül (mivel az időadatok az évszámok mögött zárójelben, és évenként pontosvesszővel elválasztva voltak) úgy oldottam meg, hogy szétszedtem évenként a pontosvesszővel (szövegből oszlopok), transzponáltam, szétszedtem megint a nyitó zárójellel, de bennehagytam a csukót. Így a B oszlopban már "32:14:23)" típusú adatok voltak (most írtam valamit), amit szövegként lehetett rendezni, és ezután törölni a csukójelet. Fordított sorrendben nem volt jó. De még ezzel sem ért véget, mert az eredményt előbb jegyzettömbbe kellett másolni, és onnan a fórumba, direktben számként jelentek meg. Nem egyszerű mindig az élet, ha az Excel kitalálja helyettem, hogy mit akarok, és rakaszkodik az elképzeléséhez.
Valójában arról van szó, hogy az excel nem a formátumot, hanem a formátumhoz leggyakrabban társított értéket veszi át. Így a csak számjegyeket valós számértéknek tekinti, a dátum és idő formátumukat valós dátumoknak és valós időknek. Amit nem tud értelmezni, azokat meg stringnek. És ez általában jó is így, kivéve amikor pl. egy óó:pp formátum valójában nem óra-percet jelent. Akkor bizony elég körülményes az excelben megragadni az óra-perc számadatokat. Én ilyenkor azt szoktam csinálni, hogy még a forrásfileban, vagy ha abban nem tudom, akkor egy átmeneti doc-fileban, a kettőspontokat kicserélem egy egyedi karakterkombinációra, ami miatt az excel kénytelen stringként elfogadni, amiből aztán az engem érdeklő számok már kinyerhetők.
Én is alálkoztam már ilyennel. De ezeknél legalább lehetett tudni, hogy el vannak barmolva. De amikor olyat csinál, hogy pl. a 7:2-t átkonvertálja 2:7-re, ráadásul szisztematikusan, tehát hogy a számokat emelkedő sorrendbe rakja, az igen durva szívás, amikor több órás munka után rájösz, hogy szart sem ér az egész.
Nekem azzal volt komoly nehézségem, hogy weblapról átmásoljak óó:pp:mm alakú időket, és azokat úgyhagyja, ahogy beírtam, szövegként... Nem túl okos, hanem okoskodik. :-)
Remélem megoldottad már a Word űrlapok excelbe rántását. De ha még nem, van egy javaslatom. Mégpedig az, hogy 2 lépésben oldd meg a feladatot. Mivel a problémát az okozza, hogy az excel nem képes normálisan importálni a word dokumentumokat, ezért:
1. lépés: Az összes word űrlapot először mentsd le Weblap szűrt (html) formátumba. Erre minden bizonnyal írható egy wordmakró.
2. lépés: A html filek már minden további nélkül, az űrlap formátumát megőrízve, beránthatók az excelbe. Természetesen ehhez célszerű egy Excel makró. Amit elég egyszerű megcsinálni. Ilyet már én is tudok.
Kipróbáltam, működik. Többféle word-os számformátum esetén is, de ezt azért ellenőrizd. Mert az excel időnként túl okos. Van amikor a pontot, kettőspontot tartalmazó stringeket igencsak elbarmolja.
Adott egy tetszőleges tartomány, az esetemben A1:C11, amit számokkal töltöttem fel. A sorösszegeket akarom kiszámolni az E oszlopban. Ehhez az alábbi makrót kreáltam, ami működik ugyan, de biztos meg lehetett volna csinálni normálisabban is. Hogy hogyan, ahhoz kérném a hozzáértők útbaigazítását. Elsősorban az E1:E11 profi kijelölése érdekelne.