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.
Igen. Pláne, hogy felületességem miatt nem fejtettem ki a megoldás összes részletét. Magyarul egy kicsit elbactam.
Szóval: Az A és a B oszlopot cseréld meg, tehát a B legyen a harm és az A sorszam. Ez fontos, mert a sorszámokra hivatkozva csak a tőle jobbra álló oszlopokból lehet számokat kivenni.
Aztán az a C oszlopba írj be számokat folyatatólagosan számokat 1-től 30-ig. Ezekhez rendeled majd sorba a harmonizalt értékeket.
A D-oszlopba történik a sorbasszedés ezzel a képlettel:
=fkeres($c100;$a$100:$b$129;2;0);2) majd másold végig.
Addig eljutottam ,hogy a sorszámfüggvénnyel a b oszlopba beírattam ,emelkedő sorban ,hogy melyik elem hányadik a sorban, de az index függvény nagyon megkavart.
Az a100-a129 határoztam meg tartományt harm névvel ,és b100-b129 ig sorszám névvel.
Most már nagyon közel vagyunk a megoldáshoz, egy kicsit még segítenél?
Az értelme annyi , hogy egy doboz belső oladlainak a távolsága a hullámhossz. Ezeknek a felharmónikusait számítja ki a táblázat. Ezeknek a harmónikusoknak az egymásra hatását kell vizsgálni , úgymond ütközést.
Most sem értem. Mit értesz azon hogy autamata sorbaszedés. Ha mondjuk azt, hogy ne kelljen utána sorbarendezni, hanem autamatikusan sorrendben íródjanak ki, akkor jó eséllyel segít, ha az a100-a129-be másolt 30 számot a SORSZÁM függvénnyel leindexed a b-oszlopba, majd a c-ben az
index($a$100:$a$129;sorszám;1) függvénnyel kiiratod őket. Na most így kaphacc egy emelkedő sorrendű listát és diagramot. De ennek mi értelme?
Kimásoltam az a100-a129 ig egymás alá számokat (egy sima =b8 , =b9 stb), ezeket szeretném sorbatenni , de autómatán , mert ennek az eredményét szeretném beirányítani egy gafikonba.
Miért ne lehetne sorba rakni őket? Csak pesze nem biztos, hogy úgy ahogy te szeretnéd. Másfelől, ha 30 számot akarsz sorba rakni, akkor 3 oszlopba való szétosztásuk kicsit komplikálttá teszi a feladatot.
De szerintem te nem ezt akarod. Volt rá egy feltétlezésem, de úgy látszik nem találtam el. Ezért egy kicsit még jobban kéne pontosítanod. Például úgy, hogy a táblázatod 1-2 során elmagyarázod vagy bemutatod hogyan kéne kinéznie az ábrádnak.
Hangdobozok méretéséhez való excel táblázaton ügyködök. A számításos része már kész van ,csak szeretném az eredményeket grafikusan is ábrázolni. Három egymás melletti oszolop -ban 10-10-10 adat , ezeket szeretném együtt vizsálni, mégpedig olyan módon ,hogy az látszódjon a grafikus ábrázolásnál ,melyek azok a számok amik azonosak vagy közeliek. Elsőre az jutott eszembe, hogy a 3 sor elemeit emelkedő sorrendbe rendezném , és egy oszlop diagramon ábrázolnám , így jól látható lenne az azonos magasságú ,és egyúttal szomszédos oszlopokon ,melyek azok a párok amik azonosak ,vagy nagyon közeliek.
Makróval tudom elképzelni, de azt is csak akkor, ha az összefűzést értékként való beillesztés követi, vagyis már nem képlet eredményét, hanem fix szöveget kell színezni.
A próbában az A1:A3 tartomány adatait fűztem össze a B1-ben, az adatok közé egy-egy szóközt is tettem (=A1&" "&A2&" "&A3)
A 3 szövegrész hosszát 3 változóban tettem el: eh, mh, hh (első hossz... harmadik hossz).
Nem ismerek olyan beépített függvényt, amivel karakterformátumot lehetne beállítani. A SZÖVEG függvény formátum-paramétere valójában csak a számformátumot változtatja meg, (pl. dátum, pénznem, stb.,) de semmi köze ahhoz, hogy a karakterek hogyan néznek ki.
Küzdöttem vele egy kicsit, de úgy néz ki, ezt még makróval sem tudnám elegánsan megoldani. Legalábbis eddig nem jöttem rá, hogyan lehetne.
persze. tfh. adott a tábla amiről szó van kijelölöm azt a tartományt, amit csak Tercsi, Fercsi, Kata, meg Klára szerkeszthet Aztán Korrektúra fül, jobb szélen középen Tartomány módosításának engedélyezése Engedélyek gomb Hozzáadás gomb névhez beírom pl. tercsi majd névellenőrzés megjelenik az összes tercsi nevű user kiválasztom az én Tercsimet, és így tovább Frecsire, Katára, meg Klárára (lsd. példák linket még)
céges környzetben gyönyörűen működik, itthon persze egyedül vagyok, de egy screenshotot mellékelek
Úgy hogy beszúrásnál az 1. kijelölést pl CTRL+1, a 2. kijelölést a CTRL+2 -vel lehessen beilleszteni, vagy valahogy úgy, hogy meg legyen különböztetve a billentyűkombináció.
Írtam 1 cellába, majd az ezzel a cellával kezdődően 4 cellát kijelölök és a "cellaformázás"-nál az "igazítás a kijelölés közepére"-t választottam. Legyen A-B-C-D oszlop amiben ez a 4 cella van.
Ha az E oszlopra bökök és beszúrok pl 3 oszlopot, akkor az eredeti 4 cella helyett már a beszúrt oszlopokkal együtt a 7 cella közepére kerül az írás.
Ügyesen szét is cseszte így a táblázatomat, állítgathatom vissza egyenként :(
Hogy lehet azt megcsinálni, hogy ha oszlopot beszúrok, akkor ne húzza magára ezt az egybevonást?
Bizonyisten én már válaszoltam erre, még sem találom! Mindegy a problémát megkerültem, jó lesz úgy. Köszönöm a segítségedet!
Más prolémám van most: különböző cellákban lévő szövegeket füzök össze egy közös cellába, de nem tudom elérni, hogy a közös szövegben valamelyik szövegrész más színű, v. egyáltalán más formátumú legyen. Próbálkoztam a SZÖVEG fgv-el is, nem is jelez híbát ha a formátum paraméternél pl. a [Piros] -t használom, csak éppen semmit sem csinál. Mi lehet a magyarázat?
a tengelyek nagyon jók ilyenre gondoltam, azonban az ábrázolást nem tudom lehet-e vonallal megcsinálni.
A diagram úgy nézne ki, hogy 3 vonal van benne, a tengelyek azok jók. A dátumokat az X tengelyen nem feltétlen kell mindet megjeleníteni, elég ha mondjuk heti bontásban van. A lényeg, hogy arányos legyen, mivel mondjuk az első diramban 10 ár van, a 3.-ban csak 5.
Elég bonyolultnak hangzik, nem tudom meg lehet-e eleve csinálni ezt :)
A cellavédelemnél beállított zárolás is csak akkor lép életbe, ha levéded a lapot, így van ez a tartomány módosításának jelszóval való ellátásánál is.
Ez is csak akkor aktiválódik ha levéded a lapot.
Egy fontos dolog, ha még nem vetted volna észre. A normál lapvédelem esetében az írásra engedélyezett celláknak a zárolását ki kell venni. Ekkor lesz írható. Azonban ha egy tartomány módosításához jelszót rendelsz, akkor a tartományban lévő celláknak zároltaknak kell lenni. Majd a végén természetesen le kell védeni a lapot.
Ha a cella nem zárolt, akkor hiába van a tartományhoz jelszó rendelve, nem fogja azt kérni. A tartomány jelszó tulajdonképpen a cella zárolását oldja fel és teszi irhatóvá.
Ezt a 3 diagramot kellen ábrázolni külön színnel 1-be, úgy hogy az X tengelyen az idő legyen, de arányosan, mivel a 3 diagramban nem ugyanakkor vannak az adatok.
Illetve ha az még megoldható, mivel a Price adatok főleg 40 és 50 között van, lehet-e az Y tengely nem 0-tól, hanem mondjuk 30-tól kezdeni?
zseniális. miért kell még a lapot is külön levédeni? kipróbáltam, valami miatt nem engedi a tartomány módosítés engedélyezését. valami van a táblázatommal, ami gátolja. (kipróbáltam egy egyszerű új táblázattal, ott működik)
Azt még akkor is megteheted, hogy kijelölöd a külön külön a tartományokat, mindegyikhez más-más jelszót rendelsz hozzá, majd levéded a munkalapot. Ebben az esetben amikor valaki az adott tartományt akarja szerkeszteni kérni fogja annak a tartománynak a jelszavát. Ezzel eléred azt, hogy nem egy darab munkalap védelem jelszód lesz, hanem több egymástól független tartomány jelszó. Ebben az esetben nem kell megadni felhasználókat sem.
igen. én nagyvállalati környzetben szeretném használni ill. használtatni.
Live ID azonosítóm nekem még van privát ugyan, de nem biztos, hogy minden munkatársam is rendelkezik ezzel. szóval, jönnek a biztonsági jogosultsági kérdések. kérdés, van e valami egyszerűbb lehetőség, mert nincs is minden érintettnek web elérése.
ahogy azt rahsi mondja, a területi beállítások, dátum formátum a ludas. azaz vagy azokon állítasz, e akkor minden windows-os alkalmazásodnál ez lesz a default, vagy képletekkel feltöröd a dátumot és utána újrarendezed. MID és IF fügvényekkel. ami biztos, hogy az aug. végén levő pont az gázos. Há
Nekem nem volt részem efféle izgalmakban. :) Csak rákkattintottam és használom.
Viszont nem biztos, hogy minden típusú hálózaton tudod használni, az Excelnek ugyanis kezelnie kell a felhasználók hálózati bejelentkezési azonosítóit. De ez már nem az én szakterületem.
belevágtam... először is elkezdi letöltetni a Windows tartalomvédelmi ügyfél SP2 szervízcsomagot. ez az itthoni gépemen még megy, de kíváncsi leszek ennek munkahelyi változatára. ez neked is igy ment?
Van egy olyan lehetőség, hogy Eszközök->védelem->tartomány módosításának engedélyezése.
Itt minden egyes felhasználóhoz külön területet lehet definiálni és ráadásul lehet engedélyezni, hogy az adott felhasználótól még jelszót sem kér, amikor a saját adatát módosítja. Én ezt közös használat engedélyezésével használom. Így elértem, hogy mindenki csak azt tudja írni, amit engedélyeztem neki, és senkinek sem kell jelszót beírni, ráadásul egyszerre is tudják használni a táblát.
Nekem teljesen jól működött a módszer, a tesztfájloddal is. Igaz ugyan, hogy nekem 2003-as Excelem van, de ennek nem kellene, hogy jelentőssége legyen. Talán az a gond, hogy időközben a területi beállításokat módosítottad. (?)
1) kijelölöd a cellát 2) Menü: Adatok -> Szövegből oszlopok 3) Fix széles -> Tovább 4) Az egyik vágási vonalat áthúzod a "04." utáni pozícióba, a többit (ha van) duplakattintással eltünteted -> Tovább 5) Az oszlop adattípusa legyen: Dátum, ÉHN -> Befejezés
Ha ezután esetleg 2009.08.04-et látsz, innen már a cellaformátum megváltoztatásával lehet játszani.
Szó szerint ez történt velem is nemrég, és éppen abban az időben, amikor a régi víruskeresőm frissítése valamiért nem működött, és az újat még nem telepítettem...
Az első kérdésre: a Windowsban az asztalon jobb klikk, Tulajdonságok, a Megjelenés fülön választhatsz különféle beállítások közül. Ha egyik sem felel meg, ugyanitt, a Speciális menüben tetszésed szerinti színeket tudsz beállítani.
Az első kérdésre: a Windowsban az asztalon jobb klikk, Tulajdonságok, a Megjelenés fülön választhatsz különféle beállítások közül. Ha egyik sem felel meg, ugyanitt, a Speciális menüben tetszésed szerinti színeket tudsz beállítani.
Két kérdésem lenne: 1. Hogyan kell a munkalapot körülvevő keret színét átállítani. Azét amiben a menű is van. Nálam most túlságosan pasztell, és alig lehet észrevenni, a munkalapfűleken a kijelöléseket. Megjegyzem, nem tudom, hogyan váltott át a korábbi erősebb szinkiosztásról.
2. Az excel 2000-rem újabban hülye szokást vett fel. Több lap kijelölésekor, csak az első parancsot hajtja végre az összes kijelölt lapon. A többit nem. Hogyan lehetne jobb belátásra bírni?
bocs, tehát: van kb 5 szam pl. 350, 460, stb egymás alatt egy oszlopban pl a2, b2ben ezek már eleve úgy jöttek ki h egy képletből =A1*999/100
és ezek után használnám a kerekitő képletet. igazából furcsa mert kiszámolsz vmit és visszakerekited de ez kell a két képletet kellene összefűzni köszi
Sziasztok!
Tudja valaki, hogy lehet lekérdezni a hálózati felhasználói név ismeretében az ehhez tartozó valós nevet?
A felhasználói név lekérdezésére az alábbi kis rutint használom:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function Username()
Dim strUserName As String
strUserName = String(100, Chr$(0))
GetUserName strUserName, 100
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
Username = strUserName
End Function
Na jó, esetleg az eredeti függvényt, ami az értéket kiszámolja, módosítani úgy, hogy a kiszámolt értéktől függően egy "Ft" vagy "€" sztringet hozzáfűzzön. De akkor nem lehetne tovább számolni ezzel a cellával, mert már nem szám, hanem szöveg típusú lenne.
Tudja egyébként valaki hogy miért kerülnek az excel 2000-es fájlokba olyan named range hivatkozások amikről még csak nem is álmodik az ember? Az én problémám egy olyan fájllal volt, amit hálózaton használ(t)ak többen is. Nyitáskor mindig rákérdezett a külső link frissítésre, záráskor hivatkozott egy olyan makró futtatására ami nem is volt a fájlban és ha munkalapot akartam másolni, csak hosszas figyelmeztető üzenetek után lehetett, mivel mindig felhívta a figyelmet arra, hogy a másolni kívánt munkalapon már van olyan név, amit másolni akarok... és csak az összes named range törlése oldotta meg a problémát.
Képlettel nem tudom ezt megoldani. Van egy olyan lehetőség, hogy feltételes formázás, ahol a cella értékétől függően lehet formátumot megadni, de az nem terjed ki a számformátumra. Egy makrós megoldást tudnék javasolni. Lehet írni olyan makrót, ami automatikusan lefut, valahányszor az Excel átszámolja a munkalapot. Ezzel át lehet alakítani egyes kijelölt cellák számformátumát az értéküktől függően. Természetesen ennek a megírásához is ismerni kell a táblázat felépítését. Legalább annyit, hogy mely cellákról van szó, és mi a változás feltétele.
Viszont érdemes előbb egy biztonsági mentést készíteni, mert ezzel a makróval az összes belső named range is törlődik, és ha bármely képlet ilyenre hivatkozik, akkor annak annyi.
Ha van a fájlban chart, nézd meg a chart data source adatokat, ott lehet olyan hivatkozás amit a break link nem töröl ki.
Másik tippem hogy named range hivatkozik külső fájlra (insert / name / define). Pont tegnap kaptam tőle én is agybajt, egy fájlban 5700 ilyen volt, tele külső hivatkozással.
Ez a kis rutin szépen kitörli az összeset. A hibakezelési sor azért szükséges, mert a hibás külső referenciát (#ref) tartalmazó linkek törlésénél hibaüzenettel leállna a makró.
Sub Delete_All_Names() On Error Resume Next Dim Nm As Name For Each Nm In names Nm.Delete Next End Sub
Nagyon köszönöm a felajánlást, de igazad van, egyelőre még nem mennék el a makrók felé. Amúgy meg kompromiszumosan úgy oldottam meg a feladatot, hogy a sorok összesítését az első sor fölé raktam, az új sorokat meg előzetesen (kellő mennyiségben) "beképleteztem" úgy, hogy csak akkor jelenjenek meg, ha újabb lapot szúrok be.
Persze még mindig van gondom: nem tudom megoldani, hogy egy feltétel függvényében egy számot Pénznem formátumu Ft-ról, pénznem formátumu €-ra változtassam, és ha kell, vissza. (Az nem lenne igazán jó megoldás, hogy a szám mögötti cellába kerüljön a Ft v. €). Van rá megoldás?
már csak egy bajom van. ha a lapvédelem be van állítva, akkor az egyéni nézetben elmentett szűrést nem hajlandó megcsinálni. milyen pipát kell beállítani a lapvédelemnél, hogy a szűrés még átmenjen?
Úgy tudod megszüntetni, hogy a (magyarban fentről a 2., Váltás nevű) gomb segítségével kitallózód a saját füzetedet, ezzel a csatolást átirányítod a saját füzetedre.
Biztos működik, de én még soha nem csináltam makrót. Le tudja írni vki hogyan tegyem, vagy ez hosszú, inkább olvasgassak utánna?
Ez ugye azt a munkafüzetet csatolja, amit használok? Mert ez naponta más nevű fájl, és ideiglenes mappában vannak, mivel Outlook-kal van körbeküldve. Csak a végén mentem le egy fix mappába.
a kikapcsolásba nem tegyünk a jelszót, mert akkor semmi értelme.
betettem amit küldtél, remekül működik! valahogy láthatatlanná is lehet tenni a makrókat elékeim szerint, de hogy? (mondjuk nem valószínű, hogy mezei júzer megtalálja, hol van a makróban betárolva a jelszó)
"Az egyik levédi a táblázatot, a másik feloldja. Ezt meg is tettem, baj csak az, hogy a lapvédelem jelszót nem tárolja, azaz jelszó nélkül teszi meg, mint halottnak a csók, annyit ér!"
Van egy táblázat, amit "A" csoport vezet, tölt fel infoval.
Ehhez "B" csoport fűz további infót egyetlen egy oszlopban.
És vannak más osztályok, akik csak belenéznek, infot nyernek ki belőle, de nem írnak hozzá. Ők legyenek a "C" felhasználók.
A "B" csoport most lép be, ez okozza a gondot. (legalább is nekem)
Eddig, "A" jelszóval védte a táblázatot, mások csak olvasásra nyitották meg. (céges szerveren tárolódik a táblázat)
Miután, most már A és B is ír, nekik tudniuk kell a megnyitási jelszót a táblázathoz.
De nem szeretném, ha B bele tudna javítani (rontani, törölni) A által rögzített adatokba, ezért B részére csak az őket érintő egy oszlopra adnák írási lehetőséget.
Azaz levédeném a munkalapot, hogy csak ebbe az oszlopba tudjanak írni.
Persze ekkor ha A dolgozik, először ki kell vennie a védelmet, majd ha befejezte visszatenni.
Időben, keveset van írás alatt a táblázat, A és B be tudja várni egymást, azaz ha A dolgozik (mármint ezen a táblázaton), addig B nem és fordítva.
Manuálisan működik is a dolog, de gondoltam beteszek két makrót egy egy nyomógpmbbal. Az egyik levédi a táblázatot, a másik feloldja. Ezt meg is tettem, baj csak az, hogy a lapvédelem jelszót nem tárolja, azaz jelszó nélkül teszi meg, mint halottnak a csók, annyit ér!
A gond: adott egy több munkalapos táblázat, amit 3 műszak tölt egymás után, és elkészültekor főnökségnek szanaszéjjel kell küldeni.
Tudtok erre egyszerűbb megoldást? Amit használunk: küldés mellékletként (levélben), majd egyenként begépelni a címzetteket (mondani sem kell, de néha kimaradnak páran).
Közben hiperhivatkozásban meg tudtam oldani, hogy a megfelelő címzettek eleve benne legyen a levélben, de ilyenkor a fájlt nem csatolta.
Tedd be ezt a kis makrót a munkafütetbe, hátha megoldja a problémát:
Sub MailKüldés()
Dim appOL As Object
Dim LEVEL As Object
Dim olAtt As Object
Dim Címzett As String ' A címzett(ek) címe
Dim Másolat As String 'Másolati címzett(ek) címe
Dim Targy As String 'A levél tágya
Dim Csatolás As String 'A csatolás elérési úttal
Dim Üzenet As String 'Az üzenet szövege
Címzett = "címzett1@aaaa.hu; címzett2@bbbb.hu; címzett3@cccc.hu"
Másolat = "Másolatnak1@dddd.hu; Másolatnak2@eeee.hu"
Targy = "Az üzenet tárgya..."
Csatolás = ActiveWorkbook.Path & ActiveWorkbook.Name
Üzenet = "Ez itt az üzenet szövege..."
Set appOL = CreateObject("Outlook.Application", "localhost")
Set LEVEL = appOL.CreateItem(olMailItem)
Set olAtt = LEVEL.Attachments
olAtt.Add (Csatolás)
LEVEL.To = Címzett
LEVEL.CC = Másolat
LEVEL.Body = Üzenet
LEVEL.Subject = Targy
LEVEL.Send
End Sub
Beállítások -> Számolás fülön van egy olyan, hogy "Külső hivatkozásokat felfrissít" Ha kikapcsolod, vélhetően nem fogja az elején kérdezni, hogy akarod-e frissíteni.
A szerkesztés menüben nézd meg a csatolásokat, hátha ott van az eb elhantolva.
A mentés nélküli bezárás kiküszöbölésére írj egy auto_close nevű rutint, ami egy mentést tartalmazzon. Az ilyen névre hallgató szubrutint az Excel automatikusan végrehajtja a fájl bezárásakor.
Van egy olyan opció a beállítások közt, hogy " Számított eredmények helyett képletek megjelenítése" ha ezt bekapcsolod jobban látod milyen szörnyűségek vannak a "táblázatban", hátha közelebb visz a megoldáshoz!
megpróbálom kikapcsolni az újraszámolást, bár ez rendkívül rizikós, hisz a file nagyon fontos része, hogy újraszámoljon. Ez a file olyan, hogy kapok e-mailt, kiveszem az adatokat, beviszem az excel fileba, aztán a bevitt adatok alapján kiveszek adatokat, és én is küldök e-mailt.
Na most itt ha nincs újraszámolás, vagy véletlenül kimarad, mert elfelejtek F9 et nyomni akkor adott szállítmány máshová megy stb, tehát k.... nagy baj van belőle
Ha esetleg mégis valami még eszetekbe jut, az szuper lenne.
Ezen kívül igen lehet benne olyan, hogy hivatkozás nem létező filera, aztán nem találja,
Hogy lehet erről biztonságosan, eredményesen leállítani az excelt, hogy ne keresgessen más fileban.
pl elején mindig kérdezi, update, vagy don't update, Hogy lehet, hogy ezt ne akarja csinálni.
A gond: adott egy több munkalapos táblázat, amit 3 műszak tölt egymás után, és elkészültekor főnökségnek szanaszéjjel kell küldeni.
Tudtok erre egyszerűbb megoldást? Amit használunk: küldés mellékletként (levélben), majd egyenként begépelni a címzetteket (mondani sem kell, de néha kimaradnak páran).
Közben hiperhivatkozásban meg tudtam oldani, hogy a megfelelő címzettek eleve benne legyen a levélben, de ilyenkor a fájlt nem csatolta.
nincs benne elrejtve olyasmi, hogy egy másik excelből akar adatokat kivenni, amit esetleg nem talál? vagy más hivatkozás, ami a interneten keresztül akar adatot beszedni? (pl. valami honlapról)
Szerintem amíg ki nem derül, hogy mi okozza a lassúságot, kapcsold ki az automatikus képletszámolást, ahogy Delila is javasolta. Ha szükséges, F9-cel tudod manuálisan kezdeményezni.
Aztán körül kellene határolni valahogy a problémát. Pl. átvinni másik gépre. Átmásolni a lapok tartalmát egy üres munkafüzetbe. Kitörölgetni egyes részeket. Minden próbálkozás után megnézni a sebességet, változott-e valami.
Az első megoldásra én is gondoltam, de sajna ez nekem nem megfelelő megoldás, mert elég sok hivatkozás is van a fileban, amit azért érdemes frissíteni. Sokat haszálom a ctrl H , tehát csere funkciót is, tehát itt is veszélyes, ha nem automatikus az újraszámolás.
Egy munkahelyi fájlról van szó. Ebben nem szerepelt randbetween függvény.
Az sem lehet, hogy azért lassú, mert olyan sok a számolnivaló a fileban, hiszen amíg magyar excelem volt, addig pergően működödtt.
A randbetween függvény két paramétere a 12420 és a 33573 az oszlopod egy részében, egy másik részében a 12420 helyett nagyobb értéket adsz. A kétféle értékkel megadott függvényt váltakozva másolod le az oszlop hosszában. :)
Az Eszközök/Beállítások menü Számolás fülén kapcsold ki az automatikus számolást, a csak kérésre gombot jelöld. A munka befejezése után állítsd vissza.
Közben F9-cel bármikor lekérdezheted az új értékeket, akkor egyszerre számolja ki az képleteket tartalmazó cellákat.
Namost az a helyzet, hogy rendben van a 1934-1991 közötti random évszám, de olyat kellene csinálni, hogy az évszámok nagy része 1991 felé közelítsen, tehát főként újabbak legyenek ezek az évszámok ( valami BIAS, vagy mi ). Van erre is lehetőség, vagy nincs? Köszi újra.
Pl. valamilyen gamma eloszlású véletlenszámot kellene levonni 33603-ból
= 33603-INT(INVERZ.GAMMA(VÉL();alfa;béta))
alfa*béta a gamma eloszlás várható értéke, ezzel tudsz játszani
Az lenne a problémám, hogy nagyon lassú az excelem. Most lett újratelepítve és angol nyelvű. Egy viszonylag nagyobb fájlal dolgozom benne. Minden egyes műveletnél, pl egyetlen egy cella ctrl C és ctrl V beillesztésénél újraszámol. Ez nagyon lelassítja, hisz egy újraszámolás akár 20 mp ig is eltarthat. Ez miinden egyes műveletnél 20 mp idő, nagyon lassú, még a formázások után is újraszámol.
Tudnátok ebben segíteni? Válaszotokat előre is köszi
Az A oszlopban számok összevissza, általában 0-1-2-3 tetszőleges sorrendben, párszáz egymás alatt.
Egy halmazmegfelelőséget szeretnék ráilleszteni. Vagyis lenne egy számsor (amik tulajdonképpen az 1+2, 2+3, 3+1-es halmazok úniói) a 12-23-31-12-23-31-12-23-31-12. Tehát ez 10 egymást követő szám (=halmazok), de mindig csak ez a 3 követi egymást ebben a sorrendben (* erre még kitérek). Ezt szeretném összehasonlítani az A oszlop elemeihez.
A B oszlopban 1-es értéket adjon eredményül, ha az A oszlop cellájában lévő érték eleme a hasonlítandó számsornak (=halmazúniónak), itt a számjegymegefelelőség a lényeg, pl ha A2=2, és a vizsgálandó számsor 12-23-31-12-23...., akkor van megfelelőség, mert a 12-ben (ez a sor első eleme!) benne van az 1-es.
--------------
* :
És most jön a neheze... mert változtatni kell a hasonlítandó számsor kezdetét ha volt előzőleg találat. Ekkor az előző értéktől függően kell kezdődnie.
Tehát találat után azzal a számmal kezdődjön a hasonlítandó számsor, amiben nincs benne az előző találati szám.
A fenti példánál maradva ha A2=2 és ugyebár itt volt a 12 miatt találat, akkor a számsor az eddigi 12-23-31-12-23.... helyett a 31-12-23-31-12... kezdetű legyen (amivel az A3 cellát hasonlítjuk), mert a 31-ben nincs benne a 2-es szám.
---------------
Ha nincs találat akkor az A oszlop következő celláját kell összehasonlítani a hasonlítandó számsor 2. elemével, ha itt sincs találat, akkor az A oszlop következő celláját a hasonlítandó számsor 3. elemével stb. Amint találat van, akkor a *-os részben leírtak szerint változik a hasonlítandó számsor.
Itt egy példa, adott: A oszlop elemei
(az aláhúzottat hasonlítom az adott sorban az A oszlop elemével)
AB megj:
1. 1 első üresen marad, mert nincs előző cella ami a sorrendet határozza meg
2. 2 1 a hasonlító sor A1=1 miatt: 23-31-12-..., van találat a 2~23 miatt, B2=1
3. 1 1 a hasonlító sor A2=2 miatt: 31-12-23-..., van találat a 1~31 miatt, B3=1
4. 2 1 a hasonlító sor A3=1 miatt: 23-31-12-..., van találat a 2~23 miatt, B4=1
5. 2 a hasonlító sor A4=2 miatt: 31-12-23-..., nincs találat 2~31 miatt, B5=üres
6. 3 a hasonlító sor A5=2, nem volt találat miatt: 31-12-23-..., nincs találat 3~12 miatt, B6=üres
7. 3 1 a hasonlító sor A6=3, nem volt találat miatt: 31-12-23-..., van találat 3~23 miatt, B3=1
8. 3 a hasonlító sor A7=3 miatt: 12-23-31-..., nincs találat 3~12 miatt, B3=üres
9. 2 1 a hasonlító sor A8=3, nem volt találat miatt: 12-23-31-..., van találat 2~23 miatt, B3=1
10.
11.
12.
13.
14.
stb.
Remélem érthetően fogalmaztam.
Van erre megoldás? Valami makró vagy akármi :) az se gond ha plusz oszlopokat kell beszúrni, legfeljebb majd utána nem képletként, hanem értékként mentem és az oszlopot törlöm. Manuálisan nekiálltam, de az az érzésem, hogy sose fogok a végére jutni. Rengeteg ilyen (és hasonló) hasonlítást kéne csinálni.
sajnos nincsenek egymás mellett vannak közte oszlopok és ez bekavar tehát, van két oszlop AG es AJ kb 150 sor tele számmal. csináltam 3. oszlopot AK névvel ahol pl a 4 sorban müködik a =MIN(AG4;AJ4) függvény ezt akarom kiterjeszteni az AK7 től az AK 168ik soráig eredményként ami az AG7 től a AG168ig terjed és persze AJ7 és AJ168 min értékeit tartalmazza
Egyből elnézést is kérek a - nyilvánvalóan - elemi kérdésemért!
Hogy a fenébe tudom visszafelé kideríteni, a számból, a dátumot??!! Mert odafelé megy. Kíváncsi lennék, hogy mikor van 40248!
Remélem, legalább "odafelé" helyes ösvényen jártam: 2009.06.11. (39975)-hez hozzáadtam 273-at (39 hét), kijött a fenti szám, de szeretném naptári alakban látni!
Nem tudtam, hogy a két cella nem egymás mellett van, a leírásból nem derült ki. Ha csak két cellát akarsz összehasonlítani, a pontosvessző jó. A kettőspont az tartományt jelent. Mit jelent az, hogy nem tudod másolni a képletet? Mi történik, ha megpróbálod?
ok ez a MIN függvény jó, annyira javitottam ki hogy a kettospont beszámitja a két oszlop közötti értékeket is és kijavitottam pontosvesszore mert vannak közte oszlopok amik értéke nem kell!
viszont ezt a képletet alkalmaznom illetve másolnom kell vagy 200 sor értekeire és nem tudom másolni:-( kettösponttal adjam be a cellák szélsöértékeit?
Ez függvénnyel nem fog menni, pontosan a körkörös hivatkozás miatt. A függvénynek bemenő paramétere a B oszlop. Ha azt felülírod az eredménnyel, akkor a függvény egyik paramétere elvész, és értelmetlenné válik az egész.
Ezt a problémát képletekkel csak úgy lehet megoldani, ha az eredmény egy harmadik oszlopba kerül. Pl. C-be teszed az A és B közül a kisebbet. Aztán visszamásolod a C tartalmát a B-be, de az értékek irányított beillesztésével.
sziasztok , tud vki segiteni? adott egy excel tábla számokkal kb 50 db egy oszlopban 2db oszlop A es B van két oszlop. az B. oszlopban teljesulnie kéne annak a feltételnek hogy ha az A oszlopban lévo szám kissebb mint a B.ben akkor a A oszlopban lévő szám legyen a Bben probáltam IF ill. HA fügyvénnyel körkörös hivatkozással nem jo magyar excel 2003 van köszi
Hát az attól függ... Megmondom, mi a gondom. Ahogy most látom, szóban forgó feladatra makrót írni nem tűnik nagy kihívásnak. Úgy saccolom, kb. 20-25 percet venne igénybe teszteléssel együtt. De csak akkor, ha teljesen képben lennék.
Mondok egy konkrét példát, hogy megértsd. A feladat egy része így szól: "Az összesítés az adatsorok alatt történik, tehát egy újabb lap esetén az új adatsort az utolsó adatsor és az összesítő sor közé kell beszúrni."
Beszúrás előtt a makrónak meg kell keresni az összesítő sort, hogy a beszúrást megfelelően pozicionálni lehessen. Ha az összesítő sor alatt semmi más nincsen a munkalapon, akkor egyszerű dolgunk van: van egy egyszerű algoritmus, ami kiadja az utolsó használt sor pozícióját, és ez egyúttal az összesítő sor pozíciója is. De ekkor sem mindegy, hogy az összesítő sor felépítése milyen. Minden oszlopban tartalmaz adatot? Vagy csak néhányban? Van olyan oszlop, amelyikben biztosan tartalmaz adatot?
Ha pedig az összesítő sor nem a legalsó, akkor ez az algoritmus nem használható, másikat kell találni. Például lehet az összesítő sornak egyedi színe, lehet az első cellájában valami egyedi érték, egyedi megjegyzés, és ezek alapján is meg lehet találni.
Nem akarom túlmisztifikálni a dolgot, de azt meg kell értened, hogy a megfelelő algoritmus kiválasztásában minden részlet számít. Ehhez vagy látnom kell a táblázatot, vagy neked kell részletesen leírnod a felépítését. Esetleg mindkettő, ha nagyon bonyolult esettel állunk szemben. Ha elküldöd a táblázatod emailben, megcsinálom neked ezt a makrót. Ez az egyszerűbb út. Ha nem küldöd el, mert titkos adatokat tartalmaz, vagy akármi, akkor a dolog bonyolultsága attól függ, mennyire hatékonyan tudjuk a részleteket megbeszélni.
Ha nem értesz "makrónyelven", akkor még az is ott van, hogy nem tudod módosítani, ha esetleg később szükségessé válik.
Az összesítő lapon minden újabb lapról két adat kerül egy újabb sorba, s ebből az egyik adatoszlop összesítésre kerül. Az összesítés az adatsorok alatt történik, tehát egy újabb lap esetén az új adatsort az utolsó adatsor és az összesítő sor közé kell beszúrni.
A makróval kapcsolatos ismereteim még szegényesebbek, nem tudom mennyire bonyolítanák el a dolgot.
Köszi szépen! A biztonság kedvéért külön excelfájlban csináltam meg ezeket a műveleteket, aztán értékként visszamásolom. Nem merem megkockáztatni, hogy valamit felülírjon.
Más téma:
van A és B oszlop
az A-ban 1-től 3-ig vannak számok, a B-ben 12, 23, 31 (csak ez a 3 szám), tulajdonképpen a 12 az 1 és 2-t, 23 az 2 és 3-t stb. takar.
Szóval a 12, 23, 31 két halmaz únióját jelenti, és azt kéne vizsgálni, hogy az A oszlop cellája (értéke) eleme-e ennek az úniónak. Ha igen, akkor 1-et kell eredményül adnia, ha nem eleme, akkor üresen hagyni.
példa (C az eredmény (keresett függvény) oszlopa):
Próbáld így: RANDBETWEEN(11324;33603) A 11324 az megfelel a 1931.01.01 dátumnak a 33603 pedig a 1991.12.31-nek. Állítsd a cellákat dátum formátumra. Ha esetleg nem ismerné fel a függvényt az exceled (#NÉV), akkor nézd meg az eszközök/bővítménykezelőben be van e csekkolva az analysis toolpak.
Vagy mondok még egyet: 1. Autoszűrő rátesz az oszlopokra 2. Az összegzett oszlopban beállítod az autoszűrőt az "egyéni"-t kiválasztva: egyenlő *összesen* (csillag is kell) És már másolhatod is ctrl+c cltr+v
A legegyszerűbb úgy, ha a részösszeg az "A" oszloptól balra lévő tagolókkal úgy csoportosítod, hogy csak az összesen mezőket lehessen látni, majd 1. kijelölöd az így egymás alá került összegző sorokat. 2. Szerkesztés menü/Ugrás/Irányított/Csak a látható cellák 3. ctrl + c 4. ctrl + v ahová akarod másolni
Az esetleg nem lenne jó, ha a "másik munkalapon" (pl. Munka2) egy adott cellában hivatkoznál a részösszegeket tartalmazó munkalapra (pl. Munka1) és cellára (pl. B7)?
Másolni nem tudom. De az fkeres függvénnyel átvihető
1. Ha résszösszegnév oszlop nem az első oszlop, akkor beszursz egy oszlopot az adattábla elé, és bemásolod oda.
2. A részösszegek neve: csoportnév+függvény neve. Ezért a csportneveket leírod egymás alá, majd összefűzöd a függvénynévvel, mondjuk a Boszlopban. pl. körte&" Össz." =körte Össz.
2. Ezután az Fkeres már müxik. =Fkeres($B2;Adattabla;c$1;0)
B2-ben részösszegnév, c1-ben pedig, hogy a részösszeg hanyadik oszlop az adattáblában.
köszi mindkettőtöknek a segítséget. régóta tervezem, hogy letöltöm kompletto tutto az egész fórumot ls végiganalizálom, de még nem tettem meg, nézzétek el nekem.
Ja és mellesleg, ha már itt tartunk, a makróba az új munkalap beszúrását, átnevezését, és a megfelelő cellák automatikus kitöltését is bele lehet építeni.
Lehet, hogy már van jobb megoldásod, nem néztem végig a többiek javaslatait. A változatosság kedvéért itt egy felhasználói függvény.
Function Követési_távolság(KezdőCella As Range, Cella As Range) Dim Hit As Range, Result As Long
With Cella Set Hit = .EntireColumn.Find(what:=.Value, after:=Cella, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious) If Hit Is Nothing Then GoTo hiba If Hit.Row >= Cella.Row Then Result = .Row - KezdőCella.Row + 1 Else Result = .Row - Hit.Row End If End With Követési_távolság = Result Exit Function hiba: Követési_távolság = "hiba" End Function
B1-be a képlet: =Követési_távolság($A$1;A1)
Lehúzással kiterjeszthető akármeddig. A KezdőCella az a cella, amelyikben az első számod van.
Hát igen, úgy látszik ezt a kompromisszumot meg kell kötni, az új lap átnevezésén felül, még egy adatot be kell írni valahova a lap beillesztéséhez.
Köszönöm!
Lenne itt még valami: Ugyanebben a fájlban van egy összesítő lap, amely az újabb, és újabb lapok esetén mindig egy sorral bővül. Ezt a sor beszúrást lehetne automatizálni?
Ha legközelebb megint probléma lenne egy függvény angol-magyar neve, keresd meg a saját gépeden a FUNCS.XLS fájlt (általában itt található: C:\Program Files\Microsoft Office\OFFICE11\1038\) ebben mindent megtalálsz.
Még annyit hozzátennék, hogy ahol 0-k vannak a forrásoszlopban, ott a 0 első előfordulásakor a cellákat eltolva adja az eredményt, aztán a továbbiakban a 0 helyénél nem ír ki semmit, üresen hagyja azt a sort, függetlenül attól, hogy a B1 sorba beírtam-e 0-t a többi vizsgált szám mellé vagy sem.
Végülis ez nem baj, mert a 0-kat nem muszáj kijeleznie, vagy legfeljebb megszámolom. Vagy kicselezem, és átírom a 0-kat másik számra és úgy vizsgálom meg, aztán visszaírom.
Hogyan lehet azt megoldani, hogy csak a kijelölt tartományban végezze el a makrót? Mert ha csak úgy elindítom, a munkafüzet többi részét felülirja (elcseszi), ahova pedig nem is kéne írnia.
Most azt csinálom, hogy egy külön excel táblába kimásolom csak a forrásoszlopot, és ott futtatom le a makrót. Aztán visszamásolom a kapott eredményt.
Kipróbáltam 20.000 db, 5 féle adattal. Az én lassúcska gépemen 49 sec alatt végzett vele. Ne felejtsd el az adatok fölé B2-től kezdve jobbra beírni a különböző értékedet.
Sub valami() Application.ScreenUpdating = False For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count For sor = 2 To ActiveSheet.UsedRange.Rows.Count sz = Cells(sor, 1) If sz = Cells(1, oszlop) And f = 0 Then Cells(sor, oszlop) = sor - 1: f = 1 End If If Cells(sor, oszlop) = "" And oszlop - 1 = sz Then Cells(sor, oszlop).Select felso = Cells(sor, oszlop).End(xlUp).Row Cells(sor, oszlop) = sor - felso End If Next f = 0 Next
'Összes előfordulás másolása a B oszlopba For sor = 2 To ActiveSheet.UsedRange.Rows.Count Cells(sor, 1).Select oszlop = Selection.End(xlToRight).Column Cells(sor, 2) = Cells(sor, oszlop) Next
'Első sor, és C:F oszlopok törlése Rows("1:1").Select Selection.Delete Shift:=xlUp Columns("C:F").Select Selection.Delete Shift:=xlToLeft
Range("A1").Select Application.ScreenUpdating = True End Sub
Viszont ez előrefelé számolja a sorrendet, szóval előbb meg kell fordítanod a sorrendet...majd vissza...a függvényt meg value formájában kell lementeni...
Sub valami() For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count For sor = 2 To ActiveSheet.UsedRange.Rows.Count sz = Cells(sor, 1) If sz = Cells(1, oszlop) And f = 0 Then Cells(sor, oszlop) = sor - 1: f = 1 End If Next f = 0 Next For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count For sor = 2 To ActiveSheet.UsedRange.Rows.Count sz = Cells(sor, 1) If Cells(sor, oszlop) = "" And oszlop - 1 = sz Then Cells(sor, oszlop).Select felso = Cells(sor, oszlop).End(xlUp).Row Cells(sor, oszlop) = sor - felso End If Next Next End Sub
A törlést szeretném elkerülni, mert akkor már egyszerűbb ha én megszámolom és beírom manuálisan, vagyis időben kb ugyanannyi.
Sokszor nem kell a jövőben csinálnom, de jelenleg kb 20ezer cellát kéne így megvizsgálni. És manuálisan kicsit sokáig tartana, bár elkezdtem, de háromszáznál abbahagytam :) Jobb lenne valami frappánsabb, gyorsabb megoldás.
Amit beraktál képet, ott tényleg valami bibi van a számolást illetően.
De az a baj, hogy azért nem 100%-os ez a megoldás...
És mi a lényeg?
Hogy csupán függvénnyel 100%-ig automatikusan megoldjuk, semmi törlés stb..., vagy hogy csak simán "kész legyen" :-)))...szóval, hogy csak egyszer kell ilyesmit csinálnod, vagy sokszor majd a jövőben?
És az pl lehetséges, hogy utólag filterrel töröld azokat a sorszámokat, amik pl nem az egyesre vonatkoznak?
Azt tudom hogyan sorszámozz, ha van külön 1-es, 2-es stb oszlopod, de az a baj, hogy csak úgy tudom megoldni, hogy legyen érték a nem egyesek mellett is...
Köszönöm az együttérzést és a segíteni akarást! Nem szeretnék senkit se lefoglalni, ha van fontosabb, dolga is. De ha szívesen foglalkozol vele, azt nagyon szépen köszönöm!
Az eredmény lehet külön-külön oszlopban is, tehát ha 5 számot vizsgálunk az A oszlopban akkor B-ben az 1-esek, C-ben a 2-esek, D-ben a 3-asok, E-ben a 4-esek, F-ben az 5-ösök... ha így hamarabb van rá függvény. Ilyenkor üres cellákkal szeretném feltölteni (meghagyni) az oszlopot, ahol nincs találat.
Nem találtam függvényt, de biztos van rá valami ügyesség :)
Szóval egy oszlopban vannak számok, pl 1-től 5-ig. A mellette lévő cellában szeretném megjeleníteni, hogy hány cella múlva jelenik meg megint az a szám. Már az első cellától kéne számolni, hogy mikor jelenik meg (de ha csak a keresett szám első előfordulásától számolja az is jó)
Példa: A oszlop a számok 1-5 között, B oszlop az eredmény
Vegyünk egy függvényt a 3. lapon, amely a 2. lapról vesz adatot. Például:
=SZUM(Munka2!C4:D14)
A cél az, hogy a 2. munkalap neve ne egy fix dolog legyen, hanem szintén paraméter. Ezt ugye az INDIREKT függvénnyel lehet megoldani. Ha az aktuális munkalap A1 cellájában van a 2. munkalap neve (tehát A1 = "Munka2"), akkor a fenti példa így módosul:
=SZUM(INDIREKT("'" & A1 & "'!C4:D14"))
Tegyük fel, hogy a 3. lapod tele van olyan képletekkel, ami a fenti módon hivatkozik a 2. lapra: az A1 cellából veszi a lap nevét. Ha ezt a 3. lapot lemásolod, és így létrejön a 4. lap, csak annyi dolgod van, hogy ezen a 4. lapon átírod az A1 cella értékét Munka3-ra, és máris az összes képlet a 3. lapra fog hivatkozni.
Ha pl. a harmadik lapot átmásolom negyediknek, mitől írodnak át automatikusan a második lapra vonatkozó cella hívatkozások a harmadik lapra vonatkozóra?
Lenne egy problémám amihez egy kis segítség kellene:
Van egy elég nagy mennyiségű lekért adathalmazom (főkönyvi karton több ezer sor), és elképzelhető, hogy vannak kétszer szereplő tételek benne amiket szeretnék kiszűrni.
Van rá bármilyen ötletek, hogy ezt hogyan tudnám megcsinálni? A legegyszerűbb A-Zig sorba rakom és átnézem ilyen mennyiségnél túl időigényes amivel nem állok éppen túl jól :P
Esetleg azt be tudom állítani, hogy az autószűrő bekapcsolása után kiírja, hogy melyik szűrés esetében hány találat van?
Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
Sub DiskInfo() Dim Sectors As Long, Bytes As Long, FreeC As Long, TotalC As Long, TotalGB As Single, FreeGB As Long GetDiskFreeSpace "C:", Sectors, Bytes, FreeC, TotalC Debug.Print " Drive C:" TotalGB = TotalC / 1024 * Sectors / 1024 * Bytes / 1024 Debug.Print " Total space: " & TotalGB & "GB" FreeGB = FreeC& / 1024 * Sectors / 1024 * Bytes / 1024 Debug.Print " Free space: " & FreeGB & "GB" End Sub
Mi lenne, ha minden munkalapon kijelölnél n db cellát, ahová beírod azon munkalapok nevét, ahonnan a képletek adatokat vesznek. Pl. A1, B1, C1, stb cellák. Akkor minden munkalapon ugyanazokat az indirekt képleteket használhatnád, csak az adatforrás-munkalap neve, mint paraméter, nem képletből jön, hanem fix érték.
A feladat lényege: van egy exel fájlom és abban egy munkalap tele adatokkal. Bizonyos okokból - előre megjósolhatatlan mennyiségben - újabb munkalapokat kell létrehozni, nagyon hasonlót az elsőhőz, részben annak adataira támaszkodva, de ami a lényeg: mindegyik újabb lap az őt megelőző lap adatait is használja! Az elképzelésem az volt, hogy az új lapot az utolsó lap másolásával hozom létre, és az új lapnak a következő sorszámnevet adva (és a lapokon az előremegírt relativ munkalapnév hivatkozásokat kihasználva) egyéb változtatás nélkül mindjárt használhatom a lapot.
Hát ez esett kútba munkalapnév "egységesítése" miatt.
Amikor több adasorod van, és ezeket nem egymás mellé tett oszlopokkal szemlélteted, hanem egymásra helyezve. Pl. Árulsz almát, körtét, meg dinnyét, és évente az ebből származó bevételedet nem egymás mellé helyezed, hanem egymásra, így az oszlop teteje egyből az összbevételt is szemlélteti. Tetszel érteni?
Akkor minősítem magamat: béna vagyok. Nálam tényleg nem megy másik munkalapra. Egy olyanban próbáltam ki, amiben sok makró van sok eseménykezeléssel, valszeg ezek vmelyike kavarhat be. (Kijelölöm a tartományt, katt a fényképezőgép ikonra, katt egy másik munkalapra és nem jelenik meg a vonalkereszt ikon, amivel a helyét kéne megadnom (mert a kijelölés megszűnik valszeg vmelyik eseménykezelő hatására...)
Biztosan lehet vele kezdeni valamit, de nem biztos, hogy a megkezdett úton érdemes továbbhaladni. Ha elmesélnéd, hogy mi a cél és mi a jelenlegi felállás, könnyebb lenne válaszolni.
A segítségeddel az exel fájlom több munkalapján is felhasználom a munkalap nevét. A baj az, hogy valószinűleg a fájl nyításakor ad értéket ezeknek a függvényeknek (pontosabban valószinűleg csak egynek) és a függvényben mindegyik, a fájl nyításakor éppen aktuális (látszó) munkalap nevét kapja. Tehát mindegyik munkalapon a függvény mindegyiknek ugyanazt az egy munkalap nevét adja!
Kész a zürzavar, híbás számítás, körkörös hívatkozás stb.
Egy kis problémába ütköztem és segítséget szeretnék tőletek kérni.
2db probléma van.
1. Hogyan tudom azt megoldani, hogy habár bizonyos oszlopkat elrejtek a pivotban, attól azok még a százalékokból ne tűnjenek el? A nagy TOTÁLhoz szeretnék viszonyítani, iszont látni meg nem szeretnék mindent.
2. Hogyan tudok úgy sorrendbe rakni a pivotban, hogy azt ne a totál szerint tegye.
Ja már értem. Nem a figyelőablka ez. Én sem ismertem, és tök jó, mert gyakorlatilag kézzel meg tudod neki adni a szerkesztőlécben a megjeleníteni kívánt tartományt.
nem tudom hol lehet elérni menüből, én a testreszabásnál kitettem eszköztárba (gyorselérési eszköztár). Nagy táblázatnál jó, ha a tábkázat egy részén dolgozol és kiváncsi vagy, hogy egy jóval messzebbi részén mi történik ennek hatására. Kiejlölöd azt a részt amit figyelni szeretnél, aztán fényképező ikon klatty, és kijelölöd, hogy hol akarod látni azt a területet. Nagyon kellemes.
Egy exel fájlon belül, egy változó érték szerint más-más munkalapon található cellaértékre van szükségem. Híába állítom elő szövegként az aktuális munkalap nevét, a hívatkozás nem ismeri fel.
Pl. =+A1!C3 az A1 cellában található szöveg formátumú munkalapnevet nem ismeri fel, nem olvassa ki az ilyen nevű (létező) munkalap C3-as cellájából az adatot!
túl sok kárt nem csinál, sőt, egyáltalán semmit. Az egyéni nézetek beállításával gyorsítani lehet a munkát, mikor egy-egy táblázat adatait különböző nézetekben szeretnénk látni, nyomtatni. Pl. sorok, oszlopok elrejtése, képletek vagy eredmények mutatása, cellarácsok mutatása-elrejtése, sor- és oszlopazonosítók a nyomtatásban, görgetősávok, lapfülek láthatósága, stb.
Köszi a tanácsot mindkettőtöknek, gúglit próbáltam, első dolgom volt (azt, hogy a funcres.xla az analysis pack része, azt a gúgliból tudom, és mikor olvastam, beugrott, h azt én teepítettem), viszont nem adott értelmes eredményt a reports.xla vonatkozásában, így azt gyanítom, hogy az vírus.
Viszont sztem az eltávolításával inkább nem fogok szórakozni, mert strombának igaza lesz, ahogy elnézem túl sok kárt nem csinál, én meg úgysem adok tovább file-okat, tehát terjedni sem fog.
Meg úgyis nemsokára legyalulom a vindózt a gépről, és teszem újra.
Költői a kérdés - csinál is valami rosszat az a fájl, vagy csak zavar hogy ott van? A makrovírusoknak általában van egy fertőző rutinjuk, amit a legalapabb víruskeresők is észrevesznek, tehát leginkább egy vírusellenőrzést kellene elkövetned.
Ha tényleg makrovírus, akkor minden fájlt megfertőzött, ami akkor vagy az után került megnyitásra amikor a gyanús fájlt megnyitottad.
Ha nem vírusos, de ki akarod törölni a fájlt:
visual basic editor
immediate ablak
miközben a reports.xla fájl ki van jelölve, írd be az immediate ablakba:
?Thisworkbook.Path
Majd másold ki a fájl elérési útját az immediate ablakból, zárd be az excelt, nyisd meg a fájlt tartalmazó alkönyvtárat exploreren keresztül aztán töröld ki.
Mivel több átalakítani valód van, nem If-fel érdemes figyeltetni az értékeket, hanem a Case utasítással, ami több elágazást enged.
Sub Csere() For sor = 2 To ActiveSheet.UsedRange.Rows.Count orsz = Cells(sor, 4) Select Case orsz Case "GB", "IE" Cells(sor, 4) = "UK" Case "MO" Cells(sor, 4) = "HU" ' 'Ide jön a többi... ' End Select Next End Sub
Az egyaránt UK-ra átírandó GB és IE egy sorba írható, vesszővel elválasztva.
Lenne egy egyszerű kérdésem, amit valószínüleg már tudnom kéne, de mégsem tudom.
Ha macroban azt szeretném, hogy sorról sorra nézze meg a D oszlop tartalmát és írja át, ha szükséges. Pl. GB és IE-t szeretném átírni UK-re.
Ezt írtam:
Range("D2").Select
If ActiveCell.Value = "GB" Then ActiveCell.Value = "UK" ElseIf ActiveCell.Value = "IE" Then ActiveCell.Value = "UK"
STB.STB...
A kérdésem az lenne, hogyan tudok sorról sorra lefelé menni cellénként, hogy az egész oszlopot megnézze ne csak ezt az első cellát?
Tudom, hogy ennek valahogy benne kéne lennie a macrokban, amiket írtatok (Delila :-))...de úgy látszik nem eléggé világos nekem.
Megtudnátok mondani?
A másik kérdésem az lenne, hogy van olyan funkció, ami beírja a cellába az adott fájl tulajdonosát? Az az infót, ami a Properties Author alatt található?
Köszi! Részsiker. Azaz edigiekre teljes:) Csak ezen a módon, ha azonos módon akarom B3-b10-ig beírni a képletet az "A" oszlopba, akkor most jelenleg nincs rá tippem. A szokásosjobbsarok-lehúzós módszer meghagyja a b2-t minden sorra, nem változik b3, b4 ... b10-re. Vagy lelkes beállítgatgatásomban elállítottam valami alapértelmezést? :)
Mindenesetre egy cellára jó megoldás. Köszi még egyszer
ahogy a nagy könyvben meg van írva, úgy szoptam be egy makrovírust.
Rendszeresen operálok egyszerű makrókkal, így amikor megnyitok egy excel filet, gyakran teszi fel a program a biztonsági kérdést, hogy a file makrókat tartalmaz, futtassuk-e őket. Én meg csípőből klikkelek, hogy igen, futtasd.
Kaptam valakitől egy XLS file-t, ami pusztán adatokat volt hivatott tartalmazni. Megnyitottam, az Excel feltette a kérdést, hogy futtassuk-e a makrókat.... és én szokás szerint csípőből klikkeltem, hogy igen. Mikorra eltűnt a dialógusablak, már kezdtem káromkodni, hogy makrók nélkül kellett volna, mert ez biztos vírus.
Természeteseen ha megynitom az Excel alatt a VB-t, van egy password védett funcres.xla-m, ami az általam szándékosan telepített Analysis Toolpack, viszont van egy másik, a REPORTS.XLA, na ilyet én rohadtul nem telepítettem, más sem.
Természetesen passwordot kér.......
Mi a teendő? Köszi!
Tudom, hogy s***fej voltam, dehát reflexből a makró megnyitására klikkeltem....
Van arra lehetőség, hogy egy adott cellában ha van egy képlet az mindig fixen megmaradjon a célcellák változása ellenére? Például, ha az A2-es cellába beírom, hogy =B2/2, akkor mindig a B2-es cella aktuális értékének felét mutassa. Ha a B2 cellát törlöm, és eltolja felfele az egész maradék alatta levő részt, akkor #HÍV! vagy valami hasonló szöveget dob A2-re. A cél az lenne, hogy az B2 cella törlés után az épp aktuális B2-es cellatartalmat (Azaz a korábbi C2-t) vegye figyelembe és ne szaródjon el a beírt képlet vagy függvény ami a B2 cellát használja.
Nekem az a gondom, hogy 2007-es excelben adott egy pivot táblát tartalmazó xlsx-em, és azt átmásolva valahova, az data source megváltozik, és arra a helyre hivatkozk, ahol a file volt tárolva. A file nem külső forrásból frissíti az adatot, hanem csak egy másik tab-on van az adatbázis amiből a pivot dolgozik, tehát ugyanabban a fileban.
Ez azért kényelmetlen mert ha felrakom a file-t a szerverre, valaki leveszi és módosítaná az adatbázist, majd befrissítené, nem tudja mert máshova hivatkozik a data source, így apivot nem frissül, ráadásul kérdezgeti, hogy frissíthet-e külső forrásból... Ez egy rossz vicc, komolyan...
Tehát pl. van egy adatbázisom, ahol sok sok sor van...
Pl kérdőívek eredményei kliensekként...
Nekem kimutatást kell csinálnom országonként. Egy excel füzetben egy ország adatai lehetnek CSAK és kizárólag...
Minden ország münkafüzete ezeket kell, hogy tartalmazza:
Sheet1=nyers adatai az országnak
Sheet2=pivot a nyers adatból
Sheet2=még egy pivot a nyers adatokból
Összesen 34 munkafüzetet kell létrehoznom, mindössze abban külömböznek a füzetek, hogy más más országra vonatkoznak.
Igen, tudom Pivotban lehet szűrni, de nem láthatják az ország menedzserei a többi ország eredményét, ezért nem maradhat minden nyers adat...csak az adott országra vonatkozó...
Nem tudom így már érthetőbb-e...
valami olyat kéne csináljon a makró, hogy:
1. kiszűri országonként a nyers sorokat egy új munkafüzetbe
2. az új munkafüzetben létrehozza a két pivotot két plusz sheet-en
3. és mindezt annyiszor, ahány ország van a fájlban
Ezt lehet, hogy annyire nem boynolúlt megcsinálni :-)...bár per pillanat még nem tudom hogyan álljak neki...az országonkénti kiszűrögés már nagyon jól megy :-)...
Tudna valaki tanácsot adni, hogyan álljak hozzá. Pont ezt csinálom most és, ha még egyszer végig kell játszanom, akkor fejbelövöm magam.
Tehát van egy adatbázisom, ahol országonkánt sok-sok sor van. Minden hónapban országonként szét kell dobálnom a sorokat és minden országnak külön pivot táblái is vannak.
Egy fájl 3 sheet-ből áll. Pivot1, Pivot2, Data
És ez 17*2 országonként....34 fájl...
Mostani módszer: megcsinálom a "Mintafájlt", majd szűrő "nem egyenlő x ország", pivot frossítés, elment új néven és így tovább 34-szer. Képzelhetitek milyen lelkesítő feladat.
De persze tisztában vagyok azzal, hogy lehet ezt egyszerűbben is...
Hogy kéne neki állni?
Tudtok nekem irányt adni?
azt már megtanultam, hogyan másoljam macro-val egy munkafüzetbe országonként az adatokat, hogy pivot-ot hogyan tudnék?
Még olyan kérdésem van, azt hogy lehet megcsinálni, hogy ha két oszlopból dolgozok, akkor eredményül a két oszlop egy-egy cellájával hajtson végre műveletet: ((A1-1)*3)+B1, az A-ból vonjon ki 1-t majd szorozza meg 3-mal, majd adja hozzá B-t, de ha az egyik szám közülök 0, akkor 0-t adjon eredményül?
Csak azért, mert a példádból azt lehetett leszűrni, hogy hasonlóság van a számok között (1-101,2-202,3-303 stb.) és ha csak ilyesmi számok lennének, akkor akárt azt is beírhatnád, hogy:
=LEFT(A1,1)
De akkor valószínű nem ennyire egyszerű a dolog...
Mindenféle egész számok vannak és nem csak kettő szám van egy halmazban ahogy az egyszerűsített példában írtam, hanem több. A 101, 202, 303 stb is csak egyszerűsítés volt, így gyorsabb volt begépelnem ide. Bocs ha félrevezető volt.
Azt hiszem ez nem müködik, mert a HA + VAGY -os esetben magába a függvényve írtam bele a feltételeket, nincs külön oszlop a halmazokhoz, és nem is szeretnék, mert a 10 halmaz 10 oszlopot jelente ha jól gondolom. De plusz 1 oszlopot se szeretnék.
Tehát most így néz ki leegyszerűsítve az A1-re vonatkozó értékeket, ami nem működik a 7-nél több VAGY miatt:
Már hogy a DSUM, DMAX Stb függvényt? Persze, szívesen.
Én azt szerettem volna, ha csak abban az esetben keresi meg a legfrissebb dátumot, ha több feltételnek is megfelelnek a sorok, ezért a DMAX függvényt használtam:
SERVICE800_Export!$A$1:$BA$6000 = Ez az adatbázis range, amin dolgozunk
"STATUSDATE", = ez az oszlop neve ahol a dátumot meg kell néznie
$H$56:$I$57 = itt található a filter, fontos hogy mint az advenced filternél a feljécnek is szereplnie kell, egyébként nem tudja mit keressen.
Nálam a $H$56:$I$57 -ben ez található:
MODEL DIVISIONCustomer CountryPSSDZA
Tehát ott keresi meg a legfrissebb dátumot, ahol az ország ZA és a divizió meg PSSD.
Tehát a logikája teljesen olyan, mintha advenced filtert határoznál meg, lényegében korlátlan mennyiségű feltételt megadhatsz (ezt egy range formájában teszed)...(nekem van hogy pl 17 filter van megadva).
Lehet, hogy máshogy is meg lehet oldani...nekem így sikerült de teljesen jól működik.
Igen, ahogy József mondta, FKERES-sel működhet. Biztosan magad is rájönnél, hogyan kell, de mivel sürgősen kérted a választ, leírom, talán még nem késő.
- A oszlopban a halmazelemek - B oszlopban az, hogy melyik halmazban van
Ha meg akarod tudni, hogy pl. az F1 cella értéke melyik halmazban van, ez a képlet: =FKERES(F1;A:B;2;HAMIS)
Ez így csak akkor működik, ha egy szám egyszerre csak egy halmaz eleme lehet.
Lehetséges, hogy a VAGY-ok száma korlátozott egy függvényben? Függvények egymásba ágyazásába maximum hetet enged az Excel. A változó paraméterszámú függvényeknél (pl. SZUM, VAGY stb.) Excel 2007 előtt általában 30 darab a paraméter szokott a határ lenni, Excel 2007-ben 255. Ha tényleg ez a hiba, hogyan lehetséges enélkül megcsinálni? Esetleg FKERES-es megoldás?!
Amire hivatkoztam Delila 1 válaszára, hasonló a történet, csak 10 halmaz van. 1 halmaznak több szám tesz eleget, ezt vizsgálom a HA és VAGY függvénnyel. Ha az A oszlop cellájában lévő szám az első halmaz része, akkor 1-et adjon eredményül, ha a második halmaz része, akkor 2-t és így tovább 10-ig.
Csináltam több függvényt ezzel a HA és VAGY függvénnyel. De hibát jelez ki az egyik megírt függvénynél, figylemeztetés ugrik fel: "A beírt képlet hibás", és kijelöli (fekete háttér) a képletben a nyolcadik VAGY -ot. Összesen 10 VAGY szerepel a képletben, Excel 97-et használok.
Lehetséges, hogy a VAGY-ok száma korlátozott egy függvényben?
Ha tényleg ez a hiba, hogyan lehetséges enélkül megcsinálni?
Igen ez a megoldás is felmerült, de szeretném sima függvénnyel megoldani anélkül, hogy bármit beírkálnék az eredeti nyers adatba, mivel az a sheet naponta felülírásra kerül.
Szeretném ha minél egyszerűbb lenne a használata, tehát hogy ne kelljen újraírni a függvényt napi szinten és mindig működjön...
De már meg is oldottam ezzel a DMAX DSUM stb. függvénnyel :-)... Klassz kis függvény, nem is ismertem eddig. Olyan mintha az ember advenced filtert használna egy függvényen belül...:-) tényleg tök jó.
Köszi a segítséget!!!
(Ps. Főnököm végre elintézte, hogy legyen hozzáférésem a fórumhoz...haha :-)))...)
Most próbáltam, és sajna ez nem nyerő, mert nálam az említett példához képest eltérő a táblázatom, mert vannak közte üres oszlopok az áttekinthetőség végett, valamint csak az A oszlopban lévő számokra hivatkozó függvényekkel számolok több oszlopban (B, D, F, G). A B-ben működik a duplakattintás, a többiben nem :-((
Volna még mit fejleszteni a táblázatkezelőn, mert szerintem ezek nagyon alapvető elvárások!
Van-e arra valami praktika, hogy a B, D, F, H oszlop első cellájától "húzással" egy lépésben lehessen a 2-100-ig cellákat feltölteni.
Eddig oszloponként külön-külön kellett elvégeznem, ami így jóval-jóval időigényesebb :-/
Mivel nem-összefüggő tartományt alkotnak az oszlopok ezért egy lépésben nem tudod megoldani, azonban ha "húzás" helyett duplán kattintasz a képlet cellája kitöltőfülére, akkor a mellette levő oszlop első üres cellájáig végigmásolja a képletet. Magyarul 4 darab duplakattintással megúszhatod.
Ezt a figurát kíváncsiságból kipróbáltam, nálam sem megy.
Kicsit hasonló a kérdésem... vagy mégsem? :)
Pl van 8 oszlop és az A, C, E, G oszlop 100 sora adatokkal feltöltve. A B, D, F, H oszlop első cellájában van függvény az elötte lévő oszlop (A, C, E, G) cellájában lévő adatból vonatkozva.
Van-e arra valami praktika, hogy a B, D, F, H oszlop első cellájától "húzással" egy lépésben lehessen a 2-100-ig cellákat feltölteni.
Eddig oszloponként külön-külön kellett elvégeznem, ami így jóval-jóval időigényesebb :-/
A formátum alapján vizsgáltatom a másolandó cellákat.
Sub Keplet_Copy() usor = Range("C65536").End(xlUp).Row For sor = 2 To usor If Cells(sor, 2).Interior.ColorIndex = 36 Then Cells(sor, 2).Copy Cells(sor, 6).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 7).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 9).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 10).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 11).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 13).Select Selection.PasteSpecial Paste:=xlFormulas Cells(sor, 14).Select Selection.PasteSpecial Paste:=xlFormulas End If Next Application.CutCopyMode = False End Sub
Felrakom ide az excelt...
http://addat.hu/602f7c00/mintaexcel.xls.html
a mögöttes füleket kitöröltem, úgyhogy megnyitás után a nincs frissítésre kell kattintani.
A B és C oszlopok az alapok mondjuk, ahol a szürke sorokban van összegzés.
ha kinyitod a + jelkkel látod felette az összeadandó értékeket.
tehát a szürke sorokat kell átmásolni a további (F,G,I,J,K,M,N) oszlopba.
Itt már kézzel megcsináltam, de ha változtatni akarok ezt-azt, nem nagyon esik jól mindig "ctrl+c ctrl+v-zni"... :)
TI
Sub Keplet_Copy() usor = Range("B65536").End(xlUp).Row 'B For sor = 2 To usor If Cells(sor, 2).HasFormula = True Then 'B Cells(sor, 2).Copy 'B Cells(sor, 4).Select 'D Selection.PasteSpecial Paste:=xlFormulas End If Next Application.CutCopyMode = False End Sub
Ez a B oszlopban vizsgálja, hogy képletek vannak-e. Igaz esetén a D oszlopba másolja a képletet.
B és D betűkkel jelöltem a sorokat, ahol átírhatod a saját elrendezésednek megfelelően.
Köszönöm a válaszokat...
De egyelőre egyik se jött be.
Az irányított beillesztéssel próbálkoztam én is.
Nem jött be.
a makrós megoldás azért nem jó, mert a konstansok nem konstansok, hanem más táblákból áthozott értékek ebben vegyesen van szumha, fkeres, vkeres, vagy akár abszolút hivatkozás is.
a vastagított képletek pedig nagyrészt szum függvények, de van benne összeadás kivonás is.
Sub képletmásolás() Dim Forrás As Range, CélOszlop As Range, c As Range
Set Forrás = Range("C2:C8") Set CélOszlop = Range("E:E") For Each c In Forrás If c.HasFormula Then With Intersect(CélOszlop, c.EntireRow) .Formula = c.Formula .Interior.Color = c.Interior.Color End With End If Next End Sub
A makró végignézi a Forrás összes celláját, és ahol képletet talál, azt átmásolja a forrás cella sora és a CélOszlop által kijelölt metszetbe. Forrásnak add meg azt a tartományt, ami a másolandó képleteket tartalmazza. CélOszlopnak add meg azt az oszlopot, ahová másolni kell.
Köszi!
De sajnos nem megy.. a képletek kijelölésére ez remek módszer.
Nekem viszont a beillesztésnél vannak gondok.
Irányított beillesztésben nincs erre lehetőség, és az excel beállításaiban sem találtam semmit.
Az Excel terminológiában a fájl (file) és a munkafüzet (workbook) gyakorlatilag ugyanaz. A lapokat munkalapnak nevezik (worksheet). Csak azért mondom, hogy ha legközelebb kérdést fogalmazol meg, egy fölösleges kört elkerülhetünk, ha úgy fogalmazol, hogy mindenki ugyanazt értse alatta.
a kijelölt cellák képletek. ezeket a képleteket akarom átmásolni a jobb oldali tábla üres mezőibe. Ugye kivágás beillesztéssel egymás alá rakja az excel a képleteket, nem hagyja ki a 2 helyet.
Ez egy leegyszerűsített tábla. A valóságban egy kb 400 soros táblából 40 képlet. így egyesével átmásolgatni macerás.
Az a problémám, hogy nekem az összeg_tartománynál hiába jelölök ki több oszlopot, nem adja össze őket (pedig az kellene). Az viszont macerás, hogy x-szer összeadom az eredeti szumha függvényeket, főleg mert kb. 30-szor (vagy többszőr) kellene összeadnom :-(
a kijelölt cellák képletek. ezeket a képleteket akarom átmásolni a jobb oldali tábla üres mezőibe. Ugye kivágás beillesztéssel egymás alá rakja az excel a képleteket, nem hagyja ki a 2 helyet.
Ez egy leegyszerűsített tábla. A valóságban egy kb 400 soros táblából 40 képlet. így egyesével átmásolgatni macerás.
Köszi a válaszokat. Régebben egy nagyon rövid ideig használtam Office 2003-at, de a mentésnél a fájl nevébe beleírtam, hogy ez a 2003-assal van elmentve, hogy ránézésre is tudjam, hogy mi a pálya. Aztán erről a variálásról leszoktam, és csak a 97-est használtam. Most 99%-ban főleg régebbi windózt használok, amire ezek szerint a 2003-as nem is telepíthető.
Az elve nagyon egyszerű: 1, 0 számjegyekből csinálunk egy számot, értéke szerint ahány jegyű szám keletkezik az dönti el, hogy hol van az első nulla. Utólag megnézve, hatékonyabb lenne 2 hatványra emelni 10 helyett és kettes alapú logaritmust venni.
Működik a dolog, csak egyetlen szépséghibája van, amit nem tud megoldani: ha nulla szerepel az oszlopokban, akkor nem nulla végeredményt ad, hanem #ÉRTÉK-et. Erre van vmi megoldás?
Egy kis problémám van a celle-formázással. Azt szerteném, hogy a beírt szám sorszámként jelenjen meg, tehát pont legyen utánna (pl.: 15.). Egyéni formtummal el is tudom érni, de a file újranyításakor híbát jelez és el is veszíti a cella az egyéni formátumot.
Olyan rég nem használtam már '97-es Excelt, hogy nem emlékszem a különbségekre. Már a 2000-es verziót sem szeretem, mert a makróim zöme nem fut rajta. Halványan úgy rémlik, mintha a '97-es még a Windows 3.x-re írt, 16 bites, 5.0-s verziójú Excel meghosszabbítása lenne. (Vagy lehet, hogy az a '95-ös Excel...?)
Mindegy, talán nem tévedek nagyot, ha azt mondom, hogy az Excel legalább annyit változott 97-től 2003-ig, mint a Windows '98-tól az XP-ig.
Office 2000-t még lehet Win98-ra telepíteni, Office 2002-t már nem. Az Office 2003 meg már a Win2K-ra is csak úgy megy fel, ha legalább SP3 telepítve van. Ez azt jelzi, hogy az Office szoftverben lényegi változások történtek, olyanok, amelyek a belső, láthatatlan működést érintik, bár kifelé esetleg nem látszanak, mert a felhasználói felület megmaradt. Szóval nem tudom. Excel 2003-ban van olyan lehetőség, hogy a táblázatot '97-es formátumban mentsd el, talán nem véletlenül.
Nyitottam új fájlt, átmásoltam a hibás munkalap tartalmát cellapacnikat kijelölve szépen fokozatosan. Így már müködik az új munkafüzet. Először az oszlopok kijelölésévél próbáltam másolni, úgy nem múlt el a hiba.
Tegyük fel, hogy az A3:I3 tartományban vannak a számok: A következő képlet megadja, hol van az első nem nulla szám érték: ={OSZLOP($I$3)-OSZLOP($A$3)+1-INT(LOG(SZUM(HA(A3:I3<>0;1;0)*10^(OSZLOP($I$3)-OSZLOP(A3:I3)))))} Vigyázat! Ez egy tömbképlet! Beírod rendesen a képletet, majd Ctrl+Shift+Enterrel zárod le a szerkesztést. Ha a számok biztos, hogy 0-9 közé esnek, akkor a SZUM belüli HA függvény helyett írhatsz egyszerűen a A3:I3 is.
Most rámsózták az Office 2007-et és és sehol nem találom ezt, a súgóval és a guglival sem jutottam sehová. Adatok fül/Tagolás szekció Csoportba foglalás vagy kijelölöd az oszlopokat és Alt+Shift+jobbra nyíl billentyűzet kombináció
Egy, gondolom, egyszerű problémám akadt: A régi Excel-ben volt egy olyan funkció, amivel mondjuk 4 oszlopot össze tudtam fogni, és fölöttük - és + jelekkel elrejteni/felfedni. Úgy rémlik, csoportba foglalás volt a neve a dolognak, de nem tenném rá a nyakam. Most rámsózták az Office 2007-et és és sehol nem találom ezt, a súgóval és a guglival sem jutottam sehová.
Hátha valaki nem tud egy jobbat, akkor leképezheted az oszlopaidat Ha cella=0, akkor nulla, egyebkent 1 keplettel, majd ezen a háttér oszlopokon már müködni fog a HOL.VAN.
Hát nem tudom... Én még elbíbelődnék vele egy darabig, már ha fontos a dolog. Megpróbálnám fokozatosan, részenként eltávolítva a munkalap elemeit behatárolni a hiba forrását. Törölném szép sorban - az összes cellaformátumot - az esetleges külső munkafüzetre mutató hivatkozásokat - a nevesített tartományokat - a megjegyzéseket - oszloponként az összes adatot kezdve a képletekkel és minden törlés után tesztelném a beszúrás-mentést. Megnézném másik, pl. 2003-as Excelben is, hogy hogyan viselkedik ez a fájl. (Neked 97-es van, igaz?) De igazából nincs semmi garanciám arra, hogy sokkal okosabb lennék a végére...
Sziasztok! A következő dologra szeretnék függvényt találni, de eddig nem sikerült. A példa: Van 2x9 oszlop, bennük egész számokkal. Pl. 0 0 0 3 0 0 2 0 0 és 0 1 0 0 0 0 2 0 0 Azt szeretném megtudni, hogy hogyan lehet az excellel kiszámoltatni azt, hogy hanyadik oszlopban van az az első szám, ami nem 0. Ebben az esetben a 3 a 4. oszlopban, a másikban pedig az 1 a 2. oszlopban van. Próbálkoztm a HOL.VAN függvénnyel, de nem igazán jött össze. Ötlet?
Nyitottam egy vadiúj excel fájlt, átmásoltam a tartalmat a bal felső "kockával" való kijelöléssel. Próbaképp beszúrtam egy oszlopot... Aztán mentésnél ugyanez a hiba jött elő.
Esetleg segíthet ha oszloponként másolom át egy új fájlba? Vagy semmi értelme ezzel vacakolni? Így még külön az oszlopszélességeket is be kéne állítani, formázni.
Félreérthető volt. Szóval: Először is készíts biztonsági másolatot. Aztán próbáld meg a munkalapod teljes tartalmát átmásolni egy új, üres munkalapra, és törölni a régit.
Nem tudom, mi a hiba oka, de talán elhárítható az ok ismerete nélkül is. Először is készíts biztonsági másolatot. Próbáld meg a munkalapod teljes tartalmát átmásolni egy új, üres munkalapra, és törölni a régit.
a beszúrás utáni mentéskor a fagyást csak az egyik munkalapon csinálja a többiben nem, és akkor se ha új munkalapot szúrok be és abban próbálom.
Valamint pontosítom az előzőt: ugyanebben a munkalapon Ctrl+C -V esetén nem produkálja a mentéskori hibaüzenet+leállást, csak Ctrl+X -V esetén.
Azért sem értem, mert korábban szúrtam be oszlopokat, és akkor nem volt ilyen baja. Nincs annyi oszlop se hogy megtelt volna, kb 18 oszlop van, az első oszlop celláira hivatkozva van 8 oszlop celláiban függvény.
Más gépre még nem vittem, másik oprendszerre se mert ott nincs Excel.
Próbáld körülhatárolni a problémát! Minden munkafüzettel ugyanez van? Vadiúj, üres munkafüzettel is? Ha átviszed a munkafüzetet egy másik gépre, másik Excellel is ugyanezt csinálja? Nem lehet, hogy olyan sok (használt) oszlopod van, hogy a beszúrás miatt a legszélső kikerül a munkafüzetből? (Csak tippelgetek itten...)
Boraka megoldását használtam fel a programomban, mert az gyorsabb. Azt reméltem, és hála nektek nem csalatkoztam, hogy létezik olyan tulajdonság és függvény, amely magmondja amire kiváncsi voltam.
Program nélkül az =részösszeg(3;A:A)-1 megadja a mindenkori darabszámot. A -1 a címsort vonja ki az összes darabból. A 3-as függvényszám a darab2 megfelelője.
Sziasztok! Egy kis Exceles gondom lenne. Van egy táblázatom, melyben egy felmérés eredményei vannak, de kódolva, illetve van hozzá egy két oszlopos kódtáblám, mely tartalmazza, hogy melyik kódhoz milyen érték tartozik. Én pedig azt szeretném elérni, hogy a kódtábla alapján felcseréljem az egyes kódokat a táblázatban a kódok értékeire. Melyik függvényt használjam ehhez?
Eddig az F és a VKERES függvényeket próbáltam, de nem jött össze.
"mivel az összevonások gyakran zavart okozhatnak."
Csatlakozom az előttem szólóhoz. Összevont cellákkal dolgozni programban elég szívás. Az összevont cellákkal egy csomó normál művelet nem végezhető el, és ahhoz, hogy kideríthesd, egy adott cellával mit tehetsz meg, és mit nem, meglehetősen komplikált feltételrendszert kell lekódolni. Ha kicsit is bonyolultabb a táblázat felépítése, vagy a feladat, amit csinálni kell vele, akkor már nem tudsz elég alapos lenni a feltételrendszer megtervezésekor. Így az esetek 90%-ában olyan kód keletkezik, amely általában jól működik, teszteléskor megnyugtatóan mosolyog, de amikor kiadod a kezedből, a felhasználó rögtön megtalálja azt a gyenge pontot, amire nem gondoltál, és kiakasztja a programot.
A magam részéről a cellaösszevonást csak mint leges-leges-legutolsó formázási műveletet javaslom, ami után már semmit nem kell a munkafüzettel csinálni.
Az "oszlopok közt középen" összevonja a cellákat, "a kijelölés közepére" pedig nem, csak a beírt szöveget mutatja a kijelölt cellák közepén. Az adat valójában a kijelölés bal oldali cellájában van.
Mit szenvedtem az elmúlt években én is ezzel a problémával.
A bölcs ember viszont kérdez. :o) És ki gondolta volna, hogy még megoldás is van. Jimmy a király.
Már éppen javasolni akartam az én primitív megoldásomat, mely szerint For Each ciklusban vigigvizsgálom az összes munkalapot és a tartalom vagy "titkos" cellák alapján azonosítom a munkalapokat. (konkrét ceállákban konkrét adat vagy név)
Kérdés. a makróban nem a Sheets("munkalapneve") módon szeretném megszólítani a munkalapot, mert az változik. Az sem jó ha változóba rakom a munkalap nevét.
Meg lehet vhogy szólítani azzal a megnevezéssel, ami a munkalap tulajdonságainál van a Microsoft Excel Objects-en belül) vhogy így: munka1(munkalapneve) munka2(munkalapneve) stb... és én pl a munkax-el szeretném megszólítani, mert az állandó.
Azt a minimális makrót amit az új munkafüzetbe átmásolok azt már nem akarom kitörölni, sőt az szükséges az új munkafüzet működéséhez. Csak elrejteni/levédeni szeretném. :o)
Foglalkozva a témával egy gondolat már felötlött bennem ma reggel, de még nem próbáltam ki. Létrehozok egy üres de levédett munkafüzetet (kézzel) és ezt nyitom meg a programból, ebbe másolom bele a munkafüzetet majd mentem más néven. Nem túl elegáns, de ha működni fog és nem lesz jobb ötlet akkor ez lesz.
Egy dologban biztos vagyok: Az újonnan létrehozott munkafüzetekből ki lehet törölni a makrót. (Makróval) Ha lesz időm utánanézek a mikéntjének, de úgy emlékszem itt is szó volt már erről.
A mentés SaveAs-al történik, de a munkafüzet létrehozása nem.
A Sheets("xxx").Copy hatására az adott munkalapot egy vadi új "szűz" munkafüzetben hozom létre és ennek a VBAprojekje alapértelmezésként nem védett.
A feladat, amit már megoldottam, hogy egy összetett munkafüzetből különböző felhasználói beállításokkal hozok létre több százas nagyságrendben új munkafüzeteket melyek mindegyike más mennyiségű és adattartalmú munkalapot tartalmaz. Ezen munkalapokon vannak gombok és vezérlő elemek, melyekhez makrók tartoznak és mivel sajnos új munkafüzetbe másolom azokat, így alapértelmezésként láthatóak és szerkeszthetőek.
Egy ideig a saját munkafüzetemet mentettem el SaveAs-al minden esetben, a nem szükséges munkalapok elrejtésével, ekkor ez nem volt probléma mert a saját munkafüzet projektje védett, de már túl nagy méretű munkafüzetek lettek. Ezért kellett váltanom, hogy csak a szükséges és elégséges mennyiségű adatot hozom létre egy új munkafüzetben.
A 3 cellát kijelölve a formátumban az igazításnál, vízszintes elrendezésnél "A kijelölés közepére" formát kell választani. Mivel ezt sűrűn alkalmazom, írtam egy kis makrót rá (a personal.xls-ben), és egy ikonthoz rendeltem, hogy mindig kéznél legyen.
Sub Kijelölés_közepére() Selection.HorizontalAlignment = xlCenterAcrossSelection End Sub
Nem kézzel kell beállítanom. Azt ismerem. Fut egy program, ami létrehoz egy új munkafüzetet, belemásol egy munkalapot amin makrók is vannak, majd elmenti és bezárja. Még mentés előtt ebből a futó programból kellene levédeni ezt az új munkafüzetet.
Sziasztok! Ismét egy kis segítség kellene. Egy munkafüzetben lévő makróból hozok létre és mentek le más munkafüzeteket. Ezeknek az új munkafüzeteknek a lapjain találhatóak gombok és egyéb objektumok a hozzájuk tartozó kódokkal együtt. Viszont ezek a kódok megtekinthetőek, átírhatóak. A futó programból ennek a másik munkafüzetnek a VBAprojektjére be lehet állítani jelszót? Gyanítom hogy nem, de akkor valahogy le lehet védeni a makrókat?
Az a módszer, hogy a cellákat összevonjam, ahol nincs szükség a 3 külön adat bevitelére (mert ezek vannak nagytöbbségben), sok igazítással és macerával járna, tehát nem szimpatizálok vele.
na, köszi sikerült. Úgy csináltam, hogy oszlop celláit felpakoltam 1-esekkel és részössszeggel (ami változik a szűréssel együtt) figyeltem egy másik cellában.
Nem rossz. Nekem más volt az alapötletem, de a tied jobban tetszik. Viszont a játékomat meg elrontottad, mert kész kódot írtál be. :) Mindjárt ki is próbálom.
Ezen már én is agyaltam tegnap, sőt, egy picit még kutattam is a témában... A munkalap események közül talán a Worksheet_Calculate használható, de ekkor a kérdéses munkalapra fel kell venni egy függvényt pl. MA(). Ezt ugye minden munkalap eseménynél frissíti...
Szóval, ha felteszel egy tetszőleges függvényt, akkor megoldás lehet ez:
Private Sub Worksheet_Calculate() Dim x As Byte Dim s As String
If ActiveSheet.AutoFilterMode = True Then ' ha a munkalapon az autoszűrő aktív For x = 1 To ActiveSheet.AutoFilter.Filters.Count If ActiveSheet.AutoFilter.Filters(x).On Then ' itt nézzük meg, hogy aktív-e valamelyik s = Mid(ActiveSheet.AutoFilter.Filters(x).Criteria1, 2, Len(ActiveSheet.AutoFilter.Filters(x).Criteria1)) MsgBox "Indulhat a program, a(z) " & x & ". szűrő aktiválva, értéke: " & s End If Next x Else: MsgBox "Autoszűrő kikapcsolva" End If
Szia, Még arra van megoldás, hogy ne kelljen egy gombot sem megnyomni, hanem ha változik valami az autofilterben akkor hajtódjon végre? (a munkalap események nem a legjobbak sajnos, mert a szűrő váltásakor kell végrehajtódnia a makrónak (Ez egy sima for each ciklus, ami a soron megy végig és elrejt bizonyos oszlopokat) Nem kell kész kód, csak vmi pseudo - mert különben elveszed a játékomat. :)
Hálás köszönet, a dőlt betűs első sorod tartalmazza a lényeget. Nagyjából fél órát keresgéltem erről egy régebben látott összefoglalót, de nem tudtam konkrétan mire keressek. Most, hogy megírtad, rögtön meg is találtam :) Köszönöm még egyszer a segítségedet.
A kiemelt bold rész tartalmazza az értéket. Próbáld ki a Mid függvény nélkül is így:
s = ActiveSheet.AutoFilter.Filters(x).Criteria1
------------------------------------------
Sub Autoszűrő2() Dim x As Byte Dim s As String
If ActiveSheet.AutoFilterMode = True Then ' ha a munkalapon az autoszűrő aktív For x = 1 To ActiveSheet.AutoFilter.Filters.Count If ActiveSheet.AutoFilter.Filters(x).On Then ' itt nézzük meg, hogy aktív-e valamelyik s = Mid(ActiveSheet.AutoFilter.Filters(x).Criteria1, 2, Len(ActiveSheet.AutoFilter.Filters(x).Criteria1)) MsgBox "A(z) " & x & ". szűrő aktiválva, értéke: " & s End If Next x Else: MsgBox "Autoszűrő kikapcsolva" End If
If ActiveSheet.AutoFilterMode = True Then ' ha a munkalapon az autoszűrő aktív For x = 1 To ActiveSheet.AutoFilter.Filters.Count If ActiveSheet.AutoFilter.Filters(x).On Then ' itt nézzük meg, hogy aktív-e valamelyik MsgBox "A(z) " & x & ". szűrő aktiválva!" End If Next x Else: MsgBox "Autoszűrő kikapcsolva" End If
sziasztok,_ azt hogy tudom megkérdezni makróval, hogy az autofilter valahol be van e kapcsolva? (gyakorlatilag arra az eseményre kell indulnia a makrómnak, ha az autoszűrő-ben mást választanak ki)
Az adatgyűjtésre (az utvonal változóban megadott mappában csak az összesítendő fájlok legyenek):
Sub Merge() Application.ScreenUpdating = False Application.DisplayAlerts = False
Const utvonal = "E:EadatProba" 'Ide írd be a saját útvonaladat Dim fn As String Dim sz, elso, usor, uoszlop As Boolean
ChDir utvonal fn = Dir(utvonal & "*.xls", vbNormal) sz = 0 Do If fn <> "." And fn <> ".." Then If sz = 0 Then elso = 1 Else elso = 2 'Az első füzetnél a címsor is kell
Workbooks.Open Filename:=fn Sheets("Adatok").Select 'A saját lapod nevét írd be usor = Range("A65536").End(xlUp).Row Range(Cells(elso, 1), Cells(usor, 5)).Copy
ActiveWindow.ActivateNext 'Gyűjtő füzetre lépés If sz = 0 Then gy_usor = Range("A65536").End(xlUp).Row 'Gyüjtő füzet alsó sora Else gy_usor = Range("A65536").End(xlUp).Row + 1 End If
Cells(gy_usor, 1).Select ActiveSheet.Paste
ActiveWindow.ActivatePrevious 'Behívott füzet ActiveWindow.Close sz = sz + 1 End If fn = Dir() Loop Until fn = ""
Range("A1").Select Application.ScreenUpdating = True End Sub
Sub Fájlista() Dim EredményekHelye As String Dim f As String
EredményekHelye = "C:\mappa1\mappa11\" f = Dir(EredményekHelye & "*.xls", vbNormal)
Do While f <> "" Workbooks.Open Filename:=EredményekHelye & f MsgBox "A(z) " & f & " megnyitva, most pedig, mentés nélkül bezárom..." & Space(5), vbInformation, "Fájlkezelés" ActiveWorkbook.Close False f = Dir() Loop
Tapasztalataim, és az itt tanultak alapján szerintem az Application.FileSearch helyett fájlkeresésre, megnyitásra, majd zárásra érdemes az alábbi kis rutint használni:
Sub Fájlista() Dim EredményekHelye As String Dim f As String
EredményekHelye = "C:mappa1mappa11" f = Dir(EredményekHelye & "*.xls", vbNormal)
Do While f <> "" Workbooks.Open Filename:=EredményekHelye & f MsgBox "A(z) " & f & " megnyitva, most pedig, mentés nélkül bezárom..." & Space(5), vbInformation, "Fájlkezelés" ActiveWorkbook.Close False f = Dir() Loop
sziasztok, azt hogy tudom megkérdezni makróval, hogy az autofilter valahol be van e kapcsolva? (gyakorlatilag arra az eseményre kell indulnia a makrómnak, ha az autoszűrő-ben mást választanak ki)
Hááát...ami azt illeti nagyon nagy falatnak látszik ez a dolog...
Elég bonyolult az én tudás szintemen...
Az a helyzet, hogy valaki megkért ugyan szivességből segítsek már kitalálni valami módszert arra, hogy xy-nnak a világ másik végén könnyebb legyen összesíteni..hogy ne kelljen már 70 fájlt megnyitnia és összeadnia az eredményt.
De úgy érzem, hogy egy hónapig szenvednék mig kitalálnám pontosan hogyan is oldjam ezt meg ezt a macrot lépésről lépésre.
Én csak egy "gagyi" macro felvevő vagyok és kb értem mit kell megváltoztatgatni, hogy működjön, de ez már messze nagyobb tudást igényel..ráadásul olyannak kell lennie a macro-nak, hogy bárki használhassa a segítségem/javítgatásom nélkül...
Felmerült bennem pár kérdés...:-)
1. Honnan tudja a macro hány munkafüzetet kell megnyitnia? Tegyük fel egyik hónapban 10 fájl van, másikban 70...A parancs alapján tudni fogja, hogy a megadott alkönyvtárban minden egyes fájlt meg kell nyitnia, függetlenül attól mi a nevük a fájloknak? Gondolom valahogy így.
2. a másik kérdés, ami még felmerült bennem, hogyan tudom megadni neki, hogy az új és új értékelést újabb és újabb sorba írja be? Feltétellel, hogy ha a1 üres, akkor oda írja be, ha nem, akkor a2?
3. A harmadik kérdés, ami még eszembe jutott, hogy írtam egy macro-t, amiben munkalapokat törlök és ilyenkor ahelyett, hogy automatikusan megtenné a dolgot ő megkérdezi, hogy "valóban akarom-e ezt?...
Az általad említett Application.Displayalerts = False meg tudja oldani ezt a problámát? Csak úgy eszembe jutott, hátha...vagy esetleg valami más paranccsal el lehet kerülni ezeket a kérdéseket?
Hmm...szóval nagy kihívás ez nekem...nem tudom hogy belekezdjek-e...
Az a baj, hogy teljesen értem lépésenként mit kellene tennie a macronak, de technikailag fogalmam sincs hogyan kell ezt leprogramozni...
Lehet, hogy az értékelés bevitelt kellene inkább leegyszerűsítenem...hogy amolyan adatbázis formába írják be eleve és akkor elkerülhető ez a fájlmegnyitásos bonyodalom...
"Van esetleg tippetek arra, hogy hogyan lehetne megoldani a következőt:
XY excelben kitölt egy értékelést valakiről. Ennek a kiértékelésnek fix a külseje.
Minden egyes kiértékelés külön fájlba van mentve...sok sok kiértékelés van.
Hogyan lehet megoldani, hogy létrejöjjön egy riport ezekből a kiértékelésekből...egy summary formájában?"
A Makró lehet jó megoldás én általában ezt preferálom amikor sok hasonló fájlból adatbázist kell létrehozni. Fontos hogy a "fix külső" az tényleg az legyen.
Mondjuk így:
1, Van egy alapfájod, amiben majd létrehozol egy munkalapot az adatbázishoz. Ebben a fájlban van a makró is.
2, Lemented az összes értékelési fájlt egy alkönyvtárba. Ezt az alkönyvtárat megadod az alapfájlban is valahogy - akár kézzel beírva a makróba, akár inputbox segítségével, akár egy cellába beírva.
4. Létrehoz egy adatbázis - munkalapot az alapfájlban, aminek az alapinformációit (oszlopfejlécek) is megadja. Érdemes ugyanazt az adatbázis - munkalapnevet használni mindig akár úgy is hogy az alapfájlban levő hasonló munkalapot kitörlöd és mindig újat hozol létre.
5. Ha az adatbázis munkalap megvan, akkor
Az összes fájlt kinyitod egyenként az alkönyvtárból. Erre több módszer is van,
Tehát a, fájlt kinyitja a makró, kiveszi belőle azokat az értékeket amire a summary-ban szükség van, beírja az alapfájl adatbázis munkalap megfelelő sorába - oszlopába. Megnyitás előtt érdemes az Application.Displayalerts = False parancs kiadásával elkerülni azt hogy felesleges üzeneteket adjon az Excel.
Becsukja az a, fájlt . Itt érdemes kiadni az Activeworkbook.Saved = True parancsot a bezárás - Activeworkbook.Close - előtt)
És így tovább, kinyitja a b, fájlt, adatokat beírja az adatbázis következő soraiba... stb. Nyilván mindig érdemes kikapcsolni a Screenupdating-ot, ha gyorsabb futást akarsz.
Az adatbázis fájlból meg már lehet továbbdolgozni, akár pl. pivot kimutatást vagy chartot létrehozni ugyanezzel a makróval.
A megadott információból kábé ennyit lehet megadni, nyilván a konkrét makrót akkor lehet megírni ha ismert az értékelési fájlok formátuma illetve hogy milyen adatokat kell ezekből kinyerni.
Aztán ha nem makró, akkor lehet pl. linkeléssel megcsinálni de az nagyon sok forrásfájlnál eléggé bizonytalan.
Azt hiszem tényleg nem próbálkodom tovább, mert nagyon béna vagyok...
De e-mailben mindent problámamentesen el tudok küldeni...csak jelezzetek.
Ez nem az én napom.
Viszont lenne egy kérdésem.
Van esetleg tippetek arra, hogy hogyan lehetne megoldani a következőt:
XY excelben kitölt egy értékelést valakiről. Ennek a kiértékelésnek fix a külseje.
Minden egyes kiértékelés külön fájlba van mentve...sok sok kiértékelés van.
Hogyan lehet megoldani, hogy létrejöjjön egy riport ezekből a kiértékelésekből...egy summary formájában?
1. macro-ban kell megoldani, pl hogy parancsra kinyitja az összes fájlt és valahogy kiszedi egy fájlba a kellő adatot?
2. Van esetleg egy olyan lehetőség, ami azt csinálná, hogy a kiértékelés mintegy űrlap formájában jelenjen meg...(a lényeg hogy könnyen kitölthető legyen)...majd a bevitt adat egy sima adatbázisban a háttérben lementődik?
Csak próbálok rájönni, hogyan lehetne ezt megoldani...
Van valami tippetek, csináltatok már ilyesmit?
Persze tudom, hogy copy-paste-tel...meglehetne oldani, de az nagyon időigényes lenne...van erre valami fájdalommentes megoldás?
Közben gondoltam megpróbálom "magyarul" is átadni ezt a validációs dolgot...de angol függvényekkel mert csak azt ismerem...
Tehát van:
- 2 db munkalapunk: List és Sheet1.
Az A B és C oszlopokban a képen látható módon beírjuk a kategóriákat és alkategóriákat és neveket adunk nekik (NAME, NÉV)...persze a név adáskor kihagyjuk a fejlécet.
A Sheet1-en a D6-os és E6-os cella érvényesítéséhez ezt írjuk:
D6 validácó = ValList
E6 validáció =CorrespondingList
Ez található a List füzeten az A B és C oszlopban és a NAME alatt találjátok a definíciókat, amiket be kell írni, hogy működjön.
ObjectsCorresponding ListValidation List
Can
Tin
Can
Can
Steel
Sofa
Can
Opener
Shower
Can
Lid
Car
Sofa
Bed
Sofa
Seat
NAME:
Sofa
Lounge
CorrespondingList =OFFSET(INDIRECT(ADDRESS(MATCH(Val1Cell,Objects,0)+1,2,,,"List")),0,0,COUNTIF(Objects,Val1Cell),1)
Sofa
Cushion
Objects =OFFSET(List!$A$2,0,0,COUNTA(List!$A$2:$A$17),1)
Shower
Rain
Val1Cell =Sheet1!$D6
Shower
Hot
Val2Cell =Sheet1!$E$6
Shower
Cold
ValList =List!$C$2:$C$5
Shower
Warm
Car
Trip
Car
Journey
Car
Bonnet
Car
Boot
valamikori prolog-os multam sejlik fel, ott listaillesztésnek hívják, tulajdonképpen egyfajta backtracking, addig keresgél, illesztget, amig ki nem jön az eredmény!
A legkorrekteb az lenne ha x cellatartományban fel lenne sorolva. Természetesen kettőnél több is lehet (Ez nem okozna problémát nekem sem) Képtelen vagyok rá kidolgozni egy algoritmust.
Sziasztok, Hogy tudnám a legegyszerűbben megtalálni azokat a (általában negatív) számokat, amelyekhez hozzáadva egy ismert (általában pozitív) számot, NULLÁT kapok.
Pédául: A1:A50 -> általában negatív számok halmaza A51 - > 6240 (tehát fenti halmazban azokat a számokat kell keresnem, amelyek összege (-6240)
(Szerintem valami solveres cucc lesz, de nem sikerült megoldanom 2 órányi próbálkozás után sem)
Nálam az egyik lap neve "termékszám", a másiké "megszűnt".
Az alábbi makró a "termékszám" lapon törli azokat a sorokat, amelyeknek az A oszlopában szerepel valamelyik, a "megszűnt" lap A oszlopában szereplő érték.
Ha más a neve a lapjaidnak, a makróban írd át.
Sub torl() Sheets("megszűnt").Select For sor = 2 To Range("A65536").End(xlUp).Row tsz = Cells(sor, 1) Sheets("termékszám").Select On Error Resume Next Cells.Find(What:=tsz, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate Selection.EntireRow.Delete Sheets("megszűnt").Select Next End Sub
Köszönöm a segítséget Delila. Félreérthetően fogalmaztam szerintem, úgyhogy inkább leírom pontosabban, h mire gondoltam. Az első oszlopban van egy több ezer darabból álló termékszám lista, amihez folyamatosan jönnek még újabb adatok. A másik oszlopba azok a termékszámok kerülnének, amik kimentek a rendszerből (ehhez is jönnek folyamatosan újak). Az ideális eredmény számomra az lenne, ha egy új lapra vagy táblázatba kerülnének azok a termékszámok, amik még nem mentek ki. Az első számhalmazt szeretném szűkíteni azokra az adatokra, amik nincsenek a második halmazban. Nem tudom, h megoldható-e, de mivel folyamatosan változnának ezek az adatok, valamilyen automatikusan számoló táblázat lenne a jó, hogy ne kelljen minden egyes felvitt adat után manuálisan szűrni, számolni. Egyenlőre még nem sikerült megoldanom, úgyhogy minden segítséget szívesen fogadok. Üdv
Sziasztok! Szerintem egy egyszerű problémám van, de nem sikerül megoldanom. Kettő, számokból álló, folyamatosan növekvő tartományból szeretném kimásolni egy új helyre csak a nem egyező értékeket. Segítségeteket előre is köszönöm. Üdv
A PH fórumon másként tetted fel a kérdést, ott arra válaszoltam.
Az irányított szűrésre beteszek egy példát. A címsort átmásoltam az A1:B1 tartományba. A2-be beírtam a keresett számot. Az Adatok/Szűrő/Irányított szűrő behívásakor a párbeszéd dobozt a kép szerint kitöltöttem, az eredményt az E:F tartományba az OK megnyomása után tette be az Excel.
Na basszus, ez elég olvashatatlannak tűnik... Elküldök egy nagyobb felbontásút annak akit érdekel...csak légyszi írjatok egy emailt az itteni címemre. ok?
Szia! Arra gondtam, hogy beszkennelem inkább a könyvből a leírás, mert az a biztos... Túl bonyolult ahhoz, hogy sikerüljön hiba nélkül bemásolnom... :-) Sok sikert!! Na esetleg nem működne szólj...:-)...először nekem sem ment, de rájöttem, hogy valami tök kicsi hülye hibát csináltam... Sok sikert!! Y
Az lenne a kérdésem, hogy ha az FKERES függvény találati értékei között több eredmény is lehetséges, hogyan lehet egy választási listát készíteni az eredménycellába. (irányítószámok beírás alapján akarom, hogy megkeresse a megfelelő települést, de ugye létezik azonos számmal több település is...)
Trükkös megoldás :-)...Köszönöm a tippet!!!...ez eszembe sem jutott.
Közben több vonalon is haladtam és megszületett a tökéletes megoldás, legalábbis eléggé úgy tűnik :-)...
Nagy boldogsággal tölt ez el :-)...elhiheted...vicces, hogy ilyen dolgok is tudnak örömöt okozni :-)...
Van ez a trükkös excel hacks könyvem, ami nagyon eszes...és ebben kezelnek egy hasonló problémát...próbálgattam, de csak nem akart működni...
...közben rájöttem hol szúrtam el :-)..és már szuperul működik.
Name range-el dolgozik meg OFFSET/INDIRECT/ADDRESS/MATCH stb-vel.
Szóval elég húzós kis függvény és nem állítom, hogy teljesen értem mi mit csinál...viszont a végeredmény tökéletes és lényegében a listák minden bonyolítás nélkül is lehet a végtelenségig bővíteni :-)))...
Azt hiszem a next chellange az lesz, hoyg megis értsem pontosan hogyan működik részleteiben a függvény...
Ha esetleg érdekel, megosztom veled a megoldást...:-)
Viszont van egy kis bibi...:-(...még pedig az, hogy nekem több, mint 8 kategóriám van és nekem úgy tűnit, hogy afelett nem működik már az if függvény...a 9. feltételemet már nem vette be sajna.
Szaisztok! Egy kis segítségre lenne szükségem: egy vállalatirányítási programból excel táblába vannak kimásolva az adatok. Többszáz sor és oszlop. A problémám a következő lenne: a számok az ezres elválasztásnál "space"-el vannak elválasztva, így az excel nem ismeri fel az adatokat számként. Hogyan tudnám kitörölni azt a rengeteg space-t, azon kívül, hogy egyesével kitörölgetem őket!
Ne haragudj, tényleg igazad van. Valamikor feltettem hasonló kérdéseket és kaptam is rájuk válaszokat, amiket vagy megértettem, vagy nem. Többek között te is válaszoltál.
Hidd el abszolút szoktam használni az itt tanultakat, ha nem így lenne akkor nem is lennék ennyi éve állandó hozzászólója a fórumnak. A legtöbb tudást, amit magamra szedtem itt tanultam meg tőletek és nagyon hálás is vagyok érte mindenkinek.
Viszont pont decemberben munkát váltottam és ott már le volt tiltva sajnos a fórum, otthon sincs netem...utoljára kb akkor voltam utoljára fenn, mikor írtam azokat a kérdéseket. Interaktív fórum kommunikáció hiányában igazából elvesztettem a fonalat és már el is felejtkeztem arról, hogy akkor is írtam.
Szóval ne haragudj, nagyon sajnálom hogy úgy jött ki, mintha nem is érdekelnének a válaszok...ez hidd el nincs így...nagyon is értékelem őket és szoktam is használni...
Szóval remélem nem kedvetlenítettelek el véglegesen, hogy megoszd velem a tippjeidet!
Köszi Delila_1! Azt hiszem kicsit túl bonyolultan akartam megoldani ezt a validációs listás dolgot. A te megoldásod tök tisztának tűnik. Nagyon köszönöm!!! Köszi a menéses tippet is!! :-) Köszönöm! Y
1. Megadod az útvonalat az utvonal változóba, a fájl nevét pedig a nev-be (akár egy cellából).
ment = utvonal & nev & "_" & Format(Now, "yyyy.mm.dd") & ".xls" ActiveWorkbook.SaveAs ment
Vagyis a dátumot nem kell külön cellából bekérni.
2. Beírod valahova a gyümölcsöket (alma, körte, szilva), és elnevezed a tartományt gyümölcsöknek. Ugyanígy teszel a zöldségekkel is, és zöldség nevet adsz nekik.
B oszlopban az érvényesítésnél kiválasztod az első listából az első validációs értéket. A C oszlop érvényesítésénél a Forráshoz ilyesmit írsz:
=HA($B1="gyümölcs";gyümölcs;zöldség)
Természetesen több áruféleségnél többszörösen egymásba ágyazott HA függvényt alkalmazhatsz.
"Hogyan tudnám megoldani, hogy a macroban úgy tudjak bizonyos név alatt menteni, hogy a névben lenne egy változó egészen konkrétan az aktuális dátum-1nap."
Te olvasod, használod azokat a hozzászólásokat, amiket a saját kérdéseidre írnak válaszként mások?
Tavaly decemberben volt egy kérdésed, amiben egy másik problémával kapcsolatban írtad hogy:
"es hogy meg bonyolitsak egy kicsit az lenne a tuti, ha a fajl nevehez hozza biggyesztodne az aktualis datum...pl igy...EUROPA_20081222,
vagy hogy meg megspekeljem egy kicsit nem az aktualis datumra lenne szukseg, hanem az egyel korabbi napra...tehat, aktualis datum minusz egy nap..."
Én azt hiszem hogy erre - meg amúgy egy sokkal komplexebb problémára - egy egész jó kis kódot írtam, úgy is tűnt akkor, hogy elolvastad a választ és használni is fogod a kódot. Aztán jött a karácsony ....
Az, hogy egy negyedévvel később tök ugyanazt megkérdezed, ugyanazon a fórumon, nem azt mutatja hogy használnád a kódot.
Én nem programozó vagyok hanem csak egy olyan közgazdász aki elég jól ismeri az excelt és a VBA-t és rengeteget használja a munkában. A tiédhez hasonló problémákkal is számtalanszor találkoztam és találkozni is fogok.
Nekem leginkább az a cél amikor egy ilyen kérdésre válaszolok, hogy ne felejtsem el amit tudok, illetve hogy akár én is tanuljak valamit amit később a munkámban felhasználhatok.
Ergo - nekem alapból tök mindegy hogy a végén használod-e vagy sem azt amit válaszként írtam.
csinálsz egy érvényesítést azokra a cellákra, amelyek tartalmazzák az aáltalad felsorolt csoportokat (gyümölcsök, zöldségek, húsok): Adatok/Érvényesítés/lista fülnél megadod ezt a tartományt.
Vhol máshol létrehozod a csoportok elemeit, hogy a csoportnév az első sorban legyen - mint oszlopcím.
Ez nálam így néz ki:
A1-C1: gyümölcsök-zöldségek-húsok ( alattukaz 5. sorig az elemek)
A8-A10: gyüm - zölcs - hús
D1: Adatok/Érvényesítés/lista fülnél megadod fenti tartományt.
E1: =INDEX($A$1:$C$5;SOR(A2);HOL.VAN($D$1;$A$1:$C$1;0)) és ezt a képletet lehúzod ameddig kell.
Szia!! Nagyon köszönöm a tippet!!! Ebben pontosan mit jelent az "1,1"? Name-re szerinted hogyan tudnék hivatkozni, tehát nem cellára, hanem a definícióra...huh remélem érted mire gondolok.
Ami a másik dolgot illeti. Biztosan máshogyan is meg lehet oldani. Tehát azt kell elképzelni, hogy a világ 8 pontján dolgoznak emberek hasonló fájlokon. Soronként elemezve az esetet kategóriákba sorolják őket, majd alkategóriákba.
Számomra az lenne a fontos, hogy ne hibázzanak...minden kategória jól legyen beírva (nincs felesleges space, kis nagy betű variálás stb), és ne kavarják össze az alkategóriákat a kategóriák között. Mert rengeteg hibát csinálnak...
Ezek nagyon szubjektív kategóriák...egyénileg értékelnek ki minden esetet sok sok szempont alapján, tehát magát a kiértékelést nem lehet automatizálni...de a kategóriák ugyanazok mindenkinek...csak néha össze-vissza keverik a dolgokat....és ez nekem utólag elég sok plusz munkát jelent...
Lenne valami tipped?
Van egy jó kis könyvem, talán ismered Excell Hacks...tele van ügyes trükkel és elvileg ezt is megoldották: validációs lista, ami egy másik validációs listával van összekötve... De annak ellenére hogy pontról pontra ugyanazt csinálom, mint amit mondanak...valahogy nem működik a végén...tök idegesítő.
OFFSET,MATCH,INDIRECT stb függvényt használnak... de vagy én szúrom el valahol, vagy hiba van a könyvben...
Sziasztok! Segítséget szeretnék kérni 2 db kérdésben.
1. Mentés macróban, ahol a névben változik a dátum. Hogyan tudnám megoldani, hogy a macroban úgy tudjak bizonyos név alatt menteni, hogy a névben lenne egy változó egészen konkrétan az aktuális dátum-1nap.
Azt találtam ki, hogy a munkafüzet egyik cellájába pl. C1-be (akár definiálom is a cellát...elnevezem "date"-nek ezt a cellát. Aztán beírom a függvényt =TODAY()-1 Mindent tuti jól kiszámol...viszont hogyan tudok a mentésben utalni erre a cellára. Technikailag ezt hogyan kell csinálni? Próbáltam fájlnév&c1 -et beírni, vagy fájlnév&date...de akkor beírja szó szerint ezt a fájlnévbe.
Szerintem ez nem lehet egy nagyon bonyolult dolog, van tippetek hogyan kell "utalni"? Köszi a segítséget!!! Van még egy kérdésem :-).
2. Hogyan lehet "dupla" validációs listát csinálni? Tehát a B oszlophoz tartozik egy validációs lista...ez eddig könnyű, de a b tartalmától függ a C oszlopban milyen másod validációs lista jelenik meg.
PL. B oszlopban ilyen fogalmak választhatók, hogy: gyümölcsök zöldségek hústermék stb
Majd a C oszlopban aszerint, hogy mi volt a B-ben pl ez jelentik meg a listában pl, ha gyümölcsről van szó: alma körte szilva stb
Van erre valakinek valami bevált módszere? Olyan fájllal dolgozom amit kb 8 ember munkáját tartalmazza, akik bizonyos szempontontok szerint kiértékeli az adatbázis sorait...és persze hibát hibára halmoznak...amit aztán nekem kell kimazsolázba javítgatnom... Gondoltam létrehozok egy uniformizált adatbeviteli módszert. Ehhez kéne a "dupla" valdiációs lista.
Kicsit hosszúra sikerült a kérdés, de remélem aztért valaki elolvassa :-)...
Sziasztok! Segítséget szeretnék kérni 2 db kérdésben.
1. Mentés macróban, ahol a névben változik a dátum. Hogyan tudnám megoldani, hogy a macroban úgy tudjak bizonyos név alatt menteni, hogy a névben lenne egy változó egészen konkrétan az aktuális dátum-1nap.
Azt találtam ki, hogy a munkafüzet egyik cellájába pl. C1-be (akár definiálom is a cellát...elnevezem "date"-nek ezt a cellát. Aztán beírom a függvényt =TODAY()-1 Mindent tuti jól kiszámol...viszont hogyan tudok a mentésben utalni erre a cellára. Technikailag ezt hogyan kell csinálni? Próbáltam fájlnév&c1 -et beírni, vagy fájlnév&date...de akkor beírja szó szerint ezt a fájlnévbe.
Szerintem ez nem lehet egy nagyon bonyolult dolog, van tippetek hogyan kell "utalni"? Köszi a segítséget!!! Van még egy kérdésem :-).
2. Hogyan lehet "dupla" validációs listát csinálni? Tehát a B oszlophoz tartozik egy validációs lista...ez eddig könnyű, de a b tartalmától függ a C oszlopban milyen másod validációs lista jelenik meg.
PL. B oszlopban ilyen fogalmak választhatók, hogy: gyümölcsök zöldségek hústermék stb
Majd a C oszlopban aszerint, hogy mi volt a B-ben pl ez jelentik meg a listában pl, ha gyümölcsről van szó: alma körte szilva stb
Van erre valakinek valami bevált módszere? Olyan fájllal dolgozom amit kb 8 ember munkáját tartalmazza, akik bizonyos szempontontok szerint kiértékeli az adatbázis sorait...és persze hibát hibára halmoznak...amit aztán nekem kell kimazsolázba javítgatnom... Gondoltam létrehozok egy uniformizált adatbeviteli módszert. Ehhez kéne a "dupla" valdiációs lista.
Kicsit hosszúra sikerült a kérdés, de remélem aztért valaki elolvassa :-)...
Biztos vagy Te abban, hogy %-okból szerencsés dolog átlagot számolni? Egy-egy százalékban kifejezett érték nem biztos, hogy azonos súlyt képvisel. Ne feledd, ezek eleve törtek voltak lánykorukban...
Lehet fkeressel is. pl.: A1-be a számaid ahogy leírtad: 1, 2, 3, 5, 7, 11, 13, 17 a2-be szintén: 4, 6, 8, 9, 10, 12, 14, 15, 16 aztán b1 / b2-be amit vissza kell adnia (1/2) stb... Aztán fkeressel innen visszakeresed, =FKERES("*"&C1&"*";A1:B1;2;0) rakhatod a számokat cellánként is, csak akkor több hely kell. (És akkor nem kell a csillag joker a keresési kritériumhoz)
Van még további kérdésem, nem tudtam boldogulni...
Szóval van egy oszlop, amiben számok vannak 1-től 3-ig és üres cellák. Egy cellában szeretném kiiratni, hogy hány darab 1-es szerepel a nevezett oszlopban, valamint az alatta levő cellába pedig hogy hány darab 2-es szerepel stb...
Próbáltam a DARAB, SZUM, SZUMHA függvényt de nem sikerült :-(
Az excel 2000-ben a Beállítások/Áttérés menüpont alatt van egy olyan lehetőség, hogy másodlagos billentyű használat vagy valami ilyesmi. Az irányítóbillentyük müködnek másképp mint az excel alapban. De mivel hozzászoktam, ragaszkodnék hozzá az excel 2007-ben is, ha van rá lehetőség. De nem találom. Nem tudja valaki, hogy van-e erre lehetőség és ha igen, hol?
Mivel a vizsgálat az 1 és 100 közti számokra vonatkozik, a 100-nál nagyobb érték esetén nem kerül az eredményjelző cellába semmi. Ezt jeleni a két macskaköröm ("").
Excelben egy oszlop celláiban vannak egész számok. A mellette lévő oszlopban szeretném megjeleníteni hogy mely halmaznak az elemei ezek a számok, azaz ha pl 1, 2, 3, 5, 7, 11, 13, 17 valamelyike, akkor ebbe a cellába 1-es számjegy kerüljön. Ha 4, 6, 8, 9, 10, 12, 14, 15, 16 valamelyike, akkor a 2-es számjegy kerüljön, ha pedig 18-100-ig akkor a 3-as szám kerüljön a cellába.
Van erre valami függvény vagy hogy lehetne megoldani?
Nézd meg a Eszközök/Beállítások/Számolás fülön, hgy be van e jelölve a külső csatolási értékeket ment, Külső hivatkozásokat frissít. ugyanitt a számolásnál az automatikus.
Egyébként:
"Ha a képlet más munkalapon vagy munkafüzetben lévő cellákra vagy értékekre utal, és a másik munkafüzet vagy munkalap neve nem betű jellegű karaktert vagy szóközt is tartalmaz, a nevet aposztrófok ( ' ) közé kell foglalnunk."
Próbáld meg úgy, hogy nem az általad leírt módon illeszted be a csatolást, hanem úgy, hogy indítassz egy = jellel a cellában és rákattintassz a hivatkozni kívánt cellára a másik munkafüzetben.
A következő a megoldandó feladatom: van kb. 30 word doksi, mindegyikból kb 10-10 adatot kellene csatolnom egy összesítő excel tábla megfelelő dokumentumhoz tartozó sorába. Fontos, hogy ami a wordban esetleg módosul, azt kövesse az összesítő nyilvántartás (excel) módosulása is.
Ha sima Ctrl+C, beillesztés másként, csatolás, szövegként módon oldom meg, akkor addig nagyon remek, amíg be nem zárom az excelt, újranyitásnál viszont már nem találja a csatolásokat ("NÉV?", kérdezi kissé viccesen). Most ugyenezt próbálom, csak nem szövegként, hanem hivatkozásként csatolom az adatokat, néhány próbazáráson már túl vagyok eddig OK.
Azt szeretném mindezek után kérdezni tapasztaltabb kollégáimtól, már csak a felesleges időpocsékolás elkerülése végett is, hogy érdemes-e ezen a módon tovább haladni, nem fogja-e a kb 300 hivatkozás megnyitáskori frissítése nagyon lelassítani az excelt, egyáltalán lehet-e 300 hivatkozást csatolni 1 excel-táblához, 30 különböző doksiból, vagy esetleg van egyszerűbb megoldás is?
A következő a megoldandó feladatom: van kb. 30 word doksi, mindegyikból kb 10-10 adatot kellene csatolnom egy összesítő excel tábla megfelelő dokumentumhoz tartozó sorába. Fontos, hogy ami a wordban esetleg módosul, azt kövesse az összesítő nyilvántartás (excel) módosulása is.
Ha sima Ctrl+C, beillesztés másként, csatolás, szövegként módon oldom meg, akkor addig nagyon remek, amíg be nem zárom az excelt, újranyitásnál viszont már nem találja a csatolásokat ("NÉV?", kérdezi kissé viccesen). Most ugyenezt próbálom, csak nem szövegként, hanem hivatkozásként csatolom az adatokat, néhány próbazáráson már túl vagyok eddig OK.
Azt szeretném mindezek után kérdezni tapasztaltabb kollégáimtól, már csak a felesleges időpocsékolás elkerülése végett is, hogy érdemes-e ezen a módon tovább haladni, nem fogja-e a kb 300 hivatkozás megnyitáskori frissítése nagyon lelassítani az excelt, egyáltalán lehet-e 300 hivatkozást csatolni 1 excel-táblához, 30 különböző doksiból, vagy esetleg van egyszerűbb megoldás is?
Azt szeretném megkérdezni, hogy makróval megoldható-e az, hogy ameddig egy adott excel munkafüzet adott munkalapja az aktív, addig ne lehesen más alkalmazásra (pl. word, adobe, ...) átváltani?
Sziasztok!
Azt szeretném megkérdezni, hogy van-e lehetőség arra, hogy a legördülő lista, lista kijelölő gomb helyét megváltoztassuk. Konkrétan, meg lehet valahogy azt oldani, hogy ez a kijelölő gomb a sor közepén vagy a felső sarokba legyen?
A szóköz helyett inkáb ezres elválasztó jelet mondanék, mivel a szóköz csak a magyar régiós beállításnál igaz. Angol beállítás használatakor így vesszőt kell írni a számformátum után ha a szám ezredrészét akarod látni.
Ha a formátumnál a megadott formátum után egy szóközt írsz, a szám ezred részét látod a cellában, viszont a teljes összeggel számol, és a szerkesztőlécen is a teljes érték szerepel. Két szóközzel a végén a szám milliomod részével teszi ugyanezt.
Ennek van haszna is, mikor egy összeget ezer-, vagy millió Ft-ban kell megmutatni.
A Beállítások > Szerkesztés fülén kapcsold be a Tizedesjegyeket. A Száma mező értékétől függően más-más eredményt kapsz, mikor egy cellába számot írsz.
1 > a beírt szám egytizedét-,
2 > századát-,
3 > ezredét-,
-1 > tízszeresét jeleníti meg.
Nemrég kaptam egy fájlt ilyen beállítással.
Eddig nem tudtam, hogy a SZUM törvényes örököse a formátumnak.