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.
Ciklusban kérdezek le internetről adatokat EXCEL-be és a tapasztalatom szerint a lekérdezés furcsa módon fokozatosan lassul, pedig most a program szerkezetét is egyszerűsítettem: robbantómester még két hete kérte, másoljam be a ciklust.
Folap-on van 3150 sor URL-lel, ezeket az adatokat kérdezem le a PUFFER-ba, és dolgozom át a Folap aktuális sorába:
Sub LEKERDEZ() Dim QueryString As String, ws3 As Worksheet, ws4 As Worksheet, hova As String Dim aktsor As Integer, oszl As Integer Dim szkind As Integer
Set ws3 = Sheets("Puffer") Set ws4 = Sheets("Folap")
For szkind = 2 To 3151 QueryString = ws4.Cells(szkind, 8).Value ''Itt van a lekérdezendő oldal URL címe ws3.Range("A1:E50").Delete ''Puffer törlése hova = "A1"
With ws3.QueryTables.Add(Connection:="URL;" & QueryString, Destination:=ws3.Range(hova)) .BackgroundQuery = True .TablesOnlyFromHTML = True .Refresh BackgroundQuery:=False .SaveData = True End With
For l = 25 To 40 If ws3.Cells(l, 3).Value = "" Then Exit For End If For j = 9 To 14 If ws3.Cells(l, 3).Value = ws4.Cells(1, j).Value Then ws4.Cells(szkind, j).Value = ws3.Cells(l, 4).Value Exit For End If Next j Next l ws4.Cells(szkind, 15).Value = Time() Next szkind ActiveWorkbook.Save
Tapasztalat: 1-350 lekérdezése átlag 0.2 sec/sor 350-700 lekérdezése 0.3 sec/sor, ...de az utolsó két részadat: 2450-2800 lekérdezése már 3.2 sec/sor és 2801-3150 sorok lekérdezése már 4.04 sec/sor
Szerintem az ilyen problémák legjobb megoldása a Pivot Table. Ha pld. készlet adatokról van szó, akkor A oszlop a cikkszám, B oszlop az 1. query eredménye. Utána a második query eredményét bemásolod az első query eredmény utolsó sora alá, A oszlop a cikkszám, C (!) oszlop a query eredménye (bármi legyen is az, pld mennyiség, vagy ha csak a cikkszám egyezőségeket akarod ellenőrizni akkor egy sima 1-es kézzel).
Erre ráeresztesz egy Pivot Table-t, aminek a sorai a cikkszámok, az 1. oszlopa az 1. query, a második meg a második query.
Gyönyörű szépen lehet szűrni az adatok bármely variációjára.
boraka (10915)-ben a válasz. Te csak a BeforeSave makróban egészítetted ki a sort, az Open makróban nem.
A lehetséges opciókat kétféleképen is meg tudod nézni. Vagy rögzítesz egy lapvédelem beálítás makrót és megnézed az eredményt, vagy megnézed a súgóban bármelyik parancs mögé beállsz a kurzorral (jelen esetben a protect mögé) és nyomsz egy F1-et.
Igen egy hibát elkövettem. Eszembe nem jutott, hogy a makróból történő védés és feloldás törli a beállításokat. Hiszen amikor kézzel végezzük, akkor csak a jelszót kell beírni, a már ottlévő pipák ottmaradnak. Én is tanultam valamit. :o)
Még nem tudom. Céges adatbázis kezelőn lefuttattam két lekérdezést, aminek azonos eredményt kellene adnia. De nem azonosak. A két eredményt szeretném elemezni, mi közös, mi van egyikban, mi a másikban, mi a különbség. Ebből hátha rájövök, mi okozhatja az eltérést.
Én összemásoltam egy oszlopba a találatokat és kimutatást készítettem. Ebből azt látom mi van 1x és mi van duplikálva. Nyilván ez utóbbi a közös metszet. (hogy a halmazok nyelvén fejezzem ki). Az unió is adott, kérdés az A eleme B és a B eleme A.
Most a közösek kellenek vagy a különbözőek? Hogyan akarod előállítani? Én már csináltam hasonlót, de elég fapadosan. A C oszlopba olyan képletet írnék, hogy pl. C1=DARABTELI(A:A;B1), ami megszámolja, hogy a mellette levő elem hányszor van az A oszlopban, és ez vagy 0, vagy pozitív. Lehet szűrni rá, vagy lehet rendezni C szerint, vagy be lehet illeszteni HA függvénybe, attól függően, mit szeretnénk. És aztán el is lehet rejteni a C oszlopot, ha zavar.
Az FKERES függvénnyel csinálnám, pl. ha a B oszlop elemeit keresném az A oszlopban, a C1-be ezt írnám: =FKERES(A1;B1:B4;1;0) Majd pedig dupla klikk a C1-en ;-)
Ennek működni kellene (a védett cellákat színezni lehet)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveSheet.Unprotect Password:="jelszo" Sheets("Munka1").Range("s4:s100").Locked = True ActiveSheet.Protect Password:="jelszo", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True End Sub
Private Sub Workbook_Open() ActiveSheet.Unprotect Password:="jelszo" On Error Resume Next Sheets("Munka1").Range("s4:s100").SpecialCells(xlCellTypeBlanks).Locked = False If Err <> 0 Then Err.Clear On Error GoTo 0 ActiveSheet.Protect Password:="jelszo", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True End Sub
Tételezzük fel, hogy a név, város, utca, hsz, ir.szám az egymás melletti A, B, C, D, E oszlop celláiban vannak és az F oszlop üres. Nos, ha az első sor az adatok fejléce (az adott oszlop értelmezése, pl. város), akkor az F2 cellába írd be (felül a szerkesztőlécnél) amit robbantomester ajánlott, vagyis ezt: =A21 & " " & B2 & " " & C21 & " " & D2 & " " & E2 Ez után nincs más hátra, mint állj az F2 cellára, majd amikor az egér mutatót a cella jobb alsó sarkához teszed és megjelenik egy kis fekete célkereszt, lenyomod az egér bal gomját és lehúzod az egérmutatót az utolsó értékes sor végéig.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveSheet.Unprotect ("jelszo") Sheets("Munka1").Range("s4:s100").Locked = True ActiveSheet.Protect ("jelszo"), DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True End Sub
Private Sub Workbook_Open() ActiveSheet.Unprotect ("jelszo") On Error Resume Next Sheets("Munka1").Range("s4:s100").SpecialCells(xlCellTypeBlanks).Locked = False If Err <> 0 Then Err.Clear On Error GoTo 0 ActiveSheet.Protect ("jelszo") End Sub
Itt tartunk most. Szépen védi az egyszeri írást, ahogy kell, de lelövi a formázást is. Nem lehet semmit átszinezni, stb. Mi a hiba?
katt arra az első cellára ahonnantól szeretnéd a "folytonos" szöveget. Írd bele, hogy =ÖSSZEFŰZ(
aztán a ctr gomb nyomvatartása mellett kattintgass az adatokat tartalmazó cellákra (a megfelelő sorrendben)
Nyomj entert ha kész, de előtte zárd be a zárójelet. (ha nem teszed az se baj)
Így most egyben lesz az egész, de tehetsz bele szóközöket amit a " " jelent (Idézőjelek között egy szóköz, v bármilyen más írásjel (lentebb a példa amit írtam) ha nem megy akkor tényleg ott a súgó, jó az.
sziasztok, a következőre keresek megoldást: egy jó 2000 soros táblázatban kellene cellaegyesítést végrehajtani soronként - de úgy, hogy cellaadatok ne vesszenek el. (a lényeg az volna, hogy a cellákban megjelenő információkat - név, város, utca hsz, ir.szám - folytatólagosan írva kapjam meg, ne pedig cellákba rendezve) remélem, megoldható valahogy... köszi!
Most akartam én is ugyanezt a problémát felvetni :-)
Ha beállítgatom a lapvédelemnél, hogy mi legyen szerkeszthető, az csak addig működik, amíg manuálisan teszem rá a lapvédelmet. Ha a makró teszi vissza a védelmet, akkor olyan, mintha alapra ugrana vissza a lapvédelem panelen lévő beállítás.
István, próbáltam, amit írtál. Majdnem jó is. A fájl megnyitásakor védett az egész tartomány, amíg el nem fogadom a makró futtatását. Utána az üres cellák "felszabadulnak". Viszont tiltva marad az összes formázási lehetőség. Hiába pipálgatom be lent a lapvédelemnél. Mit tudnék ezzel kezdeni?
Több "alap" táblázatot készítettem a munkahelyre. Ezeket szükség esetén módosítani kellene (oszlop beszúrás), de ha kezelné a változásokat, akkor nem kellenék hozzá én, hanem a kolléga is meg tudná oldani.
Excel2003-al (VBA) kapcsolatban lenne kérdésem. Van egy formom amin egy textbox előre beírt szöveget tartalmaz. A szöveg egyszerre nem jeleníthető meg, ezért a textbox görgetősávot tartalmaz. A form betöltése után szertném, ha a texboxban a szöveg eleje látszódna. Sajnos most minden esetben a szöveg végére ugrik. Gondolom, valami scroll tulajdonságot kellene megadni a form indításakor, de a textboxra ilyent nem találok. Lehet, hogy csak nem néztem eléggé figyelmesen?? Csak scrollbar beállítást találtam (azt hiszem ez csak arra jó, hogy milyen görgetősáv legyen...) Előre is köszönet a segítségért!
Elképzelhető, hogy oszlopot kell beszúrni, de akkor elmegy vadászni a makró:-) Mit kellene módosítani benne, hogy az oszlophivatkozások relatívak legyenek?
Első feladat nevezd el a kérdéses területet. Én a makróban a "tartomany" nevet használom. Más is lehet, nevezd át. A terület Munka2-es munkalapon van nálam. Te majd írd át.
Második feladat állítsd be a munkalap védelmét. Pipáld ki mit szeretnél engedélyezni és mit nem.
Az általam használt jelszó "jelszo" majd írd át.
Az alábbi makrót másold be a "ThisWorkbook"-ba. Ez a tábla megnyitásakor a kijelölt tartomány üres celláiról leveszi a zárolást. Mentéskor pedig a teljes tartományt zárolja. (Hogy megnyitáskor makró engedélyezés nélkül ne lehessen írni.)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveSheet.Unprotect ("jelszo") Sheets("Munka2").Range("tartomany").Locked = True ActiveSheet.Protect ("jelszo") End Sub
Private Sub Workbook_Open() ActiveSheet.Unprotect ("jelszo") On Error Resume Next Sheets("Munka2").Range("tartomany").SpecialCells(xlCellTypeBlanks).Locked = False If Err <> 0 Then Err.Clear On Error GoTo 0 ActiveSheet.Protect ("jelszo") End Sub
Ha szeretnéd tudni, hogy ki mikor mit csinált a táblázatodban, akkor a korrektúrában a változások követésével kell játszanod, de ez nem tiltja meg a változtatásokat.
Azt is meg lehet oldani, hogy minden felhasználó csak a számára engedélyezett területet tudja szerkeszteni és módosítani (Tartományok módosításának engedélyezése), de a leírtak alapján nem ezt szeretnéd.
Az, hogy valaki beleír valamit a cellába és utána már ne tudja változtatni, szerintem ellentétes az alaplogikával, és az én jelenlegi tudásom szerint ezt csak makróval tudod megoldani.
Ekkor is azonban tudni kellene, hogy mit tekintünk "végleges" cella kitöltésnek.
Beleír valamit a cellába és kilép belőle, akkor már végleges? Vagy csak akkor végleges, ha lementi a táblázatot és kilép belőle?
Csak a cella ismételt módosítását nem akarjuk engedni, vagy a formázását sem?
Valamint az is lényeges, hogy közös használatra engedélyezett a tábla vagy nem.
Közös használat esetén macerás, vagy lehetetlen makrók használata.
Ha nem közös használatú és részletesebb információkkal is szolgálsz, akkor összedobhatok valamiféle kezdetleges makrót. Bár ez is megkerülhető, hiszen mi van ha a felhasználó megnyitáskor nem engedélyezi makró futást?
Ezt is meg lehet oldani és leprogramozni, hogy csak makrófutás engedélyezés után lehgyen látható (és/vagy) szerkeszthető a kérdéses munkalap. De ez már egy másik makró.
Akkor lehet, hogy részletesebb leírásra van szükségem. Akárhogy próbálgattam, nem működött így. Tudni kell még, hogy nem az tiltja a cellát, aki beleírja az első számot. Magyarul X1 user szeretné, ha X2 user beleír egy számot, akkor azt utána X2 user már ne tudja se törölni, se módosítani. Erre is jó az, amit írtál?
Nem értem. A Protect (amiről lentebb írtam) megcsinálja amire szükséged van. Miért gondolod, hogy nem lehet a formázást engedélyezni a védett cellákra? Ikszeld ki a megfelelő menüpontot a Protect aktiválásakor.
Kipróbáltam, a formázás működik és xl2003-ra lefele is kompatibilis.
Az "egy cellába csak egyszer írhatunk" feladatom még mindig fél lábon áll. Ha védem a cellát, ugyan nem enged mást írni bele, de szinét, stb. se lehet állítgatni a táblázatnak, és ez a jelen feladatnál lényeges szempont lenne. Valami okos ötlete esetleg valakinek? Lényeges az is, hogy 2003 és 2007-es office is használja ezt az xls-t.
Kerek négyes nem jó? Mert az van a Wingdings, Wingdings2 karakterkészletekben. Beszúrás/Szimbólum. De lehet, hogy valamilyen különleges karakterkészletben a szögletest is megtalálod.
Igazából nem Excel, hanem Word, de nem találtam pörgős Word topik így ide teszem, ha nem baj. Az lenne a kérdésem, hogy hogyan lehetne a Word-be azt a hülye karaktert (1.kép) átvarázsolni olyanra mint amilyen a a 2. képen látható (pdf.-es) dokumentumban van? Köszönöm a segítséget!
A professzorok biztosan primitívnek tartják (joggal), de működik... :-)) Indításkor annak a sornak bármely elemének kell aktívnak lenni, amit másolni akarsz... Sub proba3() Rows(ActiveCell.Row).Select '' kiválasztja az aktív elem sorát Selection.Copy '' Kijelöli másolásra Selection.End(xlDown).Select '' Lemegy az utolsó sorba Range("A" & Trim(Str(ActiveCell.Row + 1))).Select '' és még egyet lefelé ActiveSheet.Paste '' elvégzi a beszúrást End Sub
Adott egy alapból 43 soros táblázat, mely a-tól z-ig tart. A cellákban képletek vannak. Előfordulhat, hogy kevés a 43 sor, ezért sort kellene beszúrni a végére, de úgy, hogy a cellákban lévő képleteket is továbbmásolja, és a cellák (láthatóság miatt beállított) színeit is. A cél az lenne, hogy ne egy megadott sorba, hanem mindig a legutolsó után (pl.: ahol még szerepel a képlet vagy ahol még színes egy cella) szúrja be a sor (illetve másolja át a képleteket egy újabb sorba (formátummal együtt)
Mindezt egy gombnyomásra (tehát makróval) szeretném megoldani. A függvényekben már otthon vagyok, de a makrózást még csak most tanulom.
Üdv mindenkinek!
Régóta Excelezem, és a következő gondom akadt. Vettem egy új laptoppot, gyári Win 7 van rajta. Erre telepítettem régi Office 2003-at. Az Excelben történő adatbevitel nem stimmel, mert ha beírok egy cellába 1-et, akkor 0,1 jelenik meg. Minden bevitt érték egy tizedessel kisseb értékű lesz. Sajnos nem tudom, hogyan lehet helyrehozni.
Ha van ötletetek, kérlek írjátok meg.
Előre is köszi. Nidan
A táblát ilyenkor a magasabb verzióban érdemes megcsniálni, (xl2007-ben compatibility mode) és mentéskor megjelenik egy táblázat ami összefoglalja, hogy lefele milyen funkciók nem lesznek kompatibilisek.
Az lenne a feladatom, hogy néhány táblázatban egy-egy bizonyos cellatartományt jelszóval levédjek úgy, hogy csak egyszer lehessen írni bele, ugyanakkor a táblázatot továbbra is lehessen szinezni, formázni.
Excel2003-ban szeretnék csatolva transzponálni transzponálni egy másik munkalapra, de a transzponálás kipipálásakor elszürkül a csatolva gomb. Hogyan csináljam?
Ezzel az eszközzel kérek le internet adatokat egy EXCEL-be ciklusban sokszor: (A QueryString változik a ciklusban) With WS2.QueryTables.Add(Connection:="URL;" & QueryString, Destination:=WS2.Range(hova)) .BackgroundQuery = True .TablesOnlyFromHTML = True .Refresh BackgroundQuery:=False .SaveData = True End With
Azt tapasztaltam, hogy a lekérdezés folyamatosan lelassul. Valamit már a ciklusban le is kéne zárni, miután feldolgoztam a lekérdezett adatokat és mielőtt a következő lekérdezést indítom?
Azt megteheted, hogy a hibásan lefutó makróba beteszel ilyeneket: Debug.Print "1. állomás" Debug.Print "2. állomás" stb.
vagy ciklusba: For i=1 to 100 Debug.Print "Ciklus: " & i ... Debug.Print "Ciklus: " & i & " végrehajtva" Next
A Debug üzenetek az Immediate ablakben jelennek meg, a VB editorban. Ha nincs ilyen ablakod, akkor Ctrl+G -vel tudod előhívni. Így nyomon tudod követni, hogy meddig jut el a makró, és hol akad el. Ez az ablak a megosztott munkafüzetekben is látható.
Vagy ilyet is tehetsz bele:
Sub Teszt() On Error Goto hiba ... ...
Exit Sub hiba: Debug.Print Err.Number Debug.Print Err.Description Debug.Print Err.Source End Sub
Ez lehet (nem biztos), hogy több felvilágosítást ad a hibáról, mint az Excel hibaüzenet.
Ennek az egzakt megválaszolását másra bízom, mert nulla tapasztalatom van megosztott munkafüzetekkel. Mindenesetre a neten több forrás is azt állítja, hogy elvileg a makrók ott vannak, és futnak is, kivéve, ha olyan dolgot próbálnak csinálni, ami ütközik a lap/füzet/diagram-védelemmel.
köszi a választ, visszatérek majd rá, de most előállt egy nagyob gond :-)
csináltam egy jó kis feladatkiadó, munkalapszerkesztő progit, tele makróval.
Ugye valahogy betudom állítani azt, hogy ha megosztottra állítom a file-t akkor is menjenek a makrok?????
Mert most simán közli velem, hogy shared állapotban nem látszódnak a makrók és nem lehet szerkeszteni őket. (mondjuk a szerkesztés az nem is probléma, de a használat.... az igen)
Természetesen a mentés utáni kompatibilitással kapcsolatos felsorolást kiszűrtem,megszüntettem.Viszont ezen a gépen nincs internet így a frissítést nem tudom letölteni. A másikat meg már azt se tudom mit mondtál. Le tudnád egy picit részletesebben írni hogy mit tehetek? USB-n lehet ilyen frissítést átvinni vagy valami?
próbálom használni, alkalmazni excel-ben a makrókat, de a parancsgombbal való indításkor néha run-time error 1004 hibával "eldobja". Gyári bolti lemezen található proginál is tapasztaltam ezt, visual basic programot megnézve semmilyen szintaktikai hibát nem vélek felfedezni. A progi billentyűkombinációval, vagy eszköztár ikonjával tökéletesen működik. Tudna valaki segíteni, hogy mi lehet a probléma?
amikor 2007-ben elmented egy régebbi verzióba, akkor felsorolja a kompatibilitási problémákat - hogy milyen szintű veszteségek keletkeznek stb... Azt nézd meg.
Van még egy problémám, itthon megcsináltam egy szerkesztést 2007-el,97-re. de amikor usb-n beviszem a melóba hiányzik eredményt ad. Ügyeltem a kompatibilitásra 97-be mentettem és mégse jó. Itthon megnyitom 2003-al és minden jó.97-es offot nem tudok beszerezni sehonnan sem, így ezzel nem tudom megnézni.open off-al hiba 502 eredményt ad sokmindenre. Most 2 hónapig nem tudok bemenni dolgozni ezért csak itthon tudom csinálni, egyébként bent átszerkeszteném és jó lenne.Régebben is volt már ilyen és csak az f keres-t kellet újra megcsinálni(ugyanúgy mint itthon, tehát semmit sem csináltam másképp.) Mit tudok tenni ezzel kapcsolatba. Feltételezem hogy az USB-vel van valami, és nem bírja az adathordást.
Arra tudsz javasolni valamit, hogy miképpen tudna ez online (browswerből) működni? Ha weblapként mentettem el, amolyan PRTSC-ként funkcionált: láttam mindent, de nem tudtam módosítani semmit, nem tudtam beleírni sem. A cél az, hogy a cégen belül amolyan online segítség legyen bizonyos számolásokhoz, a megfelelő képletekkel (amikhez ne nyúljanak)
1. Annak pedig mennie kell, vmit nem jól csinálsz.
2. ne legyen kijelölt cella a lapon. 1. ctrl+g 2. alt+r 3. "képletek" bejelöl 4. enter 5. ctrl+1 6. "védelem" fülön rejtett bejelöl (védelem fület csak akkor fogod látni ha nincs rajta a lapvédelem.
Az lenne a kérdésem, hogy mitől van az, hogy egy lapvédett xls filet feltöltve egy serverre majd a netről megnyitva a védelem nem működik? HOgy lehet online is működő, képletekkel dolgozó, de védett xls-t filet készíteni? Az egész egyfajta online (browserből működő) számolási segítség lenne, cégen belül,a védettség pedig a képletek miatt van, hogy ne tudjanak beleturkálni, csak a szabad cellákba írhassanak alapadatokat.
Szóval akkor mégis munkalapon vannak a gombok... Itt még mindig (legalább) két lehetőség van. A gombokat 1) A Vezérlők eszközkészletből tetted fel 2) Az Űrlapok eszközkészletből tetted fel
A kód alapján, amire azt írtad, hogy megy, az első valószínűbb.
Azt én sose mondtam, hogy a feltételes formázás nem egyszerűbb! Azonban mivel Excelben sok mindent lehet több módon is megoldani, miért ne beszéljünk az alternatívákról.
Az egyetlen szitu amit el tudok képzelni, hogy számít melyik változatot használja, az a lefele kompatibilitás, bár valszeg az sem, mert a feltételes formázás már elég régen benne van az excelben.
Meg a kevésbe excel vénájú főnökök elvakítására is jó, hogy nézd már 1 a cella értéke és mégis szöveget ír ki, micsoda excel zseni ez a csákó már, adjunk neki rögtön 150% fizetésemelést :-)
Akkor azt gondolom, talán külső modulon van az a kód, amelyikkel a gombokat módosítani akarod. A Me akkor működik, ha az űrlap saját kódlapján van a szubrutin. Esetleg próbáld meg ezt:
Dim i As Long For i = 1 To 6 UserForm1.Controls("CommandButton" & i).BackColor = RGB(Rnd(1) * 256, Rnd(256) * 256, Rnd(256) * 256) Next
A UserForm1 helyére természetesen az űrlap neve kell.
Ez jól hangzik, de akkor már a feltételes formázás sokkal egyszerűbb. ;-) Így is, úgy is formázást használsz, nem magát a függvényt. (A Custom magyarul Egyéni.)
Ez azért van, mert a magyar naptár hétszámítása eltér a nemzetközitől. A nemzetköziben az számít első hétnek, ahol a január 1. van. A magyarban pedig az az első hét ahol az új évre legalább 4 nap esik. (Míg a többi az előzőre.). 2010 pont egy ilyen év... Vagy UDF kell, vagy vmi kerülő megoldás halmozott képletekkel kiszámolgatva... (Pl. sql-ben erre külön függvény készült a munkahelyemen)
Public Sub InsertRow(ByVal myConnectionString As String)
If myConnectionString = "" Then myConnectionString = "Data Source = Northwind.sdf;" End If
Az a kérdésem, hogy van e lehetőség egy Excel makróval SQL lekérdezéseket csinálni, SDF kiterjesztésű adatbázis állományból? A neten itt-ott találni Visual Basic .NET Framework kódot. A kérdésem az, hogy ezek vajon futnak VBA-ban is?
A céges notin futó alkalmazás ilyen adatbázist használ. Sikerült elég jól felderítenem az adatbázis szerkezetét, Visual Studio-ban sikerült SQL lekérdezéseket készíteni, futtatni. A kigyűjtött adatokat vágólapon keresztül Excelbe szoktam vinni. Jó lenne megoldani, hogy közvetlenül ExcelVBA makróval futtatnám a lekérdezéseket!
köszi szépen a dec2bin- a (meggyalázva) Exceléből oldottam meg vannak benne jó dolgok amik hagyományos Excelbe nem jók de itt kezeli. Van még egy probléma is amit hosszú szerkesztésekkel sikerült megoldanom de érdekes hogy a Weeknum az 53. hét és 1. hét közti váltást helytelenül kezeli, főleg hogy 97komp-ra kellet csináljam.
Attól félek az 511 feletti konverzióra UDF-et kell írj, mert az Excel beépített függvénye nem tudja kezelni az 511 feletti értékeket.
Mondjuk azt gondolnám nem te vagy az egyetlen akinek ez probléma, szóval egy gyors google arra, hogy dec2bin udf excel nagy valószínűséggel megoldást jelent.
Van emgoldás, bár én is meglepődtem, hogy működik...
Kicsit backdoor, de mint mondtam műxik.
Szóval a HA függvényedet úgy írd meg, hogy helyesség esetén 1 értéket vegyen fel, helytelenség esetén 0 értéket vegyen fel.
Ezután, a HA-t tartalmazó cellára kell állni (ami most vagy nullát vagy egyet mutat) és Ctrl+1-et nyomni (Format cell).
Itt a Number (Szám v. Számok) fület kell kiválasztani, ott pedig a bal oldali listán belül a Custom (Testreszabás? - az utolsó listaelem a sorban) listaelemet.
Ekkor a kis szerzkesztőléc aktívvá válik és a következőt kell beírni:
[Green]"OK";;[Red]"Nem OK"
FONTOS: - ha magyar verziód van, akkor Green és Red helyett azok magyar megfelelőit kell használni (Zöld, Piros v. vörös). - lehet, hogy a te verziódban a pontosvessző helyett sima vesszőt kell rakni, kisérletezz.
a binárisat egy másik gyártó exceléből átmásoltam. az adatbázisban ez szerepel tehát számértékérték a keresési értéket meg ha-ból szummoltam össze.tehát nem "kétnemű"
2. az fkeres kritérium argumentuma biztosan olyan értéket ad vissza, ami megtalálható a megadott tartomány első oszlopában? (ha kijelölöd a "kritérium" argumentumot az fkeresben - és nyomsz egy F9-et, akkor értékké alakítja azt, mit kijelöltél. Így ellenőrizd) Nincs szám/szöveg adatkonverziós elétérés a 'keresendő' (amit) és 'megtalálandó'(ahol) között?
Sziasztok. 2 kérdésem lenne. 1. hogy tudom beállítani hogy a dec2bin függvényt 511 helyett 8000< -ra is váltson (13 számjegyel próbáltam de 511 után megakad) 2. néha nem számolja az f kerest pedig semmi extra érték nincs benne. utoljára bin értékből akartam 8000x15 táblából számolni de hiányzik értéket ad. előre is köszi.
Köszönöm a segítséget. Most értem haza, kipróbálom, ill átvariálom a munkalapomra. Az excel magyar 2003-as. Az oszlopok száma 60. Természetesen van min. és max. A sor teljesen rendezetlen, bárhol, bármilyen érték előfordulhat. Leginkább nulla (NEM ÜRES). A számok nagy része nem egész. Hát próbálkozom és megírom az eredményt. Addig is Köszönöm!
Sehogy, mivel ez nem függvényérték. Viszont ha ugyanezen cellára állva kinyitod a formátum menüben a feltételes formázást, akkor csodát fogsz látni, mert pont azt csinálja, amit szeretnél. (Alapból zöld, feltétel esetén piros. Vagy: alapból fekete, különböző feltételekkel más-más szín, ehhez a bővítés gombot használd.)
Van egy cellám amelyben egy HA függvény segítségével megjelenik a bevitt adatok helyessége vagy "helytelensége". A kérdésem az hogy lehet olyan HA függvényt írni melyben az igaz érték mondjuk zöld szöveggel, a hamis érték pirossal jelenik meg ugyanabban a cellában? Esetleg ugyanígy a cella háttérszíne megváltoztatható? (csak kezdő-felhasználó szinten)
Feltételezések: - angol excel - nem számít, hogy 2003 v 2007 - az adataid az A és J oszlopokban és azok között helyezkednek el. - a lenti példa az 1 sor kiértékelésére készült, ha ott fejléc adataid vannak, akkor értelemszerűen a 2. sorba kell rakni és az A1:J1 részeket kicserélni A2:J2-re. - ha az A oszlopod fejléc adatokat tartalmaz akkor értelemszerűen B1:J1-re cseréld a képletben a hivatkozásokat
Másold be a lenti képletet a J utáni bármelyik oszlop 1. sorába:
=MAX(COLUMN(A1:J1)*IF(A1:J1>0,1,0))
a képlet bevitelét ne ENTER-rel, hanem ENTER és SHIFT együttes lenyomásával fejezd be. Ha jól csináltad akkor az excel a képletet {} zárójelbe teszi.
Innen már csak be kell másolnod (copy / paste semmi különleges) a maradék 13999 sor megfelelő cellájába.
Az függvény visszaadja, hogy melyik oszlopban van az utolsó nullánál nagyobb érték (nem nézi, hogy egész-e).
FIGYELEM: lehet, hogy az IF (HA) függvényben neked nem vesszőket, hanem pontosvesszőket kell használj, kisérletezz vele.
Sziasztok, gond van..... Van egy x oszlopból álló táblám (14 000 sor). A cellák 0-át, vagy valamilyen pozitív számot tartalmaznak teljesen véletlenszerűen. A feladatom az lenne, hogy SORONKÉNT melyik az az UTOLSÓ oszlop, amiben nem nulla szerepel? Nemtom ez elég világos volt-e, ahogy leírtem?? Pl.:
nem konkrétan idekapcsolódó kérdés... és ha pl nem konstans tömb, hanem változó, akkor hogy kell a munkafüzet összes (bármely) makrójával elérni (elérhetővé tenni)?
Nem tudom mi a megoldás, de ez nem akadályoz meg a blöffölésben :-)
Ha jól emlékszem, akkor XP alatt be lehet állítani, hogy az ismert file kiterjesztéseket ne mutassa az oprendszer. Lehet annak van ilyen, excelre is kiterjedő hatása.
Szóval nézd meg ezt a beállítást mindkét gépen, hátha ez az eltérés.
Kezdő exceles vagyok, és egy olyan kérdésem lenne, hogy lehet (=lehet-e??) beállítani azt, hogy az excel ablak felirata mi legyen. Egészen pontosan az én gépemen "Microsoft Excel - próba" a fejléc a próba.xls megnyitásakor, míg egy másik ugyanolyan gépen ugyan azt a fájlt megnyitva "Microsoft Excel - próba.xls". Mitől függ, hogy a ".xls"-t kiírja vagy sem?? (Ablakokat keresek név alapján, és bezavar. Az én gépemen fut, a másikon nem a ".xls" miatt, és ha nem muszály, nem írnám át az egész programot.)
Felteszem, hogy az összesítő lapon a dolgozók nem a lapfüleken feltüntetett rövid-, hanem a teljes nevükkel szerepelnek. Vegyél fel egy új oszlopot a rövid nevükkel (ezt az oszlopot majd elrejtheted), és a INDIREKT függvénnyel erre hivatkozz.
Köszönöm a segítséget mindenkinek. Nem akarom összeadni, csupán úgymond kilistázni bizonyos cellákat. Ezek a cellák már egy összesített adatot tartalmaznak egy egész hónapra.. Úgy kell elképzelni, hogy a 78 névsor A oszlop, B oszlopba pedig sorba a 78névhez kellene odavarázsoljam a (maradjunk a példánál) C30-as cellát, ezt már nem akarom összeadni, csupán Z-A irányba rendezni.
Remélem érthetően írtam le.. Sajnos nekem lövésem nincs hogy tudnám megoldani, hogy ne minden cellába írjam be h most melyik munkalapra akarok hivatkozni :(
Tételezzük fel, hogy igazából nem is akarod látni a rész adatokat, csak az összesent.
A technikát úgy hívják, hogy drill through és 3 dimenziós editálásra v. függvénykezelésre használják, de sokkal egyszerűbb mint a fentiek alapján tűnik.
Szóval tegyük fel, hogy az ELSŐ lapod neve GipszJakab az UTOLSÓ neve pedig MekkElek, az összesítendő adatok a C30-as cellában vannak.
Szóval a 79. lap kívánt cellájába a következőt kell írjad, hogy lásd a 78 munkás C30-as celláinak összegét: =SUM(GipszJakab:MekkElek!C30)
FONTOS: a GipszJakab és MekkElek lapok közötti tartományban csak munkavállalók lapjai lehetnek (vagyis a 79. lap vagy a GipszJakab előtt vagy a MekkElek után kell legyen)!
Ha valamiért mégis látni kell a munkások egyedi C30-ait, akkor jelezz és arra is kitalálunk valamit.
Kell darabonként mindenki, vagy csak azért emeled ki mindegyik lap C30-as celláját, hogy utána összeadd? Szóval ha másként össze tudnánk adni a 78 munkás adatát, akkor nem is kellene, hogy az egyedi c30 adatok látszódjanak?
Bezony! A másik exceles topikba - ha jól emlékszem - Delila belinkelt egy függvény-fordítót, amiben az excel különböző nyelvű változatainak függvényeit lehet fordítani. Én a magyar DARABTELI-t nem tudom soha, h. mi, onnan tudok puskázni.
Üdvözlök mindenkit! Nem vagyok nagy exceles, alapdolgokat megtudok csinálni, bár lehet a problémám is, amit nem tudok megoldani, nem egy nagy dolog.. Van egy excel munkafüzetem, amiben 78 munkalap van (a munkalapok elnevezése a munkások nevei pl. BaloghK), egy 79.dik munkalapra kell összesítést csináljak, úgy, hogy minden munkalapról bizonyos cellák adatai kellenek. Ezt eddig úgy oldottam meg, hogy a 79.dik munkalapon, amelyikre az összesítést csináltam, hivatkoztam az első munkalapra majd a cellák, oszlopokra, v.hogy így =BaloghK!$C$30, hogy lehetne azt megoldani, hogy sorozattal tölthessem ki, tehát ha ezt a cellát jobb sarkánál fogva elkezdem húzni lefelé, akkor a következő munkalapból másolja ki az adott cellát, pl. =BaloghK!$C$30 =CappJ!$C$30 stb..
Van erre egyáltalán v.mi megoldás, jelenleg minden cellába külön kell beírogatnom a munkalap hivatkozásokat..s ez elég macera. Előre is köszönöm , ha tud valaki segíteni!
office-2000-es Egy szerverről kerül be az alábbi képen látható sárga mezőkbe az import adat. Az egyik mezőbe ez van beírva: =M4|ASK!DATA5 A másikba =M4|ASK!DATA6 , stb. http://www.kephost.com/images2/ars7mc9skveice8s19mj.jpg Próbálkoztam vele , de semmi eredmény .. Tehát a sárga mezőkbe érkeznek az adatok és mp-ként változnak. A mellette lévő mezőbe #ÉRTÉK! kellene a két egymás mellett lévő szám különbségének megjelenni, majd ez a (különbség) szám egyéb függvényekkel kerülne kapcsolatba más tizedesvesszős számokkal.
Egy szoftver küldi az adatokat az excelbe ( 4 adat) mindegyik tört,azaz tizedes szám és ezeknek a számoknak a tizedesválasztóját pontról vesszőre kellene lecserélni.A szoftver adatbázisát nemtudom változtatni. Ezek az adatok folyamatosan jönnek és ezekhez az adatokhoz belső számadatok is kapcsolódnak, melyekkel különböző műveleteket kellene elvégezni. A meglévő adatbázis viszont hagyományos tizedesvesszővel működik. Tehát csak az importadatokat kellene pontról vesszőre átalakítani valahogy.
Ha 2003, akkor az Edit menüben lesz egy Replace (Csere) utasítás. Ha 2007, akkor a Home tab utolsó eleme lesz egy Find, ott találod a Replace-t is.
Mielőtt csinálod a cserét a következőket tedd meg: - jelöld ki azt a területet ahol a pontot vesszőre akarod cserélni - nézd meg van-e ezres határoló a számokban (pld. 125,456.12). Ha van, akkor előbb az ezres-határolót kell kicserélni a semmire "" és csak utána a tizedes pontot vesszőre.
Vagy beimportáláskor állítsd át a tizedes-szeparátort és akkor már eleve jól jönnek be az adatok. Delila javaslata jobb ha csak most az egyszer jön elő ez a probléma, az enyémet akkor használd ha ismétlődően importálsz a problémás formátumban.
Másik alternatívák: 1.) menj át egy olyan gépre ahol angol rendszer van, az élből számnak fogja beimportálni a lenti formátumot. 2.) importálás előtt állítsd át az oprendszer beállításaidat, hogy a pont legyen a tizedes-szeparátor.
Sziasztok! alapmüveleteket kellene az excelben megoldanom,de az alábbi beimportált adatokkal sajna ez nem sikerül. A számoknál a "tizedesvessző" tizedespontként jelenik meg. 345,45 helyett 345.45 Tehát a 345.45 / 23.765 = #ÉRTÉK! -et ad eredményként. Ennek megoldásához szeretnék segítséget kérni. Előre is köszönöm.
Lenne egy olyan problémám, hogy képlettel (nem szűréssel) kellene megoldanom azt, hogy: X oszlopban keressen a cellákban egy szövegrészletet (!!!!), és amelyik cellában megtalálta, Y oszlopban ugyanabban a sorban tegyen mellé egy jelölést.
vagyis: G oszlopban (megnevezés) van egy tonna mindenféle szöveg (kukorica, kukorikú, kukkoló, kukta, mama, papa, gyerekek, nagyszülők... :) ). Nekem szükségem van azokra az elemekre, amelyek TARTALMAZzák a "kuk" karakterhalmazt, és a mellette lévő H oszlopban meg kell jelölnöm. De képlettel kell megoldanom, nem szűrögethetek. Hogyan csinálnátok?
Ajánlom figyelmedbe a függvények közül a pénzügyi függvényekben a "részlet", vmit prészlet. Értelemszerű kitöltésükkel és az adatok táblázatba foglalásával. Részlet, törlesztő részlet Rrészlet kamatfizetés Prészlet tőketörlesztés
Az előtörlesztést azt nem tudod kalkulálni, mivel eseti, nem kiszámítható sem összegében, sem megvalósulásában. Az legyen egy külön cella, ami hozzáadott érték lehet a törlesztő részlet összegéhez adott esetben (legyen külön oszlop, és csak akkor töltsd, ha van rá precedens).
No igen: ne feledd, h az előtörlesztés a törlesztő részlet tőkeösszegéhez adódik hozzá, nehogy kamatrészt számolj rá!!!
Lenne egy olyan problémám, hogy képlettel (nem szűréssel) kellene megoldanom azt, hogy: X oszlopban keressen a cellákban egy szövegrészletet (!!!!), és amelyik cellában megtalálta, Y oszlopban ugyanabban a sorban tegyen mellé egy jelölést.
vagyis: G oszlopban (megnevezés) van egy tonna mindenféle szöveg (kukorica, kukorikú, kukkoló, kukta, mama, papa, gyerekek, nagyszülők... :) ). Nekem szükségem van azokra az elemekre, amelyek TARTALMAZzák a "kuk" karakterhalmazt, és a mellette lévő H oszlopban meg kell jelölnöm. De képlettel kell megoldanom, nem szűrögethetek. Hogyan csinálnátok?
1.) Csináld meg a szűrést X-re. 2.) Edit/Go To itt válaszd a Special "gombot". 3.) A láthatóvá váló opciók közül válaszd a Visible cells only (Csak a látható cellák) vagy valami ilyesmi. 4.) Oldd fel a szűrést és csak az X értéket tartalmazó cellák lesznek kijelölve (maradva).
Ha szükséges, akkor rejts el oszlopokat szükség szerint, hogy egyszerűbb legyen az élet.
Innen úgy folytasd ahogy lentebb leírtam a Ctrl-os verzióban.
Hát, a pajszeres megoldás az, hogy a lementendő adatokat átmásolod egy másik munkalapra és ott Save As.../Mentés másként... parancs után a file tipus résznél kiválasztod, hogy milyen file tipusba akarod elmenteni, itt lesz olyan opció, hogy txt.
Hogy a file-nak csak egy részét hogy lehet kimenteni azt nem tom, lehet xl2003-nál fejlettebb verziók tudnak exportálni, de most hirtelen csak a 2003-as verziót tudtam megnézni és az úgy tűnik nem tud. Ha 2007-es verziód van, akkor a Data tab környékén nézzél körül, valami olyan neve lesz (ha van ilyen), hogy export.
Azt írod, hogy egy oszlopon belül keverednek az X és Y adatok... Hogy lehet megkülönböztetni az X és Y adatokat? Valahogy meglehet, mert azt írod lehet(ne) auto-szűrni. Azért ha megírod, hogy hogy lehet az X és Y adatokat megkülönböztetni, akkor lehet valami jobb javaslattal is elő tudunk rukkolni.
Bár most, hogy végiggondolom a lenti javaslat valszeg működik így is...
Nos, a megoldáshoz azt kellene tudjuk, hogy fog-e változni az, hogy ha egy sor felvett egy X státuszt (van benne x érték vagy nincs), akkor utána változhat-e. Pld ha a 10. sorban egyszer van x érték egyszer meg nincs, akkor én azt mondanám, hogy VBA-ban kell megoldani az adott területek figyelését és a grafikon update-elését.
Legyünk optimisták és tételezzük fel, hogy nem erről van szó.
így haj alól a következő megoldási alternatívák jutnak eszembe: 1.) Ctrl lenyomása mellett kijelölöd azoknak az oszlopoknak a releváns celláit amikben van x érték (a Ctrl + kattintás egymással nem szomszédos cellák, területek kijelölését teszi lehetővé, gyakorold a munkalapon egy kicsit ha nem megy elsőre). Ezután ezekből aaz egymással nem határos, de kijelölt területekből csinálsz egy grafikont, mintha normál grafikont csinálnál.
2.) Tegyük fel, hogy az A1:B100-ban vannak az adataid (A oszlopban a megnevezések, B oszlopban pedig az X értékek - de nem mindenhol). Jelöld ki az A1:B100 területet és csinálj egy grafikont belőle. Tudom, benne lesznek azonknak a celláknak az értéke (nulla) is, amelyekben nincs x adat. Jelöld ki a grafikonodat akárhol és addig nyomkodd a nyíl billentyűt amíg az excel képlet sorában olyan nem látsz, hogy =SERIES(...). Ekkor jelöld ki a képletsor tartalmát, vagyis az egyenlőségjeltől a záró zárójelig tartó "szöveget" és nyomd meg az F9-et. Ez átalakítja a SERIES függvényt értékekké. Innen már csak annyi van hátra hogy kreatív módon törölsz minden nullát és a hozzá tartozó megnevezést, majd ENTER-t nyomsz. VIGYÁZAT! Ez véglegesen elválasztja a grafikont a táblázattól és így ha a táblázatod adatai változnak, a grafikon nem fog update-elődni.
Most hirtelen ennyi jut eszembe, de tuti lesz még valakinek valami ötlete, én is kíváncsian figyelek.
A c2167-ben dátumformátumban dátum van Azt nézem, hogy az excelben a hivatkozott cella átírásakor semmilyen hivatkozás nem frissül, csak ha a hivatkozást kitörlöm, majd újra beírom - mintha valami beragadt volna.
Diagramkészítésben kérnék 1 kis segítséget. Adva van 1 néhány oszlopos táblázat. Az egyik oszlopban, 2féle adat van, legyen X és Y. Mindkettő előfordul párszor az oszlopban, váltakozva. Hogyan tudok diagramot csinálni, mondjuk csak az oszlop X adataiból ??? Tehát azok a sorok ne szerepeljenek a diagramban, ahol adott oszlopban Y adat áll. (szűrő nem jó, mert ha leszűröm X-re, megcsinálom a diagramot, utána ha ismét megjelenítem a teljes oszlopot akkor a diagram változik, belekerül a többi Y adat is.)
Illetve hogyan tudok excelből TXT-be exportálni ?? Adva van 1 táblázat, aminek mondjuk az A1-D10 részét akarom csak TXT-be exportálni. Ezt hogyan tudom megtenni?
a "2" az oszlopszám, ahonnan a találatokat kell visszaadni (ahogy SQLKerdes írta)
Amit pedig eltévesztett:
az "1" pedig azt jelenti, hogy a függvény pontos vagy közelítő egyezést ad vissza. Ha pontos egyezést nem talált a függvény, akkor a következő legnagyobb, de a keresési_érték argumentumnál kisebb értéket adja vissza. (by F1)
Intervallum keresésre tök jól lehet használni, mint a példa is mutatja
A kapcsos zárójel közötti adatokat beírhatod a cellákba is és megadhatod fkeres "tartomány" argumentumának
Azok az FKERES argumentumai. A megadott mátrix 2. oszlopából kell a függvénynek adatokat kinyerni. 1= true, vagyis csak pontos találatokat adhat vissza.
köszi mkinek.. a robbanómester féle nagyon leegyszerűsiti legközelebb azzal próbálkozom de előbb megnézem a hogyan s miértjét, mert jó ha értem is amit csinalok
Amit, te írtál, az is jó lehet, csakhogy ez nem pont az, mint amit taktoj kért. Mi van akkor, ha nem az egész számok halmazáról adsz meg egy értéket? Taktoj, nem írt semmit olyat, hogy csak egész számokat vihetünk be.
meg így is: =VÁLASZT(HA(ÉS(A1>2;A1<10);A1;11);"z";"z";"z";"d";"d";"d";"e";"e";"e";"e";"z")
szrtem legjobb az fkeres-es lentebb. Annál a tartományt vagy konstansként betömbösíted a tartomány argumentumba, vagy beírod egy tartományba és azt a tartományt veszed fel az fkeresben
Sziasztok! Próbálom megoldani s utána is nézek, de valamiért nem találom a többszörös HA és VAGY függvényre utaló példákat. eddig eljutottam: =ha(vagy(a1=1;a1=2;a1=3;"C";"d")
na ezt szeretném ugy hogy ha a1 értéke 4 vagy 5 vagy 6 akkor D. ha a1 egyenlő 7 vagy 8 vagy 9 vagy 10 akkor E miinden egyéb esetben Z.
Olvasom az elejéről a topicot is de lassan haladok, s még nem találtam rá utalást.
Szeretném megkérdezni, hogy sikerült-e már valakinek Excel 2003 - MsQuery-n keresztül paraméteres lekérdezést készíteni MySql-ből? Sima lekérdezés megy, de ha MsQuery-ben a Nézet-Feltételek bekapcsolása után egy mezőt kiválasztok és aláírom, hogy pl. [Kérem az adatot], akkor hibaüzenet fogad: "Ennél a lekérdezésnél nem használhatók paraméterek." Lehet, hogy csak Access-ben, esetleg MsSql-lel működik a dolog?
Még valamit megtehetsz, hogy kevesebb időt fordíts később a táblázatod kiállítására.
Valahol a füzetedben, akár más lapon, felírod az évben előforduló ünnepnapokat. Ezek 01.01; 03.15; 04.05; 05.24; 08.20 és 11.01. A dec. 25-öt és dec.26-ot azért nem írtam a végére, mert az szombat és vasárnap. A dátumokat tartalmazó területet elnevezed Ünnepeknek (Beszúrás/Név/Név megadása).
Kijelölöd E-től kezdve az oszlopokat addig, ameddig a dátumaid tartanak, és feltételes formázást adsz rájuk. A képlet értéke:
Az E8-ba megadnám a hónap első napját, a H8-ba az =E8+1 képletet írnám. A 7. sor képletei az alattuk lévőre mutatnának, pl. az E7 képletete: =HÉT.NAPJA(E8;1).
A 7. sor cellaformátumát az egyéni kategóriában nnnn-nek adnám meg, ami kiírja, hogy a hivatkozott dátum a hétnek melyik napjára esik. A 8. sor formátuma attól függően, hogy 01; 02 ... 10, vagy 1; 2; ... 10 formában szeretnéd látni az adatokat, nn, vagy n.
Ha még zavarhatnálak egy percre. Ha beírnám az E7 cellába a hónap első napját, melyik függvényt kell használni, hogy a további (H7, K7, stb)cellákban a napok tovább gördüljenek?
Mellékeltem a képet, hogy teljesen érthető legyen a problémám. Az F10 cellába kellene írnom egy képletet, ami az E10-ből kivonja az E9-et és ha az eredmény nagyobb vagy egyenlő mint 12, akkor levon belőle egyet. (ebédidő)
Szia, Több lehetőség van. 1. ÉV(), HÓNAP() NAP() WEEKNUM() függvényekkel fel tudod bontani a dátumot. Ha ez megvan, akkor SZUMHA esetleg AB.SZUM fgv-el tudsz feltételesen összegezni fentiekre szabva.
2. Egy kimutatástáblába (pivottábla, ki hogy ismeri) foglalod az adataidat és a kimutatástáblában tudod dátumot csoportosítani hétre, hónapra stb.
3. Beszúrod 1.-es pont szerint a dátumdarabolós fgv-eket egy oszlopba. (Beírod a fgv-t egy külön oszlopba és lehúzod a képletet) Majd kimutatástáblába foglalod az egészet. En ezt használnám.
, akkor nekem kiszámolná a szummákat napra, hétre, hónapra lebontva ? Szerintem nagyon általános probléma ezért sejtem, hogy létezik már rá kidolgozott megoldás akár Excel ben, vagy akár máshol.
Segítséget szeretnék kérni a következőhöz: dolgozom egy munkabeosztás létrehozásán Excelben. Szükségem lenne egy képletre ami:2 adat különbözetéből vonjon le 1-et abban az esetben ha az eredmény 13. Tudna valaki ebben segíteni nekem?
A két lépletet másold le végig az adatoszlopod mellé. Legyen mindhárom oszlopnak címsora. Jelöld ki a teljes területet, és hívd be az Adatok/Szűrő/Irányított szűrő menüpontot. A képen látszik, miket adj meg a rubrikákban.
KÖszi a választ. még annyit szeretnék kérdezni, hogy a darabteli fv. ket ha nem szeretném egyenként átírni minden egyes találatra , tehát 01 hanyszor 02-99 ig arra tudnál e valami okosságot.
Ha nem akkor ezt is nagyon köszönöm, ez is óriási segítség volt
segítséget szeretnék kérni. 2003excel. 1 oszlopban 0-9 ig vannak a számok véletlenszerűen. Olyan függvényt keresek ami számszerűsítené hogy a 0 t hanyszor követi az 1 es vagy a 2 es stb. Köszönöm előre is ha van megoldás
1.) Meg van a kifejezés-párok listája angolul és magyarul valamilyen formátumban? 2.) Tudsz olyan webszolgáltatást ami XML formátumban beveszi az angol kifejezést és XML formátumban visszaadja az angolt?
Ha a fenti két kérdés bármelyikére igen a válasz, akkor él a remény.
De ha nem, akkor attól félek kézimunka lesz a dologból.
Tanulok egy programot, van benne egy csomó számomra ismeretlen műszaki kifejezés és szeretnék egy olyan excel file-t, amiben az A oszlopba írom az angol kifejezést és azt szeretném, hogy a B oszlopba jelenjen meg a magyar jelentése. De nem szeretnék kézimunkázni. Meg lehet ezt oldani a Office 2007-ben?
lenne egy érdekes problémám, amit sehogy nem sikerül megoldani. 2007-es excelről van szó. az x tengelyen lévő adatok -90-től +90-ig tartanak, az y tengely középen van. szeretnék 5 adatsort ábrázolni az x tengely függvényében, viszont hiába tartozik valamilyen adat a +50-hez, az excel csak a negatív tartományban hajéandó azt ábrázolni. van ötletetek, hogy miért?
Az A oszlopban rendezd a neveket emelkedő sorrendbe. A B1 legyen 1. B2-> =HA(A2>A1;B1+1;B1), ezt a képleted lemásolod az adataid mellé, és mindenki megkapta az azonosítóját. Az oszlopra a képletek helyére illesztd be az értéküket.
Ha az eredeti sorrend szükséges, a rendezés előtt vegyél fel egy új oszlopot 1-től emelkedő számokkal, ennek az oszlopnak a segítségével visszarendezheted a neveket az eredeti sorrendbe.
Igazából nem cserét szeretnék, hanem most van egy oszlop, amiben nevek vannak. Szeretnék egy másik oszlopot mellé, amiben a nevekhez egy azonosítót rendelek.
Pl. Béla legyen 35-ös
Jenő 22-es stb.
Tehát a nevek is megmaradnak, plusz legy egy szám azonosítóm, amivel jobban tudok dolgozni majd.
Van több mint 200 nevem és több millió cellám több fájlban, ezért szeretném programmal megoldani.
Mit értesz az alatt, hogy nevezze át a cellát? Ki akarod cserélni a Bélát 35-re, vagy valamilyen Name Range-t (nem tom magyarul mi a jelenség neve) szeretnél hozzárendelni a cellához?
Köszönöm, pontosítanám a problémát, mert még nem siokerült megoldani: a Then után szeretném írni, hogy ha a cella értéke "Béla", akkor nevezze át a cellát mondjuk 35-re (egy szám azonosítóval szeretném helyettesíteni a neveket, több százezer cellában).
Illetve, ha a cellában szerepel az Ft (szöveg formátumban), akkor írjon be egy másik cellába valamit.
a következő kérdésem lenne, ami a Visual Basichez is kapcsolódik. Hogyan tudnám azt a feltételt adni, hogyha egy adott cella tartalmazza/nem tartalmazza pl. az "Ft" karaktereket, akkor valami művelet végződjék el?
Tehát ha a cellában van az Ft-karakter kifejezést hogyan lehet beírni?
Másik: Ha a cella értéke egy adott szó, azt hogyan lehet beírni?
Pl: If cells(1,1)="Béla" stb - de ez így nem működik.
Most ugrott be, hogy ez a hiba akkor is előfordulhat (sőt lehet, hogy csak ekkor fordul elő csak már nem emlékszem én mikor produkáltam) ha a táblázat bármelyik munkalapján körkörös hivatkozás van. Ilyenkor van olyan cella amit kiszámol és van olyan amelyiket nem. Gondolom addig számolja egymás után a cellákat, ameddig bele nem ütközik a körkörös hivatkozásba.
Mindenképen nézze azt meg a munkalapokat váltogatva, hogy nem-e jelenik meg valamelyik munkalapon lent a státuszsorban a Körkörös üzenet.
Egyre gondolunk szerintem. Fura, a neten olvasva sok embernek volt hasonló esete. Nekem is volt korábban. De valahogy megjavult, már nem emlékszem mitől.
A munkafüzetben kb 10 lap van és több száz függvény :-).
Makroban nem vagyok nagyon penge, úgyhogy akkor szerintem az marad, hogy szegény kolléga újracsinálja a fájlt.
Ha azt mondod valahogy hiba került a fájlba...nem lehet valahogy hivatkozási hibakeresővel megtalálni?
Nekem már volt ilyen, ha egyre gondolunk. Nekem abszolút nem számolt a képlet. Valami sérült az táblában, de nem adott hibaüzenetet. Ha belementem a cellába F2-vel és entert nyomtam akkor számolt. Kitöröltem a képleteket és újramásoltam, ekkor megjavult. Ha sok a képleted, ráadásul különbözőek, akkor esetleg meg lehetne próbálni makróból végigmenni a cellákon kiolvasni a képletet kitörölni a cellát, majd visszaírni a képletet.
Szia, Igazából nem az én dokumentumomról van szó. Én is segíteni próbáltam valakinek. És ez volt az első, amit megnézettem vele, hogy mire van állítva: automatikusra, vagy manuálisra. És pont az a fura, hogy jó a beállítás. Automatikusra volt állítva.
De nem frissítette az eredményt, csak ha ki-be klikkelgetett az ember. Utánaolvastam a neten és másnak is volt ilyen gondja, de megoldást vagy tippet azon kívül, ami nekem is rögtön eszembe jutott nem írt senki.
Egyébként nekem is rémlik, hogy volt hasonló szituációm nekem is. De aztán valahogy elmúlt neki. Fura. No idea...
Gőzöm sincs mi lehet a gond. Ráadásuk egy giga pénzügyi fájl, elég ciki lenne, ha nem frissülne az a több száz függvény :-DDD.
A problémád szerintem nem a frissülés, hanem az, hogy manuális újraszámolásra van állítva a workbookod. Állítsd át automatikusra (vagy minden alkalommal amikor újra akarod számoltatni a képleteidet, nyomj F9-et).
Szólj ha ez nem oldja meg a problémát, akkor még agyalunk rajta.
Megoldódott a Personal.xls rejtély. Félig. Ugyanis 2 XLSTART könyvtár van. Az egyik a Documentum settingsUserApplication dataExcel útvonalon, a másik ProgramfilesMsoffice alatt. Na ez utóbbiból törlődött a Personal. Visszamásolva újra obligát betöltődik. Tehát probléma megoldódott.
Most már csak arra lennék kiváncsi, minek a második XLSTART, ha nem látja. És hogyan törlődhetett ki az elsőből?
Egy addin letöltése és kipróbálása óta nem jön be alapból a Personal.xls-em. Noha ott van az xlstart könyvtárban. Hogy lehetne az automatikus behívást visszavarázsolni?
Sziasztok, Excel tablazatban szeretnek egy munkaido beosztast, ami a sor vegen osszesiti hogy ki hany orat dolgozott a honapban.(Ez idaig megvan), de a napoknal betuket szeretnek megjeleniteni pl.: E (ejszakas), H (hosszus), DE, DU. Ezeknek a betuknek ertekeket adni, E=12, H=12, DE=8 DU=8. Ez a miniprogram kellene ami a betuket ertekekre konvertalja, igy a napoknal lathato, hogy ki-ki milyen napszakban dolgozik, nekem meg osszesiti, ho vegen hogy ki hany orat dolgozott. Elore is koszzonom
Sub törlés() Dim Adatsor As Range, Darabszámok(), i As Long
Set Adatsor = Range("A1:A24") 'ezt módosítsd a célnak megfelelően Darabszámok = Application.WorksheetFunction.Frequency(Adatsor, Adatsor) For i = UBound(Darabszámok) To 1 Step -1 If Darabszámok(i, 1) = 0 Then Adatsor.Range("A" & i).EntireRow.Delete Next End Sub
Szeretnék egy hiteltörlesztés számoló programot kiegészíteni egy előtörlesztési lehetőséggel, ahol egy !!dátumhoz kötött!! összeget megadva a tőketartozás is csökkenne. (A táblázatban már szerepel egy oszlop, annak helyére szeretném.) Fogalmam sincs hogyan kellene megcsinálni. Kérlek segítsetek!
A másik dolog, meg, hogy nem tudom megváltoztatni az "eredmény oszlopok" kitöltési színét. Miért? Hogyan lehetne?
Ezután sem fog :) Tulajdonképpen ízlés kérdése a dolog. A Te verziód szerint a sor és sz változók Variant típusúak lesznek. Variantban bármilyen típusú érték lehet: egész, boolean, range, stb., ezért a program működőképes lesz. De van pár olyan szempont, ami miatt mégis érdemes rendesen csinálni:
1) A Variant típusú változó az (tudomásom szerint), amely a legpazarlóbban bánik a memóriával, továbbá minden műveletnél konvertálni kell abba a típusba, amely a művelethez kell. Ezek futási sebesség és erőforrás-gazdálkodás szempontjából hátrányosak.
2) Lásd az alábbi példakódot: Sub proba() Dim f, g As Integer f = 1 f.Select End Sub
A compiler simán lefordítja a programot, pedig nyilvánvalóan hibás. Ha f is Integer-ként lenne deklarálva, már a fordításnál látszana a hiba. Általánosan igaz, hogy sokkal könnyebb hibázni, ha a változók típusa meghatározatlan, és sokkal könnyebb debugolni, ha meghatározott.
3) Az intelligens kódkiegészítő csak akkor működik, ha a változó típusát ismeri. Lásd a melléklet ábrákat, illetve ezt a linket.
Nevezd el a számokat tartalmazó tartományt "adatok" néven. Az alábbi tömbképlet a legritkábban előforduló számot adja vissza, ha több ilyen van, akkor közülük a legkisebbet:
Biztosan meg lehet oldani egyszerűbben is, de látom, eddig még nem kaptál választ. A makró bekéri a területet. Be is írhatod, de egyszerűbb egérrel kijelölni.
Sub Legritkabb() Dim ter As Range Dim c As Object Dim sor, sz, db As Integer
Set ter = Application.InputBox("Jelöld ki a tartományt", "Tartomány kijelölése", Type:=8) sor = 1
For Each c In ter Cells(sor, 20) = c.Value Cells(sor, 21).Formula = "=COUNTIF(" & ter.Address & "," & Cells(sor, 20) & ")" sor = sor + 1 Next
'Columns("T:W").Select 'Ez a két sor törli a segédoszlopokat 'Selection.ClearContents
MsgBox "A legritkábban előforduló szám: " & sz & Chr(10) & Chr(10) & " a " & ter.Address & _ " tartományban " & db & " esetben fordul elő"
Cells(1).Select End Sub . A területen lévő számokat beírja a T oszlopba, az U oszlopban a darabteli függvény mindegyik mellé odaírja, hogy hányszor fordul elő a kijelölt területen. A V1 veszi ezek min. értékét, a W1 pedig az indirekt és a hol.van függvény segítségével kikeresi a min. értékhez tartozó első számot. Ez azt is jelenti, hogy ha több szám is szerepel ugyanannyiszor, mint a minimális darabszám, ezek közül az első tatálatot írja ki az üzenetdobozban.
Ha a két megjelölt sor elől kiveszed az aposztrófot, a segédoszlopokat törli.
Hogyan lehet Excelben függvénnyel megkeresni egy számhalmazban azt az értéket, amelyik a legritkábban fordul elő??? (Addig rendben vagyok, hogy a leggyakoribb a MÓDUSZ)
A szállító nevét és a számlaszámot összefűzöd egy üres oszlopban. Vegyük, hogy a szállítók az A2, a számlaszámok a B2 cellában kezdődnek. A képlet az új oszlopban: =A2&B2 A következő oszlopban =DARABTELI(D$2:D2;D2) a képlet. D helyett természetesen azt az oszlopot írod, ahol az összefűzős képleted van. Figyelj a $ jel helyére! Mindegyik képletet lemásolod az adataid mellé, és autoszűrővel ezt az oszlopot szűröd 1-re. Kijelölöd a szűrt tartományt, és átmásolod egy másik lapra.
Bocsánat ha nem volt egyértemű. A felvetett kérdeseidre az alábbit válaszolnám:
1) Az eredeti listából akarod törölni a felesleges sorokat, vagy az eredeti alapján egy új (szűrt) listát létrehozni? Az eredeti alapján egy új (szűrt) listát létrehozása lenne az igazi megoldás (amennyiben megoldható).Tehát minden oszlop maradjon meg.
3) Ha egy szállítóhoz pl. öt sor társul, akkor hogyan határozod meg, hogy az öt közül melyik maradjon meg? Célszerű az lenne,ha a legelső sor maradna meg a többi meg a szűrő által eltűnne (de maradna az eredeti listában).
4) Az írod, hogy a szállítót egyértelműen azonosítja a neve és a számlaszáma. A számlaszám önmagában nem elegendő ehhez? (Egyszerűbb az azonosságok kiszűrése, ha csak egy oszlopot kell figyelni, mint ha kettőt.) Néha előfordul,hogy több szállítóhoz azonos számla szám jelenik meg, ezért lenne jó,ha mind a szállítót mind a bizonylatszámot figyelné a képlet.
Könnyen megoldható makróval, vagy képlet és makró együttes használatával. Viszont a problémafelvetés nem elég egyértelmű. Bennem például ilyen kérdések merültek fel:
1) Az eredeti listából akarod törölni a felesleges sorokat, vagy az eredeti alapján egy új (szűrt) listát létrehozni? 2) Ha új lista, akkor melyik oszlopok szerepeljenek benne? 3) Ha egy szállítóhoz pl. öt sor társul, akkor hogyan határozod meg, hogy az öt közül melyik maradjon meg? 4) Az írod, hogy a szállítót egyértelműen azonosítja a neve és a számlaszáma. A számlaszám önmagában nem elegendő ehhez? (Egyszerűbb az azonosságok kiszűrése, ha csak egy oszlopot kell figyelni, mint ha kettőt.)
Van egy táblázat, amiben az 1000 sorhoz rengetek oszlop azonosító párosul (szállító nev,címe, számla száma, értéke, dátuma stb..). Mivel a rengeteg kompenzálás,részkiegyenlítés stb. miatt van olyan,hogy az előbbi esetek miatt a szállítói sorok duplázódnak, triplázódnak (a duplázódás a szállító neve és a számla száma adja) ezért megoldható az valahogy szűrővel v. makróval v. valami egyéb megoldással,hogy egy olyan listát kapjak amiben ezek a többszöröződések eltűnnek? Tehát minden szállítóhoz csak egy bizonylatszám jelenjen meg? Ezáltal a többszörös megjelenések eltűnnének. Megoldható ez valahogy?
Lenne egy olyan kérdésem hogy excelben meg lehet e azt csinálni, hogy egy táblázaton belül beállítom azt hogy az oszlopokból sorok miíg a sorokból oszlopok legyenek?
Szerintem a leírt formában függetlenek lesznek egymástól.
Speciel értem mire gondolsz... Megteheted azt is, makrórögz bekapcs, tartomány elrejt, felfed. A nyert kódot már fel tudod használni pl. egy váltógombhoz, checkbox-hoz stb... (az ojjektum false-ban lesz a felfedés, a true-ban az elrejtés stb...) ezerféle megoldás lehetséges... Szerintem felesleges mert amit a 10691-ben írtam teljesen jó
Az lenne a problémám, hogy van egy táblázatom, aminek az oszlopai így néznek ki:
óra perc másodperc ezredmásodperc nyomás
egy másodperc értékhez 19 nyomásérték tartozik és a problémám az egésszel, hogy nekem másodpercenként csak egy nyomásérték kéne! Lehet olyan függvényt írni, ami minden 20. sort kiemeli a tömbből és ezeket a kiemelt sorokat egymás alá berakja?
Tehát ha jól értem, akkor nem lehet teljesen függetleníteni az egyik tartományt a másiktól? Vagyis ha csak a 1. tartományt szeretném láttatni, akkor a 2. is kinyílik?
Nem tudjátok mi lehet az oka annak, hogy a pivottábla oldalmezőjében lévő mező szűrése nem működik, de ha behúzpm sormezőnek, akkor pedig működik a szűrés... SQL-ből jönnek az adatok.
FKERES és VKERES kombinációját kell használnod, vagy egy összetett SUMPRODUCT-ot. Ha megadsz egy kicsit több adatot is (pld mi hol van a táblázatodban) akkor ennél jobban is tudunk segíteni.
Egy kis segítséget szeretnék kérni! Adott egy legördülő kista, aminek az adatait egy másik lapon vannak. Azt szeretném elérni, hogy a legördülő lista és egy másik szempont alapján kiválassza az adott sor és oszlop metszéspontját. Ehhez az FKERES képletet szerettem volna használni, de sajnos nem működik. Mit rontottam el, mit tegyek?
A legördülők beviteléhez jelöld ki a területet, ahova be akarod vinni az érvényesítést. Adatok/Adateszközök/Érvényesítés/Érvényesítés. A Beállítások fülön a Megengedve legördülőből a Lista legyen érvényes. Ha kevés választási lehetőség lesz, akkor a Forráshoz begépeled a lehetőségeket, pontosvesszővel elválasztva (alma;körte;szilva). Ha több értéket kell tartalmaznia, akkor a munkalapodnak egy távolabbi részére gépeld be a szövegeket, a Forrásnál írd be a területet, pl.: =$V$1:$V$20, vagy egérrel jelöld ki. Ha számítasz arra, hogy a lista bővülni fog, akkor a teljes oszlopot jelöld ki, vagy így add meg: =$V:$V. Ezt az oszlopot el is rejtheted, hogy ne zavarja a felhasználót.
Másik lapon lévő felsorolásból csak úgy tudsz érvényesítést beilleszteni, ha a másik lapon nevet adsz a tartománynak, és itt a forráshoz =MegadottNév kerül.
Kipipálható négyzetet a Fejlesztőeszközök/Vezérlők/Beszúrás menüpontjában adhatsz, ott választhatsz az Űrlap-vezérlőelemek, és az ActiveX-vezérlők csoportjából.
Kaptam egy olyan feladatot a munkahelyemen, hogy csináljak egy olyan táblázatot, amiben ún. legördülő válaszlehetőségek vannak.
Az a problémám, hogy ezt a 2007-es Excelben csak úgy tudom megoldani, hogyha egymás alatti cellákban külön-külön végig vannak írva a lehetőségek, és akkor a legfelsőnél kérhetek válaszlehetőséget, de a többi cella is ott marad alatta a szöveggel.
Hogy tudom eltüntetni ezeket a cellákat alóla?
A másik feladat az lenne, hogy bizonyos cellák mellé illesszek be ilyen kis kockát, amit be lehet jelölni (pipa vagy x). Ilyet egyáltalán nem találtam az Excelben.
Mivel az előző kigyűjtést a Select miatt nem törölhetem a kattintás makróval, az Offset(1)-et Offset(2)-re módosítottam, így lesz 1 üres sor az előző, és a jelenlegi kigyűjtés között.
Amikor kiválasztod az összes találatot a listából, akkor a találati cellák Selected módba kerülnek. Mivel a Keresés/Csere ablak nem modális, mögötte makrót is futtathatsz. Pl. elhelyezel a munkalapon egy gombot (az Űrlapok eszköztárból), és hozzárendeled ezt a makrót:
Sub Gomb1_Kattintáskor() Dim KövSor As Range Set KövSor = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow Selection.EntireRow.Copy KövSor End Sub
Kiválasztod a találati listából a neked tetsző egy vagy több találatot, akár mindet, rákattintasz a gombra, és... a többit tudod.
De a találatokon más makrót is futtathatsz, nem csak másolást. (Csak mellőzd a Select utasítást, mert az szerintem belekavarhat.)
A keresésnél (Ctrl+f) egy eddig általam nem használt lehetőséget vettem észre, ez a "Listába mind".
Ismertek-e módot arra, hogy ebből a listából kinyerjem a találatok sorszámát, és a megfelelő sorokat átmásoljam egy másik lapra?
Nagy mennyiségű adatról van szó, bő 5.000 sor (ami egyre több lesz), és 35 oszlop. Egy-egy érték akár 50-szer is szerepelhet a lapon, más-más oszlopban. A tételre kattintva az a cella lesz aktuális, amelyikben a keresett érték található. Az összes tétel kijelölésekor mindegyik, találatot tartalmazó cella jelölt lesz. De: időigényes ezek közül kiválasztani azt az egyet, amelyikre szükségem van, ráadásul a sok oszlop miatt nem lehet jól átlátni.
Megpróbáltam makróban rögzíteni a listába mentést, hátha abból ki tudnék hámozni valamit, de a rögzítés két sorból állt: Sub és End Sub. :(
Saját makróval soronként tudnám átnézetni és másolni, ami meglehetős lassú művelet.
Van egy excel tábla ahol a sorok végére szeretnék betenni egy-egy gombot, ami egy-egy pdf fájlt nyit meg. Sajnos semennyire sem értek a Visual Basichez és az excel tudásom sem éppen lenyűgöző. Örülnék egy részletes segítségnek. :) üdv
jelöld ki az egyik tartományt, majd alt+shift + jobbra nyíl jelöld ki az másik tartományt, majd 2x alt+shift + jobbra nyíl (magyarul az egyiket 1x a másikat duplán foglalod csoportba
jelöld ki az egyik tartományt, majd alt+shift + jobbra nyíl jelöld ki az másik tartományt, majd 2x alt+shift + jobbra nyíl (magyarul az egyiket 1x a másikat duplán foglalod csoportba
Na odáig eljutottam, hogy a lapvédelem miatt nem tudtam megadni újabb forrásértéket a listának. Aztán használatba vettem a jó öreg worksheet password crackert, és láss csodát, megnyílt a lehetőség. :)
sos segítségre lenne szükségem. Adott egy jó bonyolult xls, ahol a kezdőlapon legördülő menüből lehet kiválasztani a bázisévet. Na ez az első, ide be szeretném illeszteni a 2010-et, és a második kérdés, hogy van-e valamilyen kereső, amivel elő tudom bányászni az összes lapon előforduló hivatkozásokat, ahol ezt az értéket hívja be?
Ha a legördülőn vagyok, akkor az adatok/érvényesítés nem aktív.
Szeretnék csoportba foglalást csinálni a táblázat oszlopaival. (Adatok > Tagolás és részletek > Csoportba foglalás)
pl. B-F oszlopokkal és BB-FF oszlopokkal.
Ahogy eddig nekem sikerült, a táblázat bal felső sarkában lett egy "1" és egy "2" gomb.
1-esre kattintva bezárta a B-F és BB-FF oszlopokat
2-esre pedig kinyitotta ezeket.
Vagyis a B-F és BB-FF oszlopok egy "szintre" kerültek, nem tudom külön kezelni.
Hogyan lehet azt megoldani, hogy a B-F az 1-es szintre a BB-FF a 2-es szintre kerüljön? Azaz külön tudjam nyitni és zárni ezeket a bal felső sarokban lévő gombokkal?
Gondolkoztam a hiba javításán, aztán arra jutottam, hogy legegyszerűbben úgy lehet, ha a segéd oszlopba (C) a meglévő számok után a végére 2-est és 1-est írok.
Amúgy meg azt hiszem meg fogok őrülni, mire ezeket az oszlopokat a táblázatomra szabom! :-/ Mert ott több ilyen tömb van és a $-os hivatkozások miatt át kell írni.
Ráadásul amikor a képletet a következő tömbhöz másoltam, akkor a képletben lévő
mindkét HOLVAN függvénynél a HOL.VAN(2; C3:$C$500;0) -ból önhatalmúlag átrakja a $ -t ilyenre:
HOL.VAN(2; C$3:$C500;0)
Hogy ez mitől lehet? Gőzöm sincs!
Lehet hogy beszúrok egy munkalapot, oda bemásolom az eredeti helyükről a számoszlopokat mindig ugyanarra a területre, ott elvégzem ezt a számítást, aztán visszamásolom értékként az eredeti munkalapra ahogy követik egymást. Így a $-os hivatkozásokkal nem kell bíbelődni. A másolás kevesebb időt igényel, és nem kell erre különösebben figyelni.
Ez nem elég? Szerintem hibátlan eredményt ad. A C oszlopra lehet egy feltételes formázást adni, ami a háttér színére állítja a karaktereket, ha nem egyenlőek a C:C tartomány MAX értékével.
Volt egy kis időm vele foglalkozni ktfőből, de még nem jutottam vele dűlőre.
Próbát csináltam a képleteddel, ahogy írtad egyik se tökéletes, de így is nagyon jó. Az 1. verzióban HIÁNYZIK-ot ad eredményül az oszlop alján. Majd átnézem az alját. Nagyon köszi!!!!
Általában 500 alatti sorokat tartalmaz az munkalap, de több ilyen van 500-as tömb van egymást követően (persze van közbe más jellegű adat). Átírom 500-ra a 65000 helyett, aztán a következő blokkra is átírom.
Nem kell mindenáron a makró, sőt jobb ha függvénnyel megoldható. Köszi mégegyszer!!!
A2-től kezdődjenek az adatok. C legyen segédoszlop. C2-be: =HA(ÉS(A1=0;A2=1;A3=0);1;HA(A2=1;2;"")) B2-be: =HA(ÉS(C2=1;(HOL.VAN(2;C3:$C$65000;0)<HOL.VAN(1;C3:$C$65000; 0)));DARABTELI($C$1:C2;1)-SZUM($B$1:B1);"")
Ez az összeállítás azt csinálja, amit kértél, leszámítva, hogy az adathalmaz végén, hibára megy. Ha jól sejtem, most is több ezer sorral dolgozol, és ha így van, akkor ez is nagy segítség lehet. A makrós verziót majd valaki más megírja
A fenit B2-képletet megspékeltem egy kis hibakezeléssel, és ezt kaptam:
Ha jól értem, akkor kell zárolttá, és szürke hátterűvé tenni a D oszlop celláját, ha a sorában a B oszlopban a HUF van kiválasztva. USD választása esetén a C oszlop sorára igaz ugyanez. Vedd le a zárolást a B:D tartományról, és a feltételes formázást is megszűntetheted, mert a makró elintézi ezt is. Tedd védetté a lapodat. A lapfülön jobb klikk, Kód megjelenítése. Beérkeztél a VB szerkesztőbe. A jobb oldali üres lapra másold be:
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Protect UserInterfaceOnly:=True If Target.Column = 2 Then If Target.Value = "HUF" Then Cells(Target.Row, 4).Locked = True Cells(Target.Row, 4).Interior.ColorIndex = 15 'szürke háttér Cells(Target.Row, 3).Locked = False Cells(Target.Row, 3).Interior.ColorIndex = -4142 'kitöltetlen Else Cells(Target.Row, 4).Locked = False Cells(Target.Row, 4).Interior.ColorIndex = -4142 'kitöltetlen Cells(Target.Row, 3).Locked = True Cells(Target.Row, 3).Interior.ColorIndex = 15 'szürke háttér End If End If End Sub .
Amint kiválasztod a B oszlopban a pénznemet, a sorában a C és D oszlop háttere, és zároltsága megváltozik.
Ha a hátteret a módosítható sorban nem kitöltetlenre akarod állítani, hanem fehérre, a -4142 helyett írj 2-t.
Sziasztok! Lenne egy kérdésem. Van 2 oszlop. Az elsőben városok nevei, a másodikban ezeknek a városoknak a lakossága. Milyen függvénnyel tudnám megkeresni a legkisebb népességű városnak a nevét?
a B oszlopba össze kéne adnom az A oszlopban lévő egymást követő magányosan álló (amik fölött és alatt is üres cella van) 1-eseket . Lehetőleg úgy, hogy az ilyen magányosan álló csoport legalsó magányos 1-ese mellett legyen az összegük (lásd 1-5; 1-3; 1-1)
példa:
A B
1
1
1
1
1
1
1
1 5
1
1
1
1
1 3
1
1
1 1
1
1
Erre ha tudnátok megoldást, az príma lenne! Plusz oszlop beszúrható ha szükséges. Makro is lehet.
Nekem nem sikerült rá eddig képletet kreálni.
Korábban kaptam itt segítséget. Akkor az egy gócban lévő közvetlenül egymás alatt lévő 1-esek összeadására, annak a képlete így néz ki:
Köszönöm a hozzászólásódát. Én arra szerettem volna választ kapni,hogy ha egy cellának a színe az alap fehérről megváltozik mondjuk szürkére (feltételes formázás hatására ), akkor a cella zárolt legyen. Példával illusztrálnám: van 2 lista által választható pénznemem a (pl, huf,usd) "b" oszlopban. A "C" oszlop a huf értékadatokat, míg a "d" oszlop az usd értékeket tartalmazza. Tehát ha a "b" oszlopban kiválasztom a pénznemet, mondjuk a huf-ot akkor "c" oszlopban rögzíthetem az értéket,míg a "d" oszlop "beszürkül" a felt. formázás miatt,ezzel is jelezve azt,hogy oda nem írhatok be értéket,mert az az oszlop nem a huf értékekre vonatkozik. Értéknemtől függően soronként mindig valamelyik oszlop szürke lesz a c v. d oszlop közül. Mivel ezen oszlopok szürkék, de ettől függetlenül még írhatóak. Én azt szeretném,hogy ne is lehessen szürke szin esetén irni a cellában. Ez megoldható valahogy? Makró, érvényesítés stb?
A formázás feltétele (=$H1>200) a kijelölt terület formáján változtat, ha a H oszlopban 200-nál nagyobb az érték.
Sub locked() Dim sor, oszlop As Integer
For sor = 1 To ActiveSheet.UsedRange.Rows.Count For oszlop = 1 To ActiveSheet.UsedRange.Columns.Count If Cells(sor, 8) > 200 Then 'itt van a feltétel Cells(sor, oszlop).locked = True Else Cells(sor, oszlop).locked = False End If Next Next End Sub .
A makró végig szalad az adatokkal kitöltött területen, és a feltételnek megfelelő cellákat zárolttá teszi, a nem megfelelőek esetleges zárolását feloldja.
A futtatás után le kell védened a lapot, hogy a zárolások érvénybe lépjenek.
A feltételes formázással kialakított háttér az eredeti szín kódját adja vissza lekérdezéskor. Pl. ha eredetileg piros volt a háttér, de a felt. formázás következtében szürkére váltott, lekérdezéskor az eredi piros szín kódját (3-at) kapjuk.
Ahhoz, hogy a felt. formázással kialakított szürke háttérre tudjunk rákérdezni, a feltételt kell ismerni, ami szürkére módosította a hátteret.
Meg lehet csinálni, de csakis a feltétel ismeretében, és a területet is add meg, ahol a zárolást végre kell hajtani.
Segítségeteket kérném az alábbi problémával kapcsoltban: megoldható az valahogy,hogy ha az adott cella színe mondjuk szürkére változik (ezt feltételes formázással megadva van) akkor a cellába ne lehessen beleírni? Olyan feltételes formázás érdekelne(?) ami színhez kötött. Fehér szín esetén írható, szürke szín esetén zárolt a cella. Ebben tudtok segíteni? Excel 2003-ast használók.
Nem tudjátok véletlenül: 2007-es excelben definiálhatóak sql-es dolgok. Lehet az sql kódot excel makróval piszkálni? Csinált már vki ilyet? Szerintem lehet, de azt sem tudom hol kezdjem. Asszem a makrórögzítőnél fogom, de félek üres marad a makrólap :)
Egy Form-ban lehet adatokat megadni, és be van téve egy ilyen:
Private Sub TextBox6_Change() 'R1 Workbooks("temp.xls").Worksheets("MakroLap").Cells(2, 9) = TextBox6.Value ValamiSub End Sub
Ha a ValamiSub-ot kitörlöm (nem érdekes, most hogy mit csinál) az eredmény akkor is ugyan az:
2003 és 2007 alatt az a probléma, hogy minden billentyű leütéskör a Form ablak inaktív lesz, újra bele kell kattintani, ha folytatni akarod az írást, 2000 alatt viszont semmi baja.
A 'MakroLap' rejtett, de ha nem az a hiba akkor is fennáll.
Azok a cellák, ahova nem kerülnek be a várt adatok függvényt tartalmaznak? Ha igen, milyen függvényről van szó és az a függvény van-e valamelyik más cellában, ahol viszont működik az új template-ben? Ha nem, akkor milyen adat van benne (szám, betű, vegyes, Boolean, etc.).
Hogyan tudom percben, vagy órában megadni 2 ilyen jellegű dátum(+óra) közötti külömbséget?
Nem "hh:mm:ss"-ben szeretném megadni. Ha kivonom a két dátumot és átállítom a cella formátumát, akkor simán megkapom a "hh:mm:ss"-t...de hogy csináljam, hogy csak órát, vagy csak percet mutasson?
Nem tudok rájönni. Pedig gondolom nem lehet olyan bonyolult, de fixálódott az agyam.
Előre is köszönöm a segítséget!!
SR Creation date OLDRFS Date
05/11/2009 13:17:07
05/11/2009 13:31:11
18/11/2009 09:17:10
18/11/2009 11:18:28
19/11/2009 14:47:42
19/11/2009 14:51:29
15/01/2010 14:31:29
19/01/2010 15:18:30
09/12/2009 12:22:45
11/12/2009 16:11:02
1. van egy szép terjedelmes táblázatunk 2009-es adatokkal. Ennek másként mentésével készült egy tök ugyanilyen felépítésű, csak nyilván más (új) vevőadatokkal.
2. Maga a sablon (vállalkozási szerződés 2010) a 2009-es sablon mentés máskénttel készült innentől vette át a r.gazda, de neki az új táblázatot sem ismeri fel a sablon, így nem tudja kezelni.
3.Egyébként egy laptop 3 gép között megoszott mappáján vannak ezek a fájlok, és egy olyan gépről próbálták megcsinálni, ami 2003-as Office van,de nem sikerült. Sajna hogy mit ír ki pontosan, nem tudom, amit én látok, hogy bizonyos helyekre nem kerül be a megfelelő adat, valamint ők azt mondják, nem tudja táblázatként látni ezt a 2010-es Excelt.
Nem gondolom, hogy egy sablon ne tudna túlélni egy 2007-es verzióra való frissítést.
A kérdések amit fel kellene tenni ebben a szituban: - van-e olyan dolog benne ami nem került át 2007-be (nem hiszem, mert még azokat a függvényeket is megtartják - pont a lefele kompatibilitás miatt - amiknek már van frissebb, lágyabb, jobb verziója; - valamit letöröltek a verzióváltáskor aminek ott kellene lennie.
Én erre az utóbbira tippelnék.
Egy kicsit pontoabb leírása a hibának sokat lendíthetne az ügyön. Mit ír ki, mit csinál/nem csinál amit nem kellene/kellene.
Én is szeretnék egy kis segítséget kérni Excel Sablonokkal kapcsolatban. Egy excel táblázatból készít dokumentumot (valójában vevői adatokból szerződéseket), ám az új, 2010-es táblázatunkból generált új sablon (azaz a régi mentése másként, a forráshelyek átírásával) nem működik.
A rendszergazda szerint az eredetileg office 2003-ban szerkesztett sablonok nem működnek megfelelően az új verziójú excellel, ezért az egész mutatványt újra kellene szerkeszteni office 2007-ben. Ez valóban igaz lehet?
Köszönöm, de sajnos ez is #N/A. De megvan a megoldás, ha nem is olyan szép. Ez a képlet:
=MATCH(EOMONTH(B10;0);Docs!A:A;1)
(B10 = 2010-01-01, a Docs!A:A a doksik dátuma)
jól működik, de akkor nem, ha a legkisebb érték (pl. 2010-01-02) legelső előfordulását keresem. Így hát azt a cellát direkt hivatkozással beírtam, az összes többinél pedig keresgél a MATCH.
Jobb szeretem a képleteket, mert akik használják az anyagot, azok nem kaphatnak olyasmit, amit nem lehet bekötött szemmel, egyujjas bundakesztyűben kezelni :-) És így ha kitörlik a meghivatkozott sort (mert meg fogják tenni, az tuti), széthullik az egész.
Azt hiszem, kicsit összetettebb. Ez akkor ad jó eredményt, ha a keresett dátum hiányzik az A oszlopból, egyébként pedig a következő nap sorát adja vissza.
Hahó! Eddig aszittem, hogy kenem-vágom az Excelt, de most megakadtam. Biztos van itt nálam okosabb, so please help me!
Van egy táblázat (Docs), benne doksik adatai. Az első ("A") oszlop: dátum. Egy másik, statisztikát gyártó oldalon szeretném kikeresni, hogy egy hónap első és utolsó dokumentuma hol van a Docs munkalapon. Ez a képletem:
=MATCH(dátum;Docs!A:A;-1)
A 'dátum' valójából egy cellahivatkozás, amiben a 2010-01-01 dátum van.
A Súgó szerint a Match a -1 típussal megkeresi a legkisebb értéket, amely nagyobb vagy azonos a keresett értékkel, és a listának fordított sorrendben kell lennie. A baj az, hogy az adatok születésük sorrendjében kerülnek a listába, tehát a dátumok emelkedő sorrendben vannak, és így a MATCH a -1 és a 1 típusra kereséskor is a hónap utolsó napjának utolsó dátumértékét találja meg, és annak a cellának a hivatkozását adja vissza. (A 0 típusra #N/A a válasz ha pl. a hónap első napján nem született dokumentum, mert az az abszolút egyezőt keresi.)
Hogy lehet megkeresni egy emelkedő számsorrendű oszlopban a legkisebb értéket, amely nagyobb vagy azonos a keresettel?
Ha jól értem, akkor a formot csak eredmények megjelenítésére használod, és a kód szerkezete olyan, hogy egy szubrutinból hívod meg a Form.Show utasítást, és utána a szubrutinnak kellene tovább mennie. De amíg a Form modális, addig nem megy tovább a program. Ha pedig nem modális, akkor továbbmegy, de nem frissül a kép.
Mi lenne, ha átalakítanád a programot úgy, hogy a számolási részt a Form valamelyik eseményéből hívnád meg? Akkor modális lehetne, ezzel teljesítve az eredeti kívánságod, és még a labelek is frissülnének (szerintem).
Adott egy Userform amelyen pár Label és kettő CommandButton (Rendben, Mégsem) található. A label-ek egy ciklusban történő feldolgozás eredményeit jelenítik meg. A ciklus végeztével a folytatást a két nyomógomb közüli választás határozza meg. Ez idáig rendben is lenne. A kérdésem, hogyan tudnám megoldani azt, hogy a Userform-ról nem lehessen „ellépni” (mindig fókuszban legyen), és csak a nyomógombokkal lehessen azt bezárni? A lényeg az lenne, hogy ne lehessen sehova kattintani amíg a Userform aktív, úgy, mint amikor a Showmodal = true-ra van állítva (ha ezt tervezési időben true-ra állítom, nem jeleníti meg a feldolgozás eredményét, vagyis nem frissül a label-ek értéke). Tudna valaki segíteni?
A tipusokat fel tudom vázolni, de hogyan csináljak belölük függvényeket az összes változatra
Egyenként és papiron. Ahogy én csináltam a Pista bácsis példádnál. y1=az autós változat, y2=a vonatos. És így sorban az összes variációra.
Ha ez megvan, átteszed excelbe. 1 excelsor 1 függvény elemei. A változók, a konstansok, meg az esetleges közbülső eredmények. A konstansokat beírod a nekik szánt cellákba, a közbülső számításokra megcsinálod a képleteket, a változóknak meg csinálsz egy inputsort, amelyre hivatkozol a függvényekben. Majd beszúrsz egy oszlopot eléjük, ez lesz az y oszlop. Ebbe a függvények képleteit irod be a megfelelő excel cellákra hivatkozva. Így az összes y-eredményed egy oszlopban áttekinthető.
Ezután már csak be kell írni a változók konkrét értékeit az inputsorba, és máris megkaptad az y oszlopban, hogy az egyes variációknál milyen eredményre vezet.
Ha arra vagy kiváncsi, hogy két variáció hogy viszonylik egymáshoz az inputváltozó különböző értékeinél, akkor felállítod az összes y1=y2 egyenlőtletet, majd kifejted x-re. Kevés variációnál nem olyan sok ez. Az összes páros kombináció. 2 variációnál 2, 3-nál 3, 4-nél 6, 10-nél 45, 20-nál 190, stb. Hát 20-nál már l elég húzós. Viszont megspórolod az excelbe átírást, mert nincs rá szűkség.
Szerintem az első változatra vagy kiváncsi. Mert az mondja meg hogy ha van x forintod, azt melyik variációval fektesd be
Köszönöm még egyszer a választ. A következő /tán utolsó egyenlőre/ kérdésem: A1:A1000 között érték vizsgálat, a cél, hogy ha Ax-re igaz az érték, akkor hozzáadja Qx értékét a cellához. HA függvénnyel egy körben egy értéket tudok vizsgálni, 1000 részes képlettől meg szerintem kiakadna.
"A pénzváltás összes lehetőségére megcsinálod függvényeket, ..."
Ezzel kezdtem, hogy ebben kérek segitséget, hogy hogyan, ebben vagyok agyilag zokni. A tipusokat fel tudom vázolni, de hogyan csináljak belölük függvényeket az összes változatra, ráadásul egymással összevethetöeket?
A következö szakasz, amikor az a kérdés, hogy milyen távolságnál - 100 km, 72 km, stb. - azonosak a költségek, tehát ott a határ, ami dönt, hogy egyik vagy másik megoldás a jobb. Nem "arbisár", vagy micsoda a lényeg. Ott az a lényeg, hogy 1. van egy egyszerü átváltási kulcs, és a vétel-eladás közti különbség a költség. 2. a másik esetben a vétel-eladás között kisebb a különbség, tehát olcsóbbnak tünik, viszont vannak járulékos költségek. Ezek összevetése szükséges, csak a teljes költségek alapján lehet látni, melyik az olcsóbb megoldás.
Irhattam volna kukorica felvásárlási árat is, pl. helyben eladod a fogadósnak, vagy átviszed a szomszéd faluba egy másik vevönek - ott viszont bevételi különbség van, és lejön belöle az utiköltség.
Ilyenekben gondolkodom, hogyan lehet megoldani. Arra jutottam, háromféle tipus van: 1. fix dij 2. lineárisan, vagy valamilyen szorzó szerinti költség 3. bizonyos feltételek esetén fellépö fix költségek.
Ezeket kellene valahogy összehozni. Ennyi a "modellezés".
Jó, látom, egyszerübben kell vázolnom a feladatot.
Adott Pista bácsi, akinek van két választása: 1. autóval bemegy a városba távolság 50 km, oda-vissza 100 km, benzin 300 ft/l, fogyasztás 10l/100 km
2. barátja kiviszi az állomásra oda-vissza 10 km, benzin 300 ft/l, fogyasztás 10l/100 km, + kap 500 Ft-ot a fuvarért + Pista bácsi fizet oda-vissza vasúti jegyért 2 eFt-t
Mit hagytam ki ahhoz, hogy ha másolom a képletet oszlopra akkor csak a D oszlop sorszáma nőjön az aktuális sorszámra a Munka2!A26 és Munka2!B26 pedig állandó legyen?
Kösz. Nem ismertem. Pedig sok szövegszétszedést csináltam már a find +mid kombinációval. Igaz, azokban általában bonyolultabb szöveget kellett oszlopokra tagolnom.
áá, itt is van: Szöveg felosztása több cella között Jelöljük ki a szöveget tartalmazó cellatartományt. A tartomány tetszőleges sornyi magasságú lehet, de csak egyoszlopnyi széles.
Megjegyzés: A kijelölt oszloptól jobbra lennie kell legalább egy üres oszlopnak, különben az oszlop adatait az új adatok felülírják. Az Adatok menüben válasszuk a Szövegből oszlopok parancsot. Kövessük a Szövegdaraboló varázsló utasításait, hogy megadhassuk, hogyan szeretnénk a szöveget hasábokra osztani.
Egy kis segítséget kérnék tőletek Excel (2003) témakörben. Több fórumot bejártam - főleg külföldi -, de nem tudtam választ kapni egy kisebb problémámra, ami a következő: Egy beruházás megtérülési és cash-flow-elemzését készítettem el, kb. 12.000 képlettel (sok-sok összefűzött oldal + n. számú grafikon, kimutatás stb). A rendszer fordít magyarról angolra (ill. németre, franciára -igény szerint) és vissza, a számítások EUR-ban vannak, mert a megrendelő külföldi. O.K.
Azonban egy kis többlet-igény merült fel a befejezés után: ne csupán EUR-ban, hanem USD-ben, CAD, ill. CHF-ben is tudja váltani (mutatni) a táblákat.
Erre létrehoztam egy árfolyamváltó-lapot, azonban rájöttem, hogy lesz egy kis gond. A származtatott oldalak, illetve cellák átkonvertálása nem akkora gond, ám azokon a lapokon, ahol input adatokat viszünk fel, ezeknél körkörös hivatkozást végez az Excel. Ezt még ki lehet küszöbölni egy-egy oldaltükrözéssel (vagy éppen pl. indirekt() függvénnyel), ám a származtatott cellákat leszámítva is kb. 8.000 képletet kellene átdolgoznom.
Tud valaki egy szép kis makro ötletet adni arra, hogyan lehetne leegyszerűsíteni az életet úgy, hogy a főlapon kiválasztott pénznemnek megfelelően (egy oldalon előre definiált - tehát nem kell on-line update-elni az MS Money Currency-vel - árfolyammal) minden oldalon átváltsa az aktuális EUR összegeket a választott pénznemre? Minden segítséget nagyon köszönök.
Eddig úgy okoskodtam, hogy az 1-2 és 1-4 sorok révén meg lehet határozni az elvi optimális összeget, ami után mindenképp ki kell fizetni a költségeket - tehát ezek alapján van javaslat a 0. sorra, két befektetési összegre (ha a két % eltérő)
Ezután valahogy korrekció kell, mert a számitott összeg %-os mérték, mig a kézbe kapott valuta diszkrét elem, és ennek a diszkrét számsornak az induló (vagy elsö) elemét kell meghatározni, az első x db valutára ez az összeg a költség a kötelezöen fizetendö minimum feltétel miatt.
Az 1-3 és 1-5 sorok révén meg lehet határozni a "növekményt", ami ennél magasabb összegeknél hozzáadódik, de már a valuta egységgel meghatározott diszkrét elemekre.
Tehát ideális esetben az 1-2 és 1-4 által meghatározott két összeget kell a diszkrét számra kerekités révén korrigálni.
Illetve, jön még egy figyelés, néhány valuta esetében nem "1 xxx : HUF", hanem "100 xxx : HUF" az eladási és vételi árfolyam, tehát egy százas szorzót kell figyelni, de gondolom, egy oszlopot beteszek a valuta/deviza mennyiségére, és máris meg van oldva a probléma.
Eddig jutottam, csak nem tudom, ezt a gondolatmenetet hogyan vigyem tovább?
Szúrj be egy sort az első fölé. A új B1 képlete legyen: =B3&" "&B2 Ezt másold jobbra a J oszlopig. Ezt a sort el is rejtheted, hogy ne zavarjon.
Jelöld ki a Munka2 lapon a megyék neveit tartalmazó területet. Beszúrás/Név/Név megadása. Add neki a Megye nevet. Hasonlóképp a B3:D3 terület neve legyen Helység. Írd be valahova folyamatosan: ház, lakás, üdülő. Jelöld ki a területet, add neki az Ingatlan nevet.
A Munka1 lap A1 cellájába adj érvényesítést: Adatok/Érvényesítés. Megengedve Lista legyen, a Forráshoz írd be: =Megye A B1-be ugyanígy add meg a Helység-et, C1-be az Ingatlan-t.
Amelyik cellában a négyzetméterenkénti árat szeretnéd látni, írd be ezt a képletet: =INDEX(Munka2!A:J;HOL.VAN(A1;Munka2!A:A;0);HOL.VAN(B1&" "&C1;Munka2!A1:J1;0))
Szeretnék egy négyzetméterár-kalkulátort készíteni. Az 1. oldalon legördülő listában ki lehet választani a településtípust (megyei j.v., város, község), az ingatlantípust (ház, lakás, üdülő) és az ingatlan helyét (Bp., Baranya-m....). Az a kérdésem, hogy milyen függvényt kellene írnom, hogy a listából kiválasztva a megfelelő elemet, a táblázat oszlopaiból és soraiból kikeresse a megfelelő nm.árat?? (FKERES, HA....???)
Ennek elég makro/UDF szaga van... A worksheet alapú megoldással az a baj, ha jól látom, hogy túl sok variáció van, így munkalapon nagyon bonyi lekövetni az egyes variációk max és min pontjait. A makro megírásában még segítenénk is, de ahhoz érteni kellene az alapproblémát, ami egy fórum keretein túlmutat. Javaslatom, bontsd fel a megoldást részfolyamatokra, definiáld a bemenő és kijövő adatokat és akkor már könnyebben tudunk segíteni, egybe megoldani ezt így távolról elég nehéz lenne.
Na igen, elég bonyolult, ezért is nem jövök rá a logikájára. :-(
Kiindulási alap: van x eFt összeg, amin vásárolsz valutát/devizát, ha nem használod fel, vissza kell váltani, amin veszteség van. A veszteség összetételét kell bemutatni.
1. példa valuta vásárlás ez a legegyszerübb, csak az árfolyamkülönbség a veszteség. Egy gond van, az eltérö vetitési alap. 1 EUR vétel 270 eladás 274 1 USD vétel 190 eladás 194 100 YEN vétel 210 eladás 214 (itt 100 egység van!)
Ennél arra kell figyelni, hogy kerekiteni kell, hogy mennyi a fizikailag megvásárolható valuta (ha jól tudom, a legkisebb papirpénz az egység), illetve yen esetében 100-as egység van megadva, tehát ténylegesen 1 yen = 2,1 - 2,14 Ft az árfolyam
2. példa deviza vásárlás - ez már durvább, mert itt három összetevö jelentkezik: a, árfolyamkülönbség (kisebb, mint valutánál, viszont vagy 5 számjegyü (3 egész és 3 tizedes), vagy 4 tizedesjegyü árfolyamokkal kell számolni, kerekiteni kell. b, mivel bankszámlát igényel, kell konverziós költséggel is számolni, aminek két összetevöje van: %-os jutalék, + egy minimális jutalék - ismét kerekités jön c, mivel valutára van szükséged, ki kell venned, tehát van kp forgalmi dij is, aminél két eset lehetséges: 1. mint bankszámla jutalék, %-os mérték, kiegészitve minimális összeggel, 2. összegtöl függetlenül fix összeg. - egyrészt jutalék összeg kerekitése, másrészt kiadható valuta cimletre kerekités.
Namármost, a példáknál valahogy meg kell határozni a minimális veszteség összegét, ehhez meg kell határozni az optimális átváltandó összeget. Az 1. példa esetében ez valutától függően a legkisebb cimleteket jelenti, ezek egész számú többszöröse lehet az összeg. A 2. példa esetében már jön a bonyolitás, a c, feltétel papirpénzre kerekitése mellett jön az a, és b, feltételek miatti %-os kerekitések, illetve a minimális összeg figyelembe vétele. Tehát itt meg kell határozni, hogy mi az a minimális összeg, amit rá kell szánni az átváltásra, mert a minimum jutalék mindenképp levonásra kerül, és ott van a legkisebb kiadható bankjegyre való kerekités is.
A lényeg az, hogy ezeket a minimális és maximális pontokat kellene valahogy meghatározni, ami a "milyen összeget szán rá?" kérdéssel csak találgatással oldható meg. Másik oldalról viszont függvényszerü kapcsolat van, aminek keresem a "töréspontjait". elvileg megoldhatnám egy nagy táblázattal, egységenként vizsgálva az összeget és figyelve az egyes tényezök változását, de túl nagy táblázat lenne.
Nem jövök rá, milyen megoldást kellene találni, pedig emlékszem, hogy pár éve volt valami hasonló feladat, csak akkor egy ismerösömnek azt kellett kitotózni, hogy milyen %-os amortizációt találjon ki a gépeire, hogy minél kevesebb adót kelljen fizetnie. (ugye, ha egy évben sokat ir le, akkor a többi évben már nincs csökkentö tényezö.)
Köszönöm a segítséget, ez a megoldás kicsit igazítva, mivel a másolandó adat egy másik fájlban lévő táblázatban van. Mindkettő működik, a Jimmy-é egyszerűbb. Megmentettetek egy csomó manuális munkától :-).
Egy excel táblából szeretnék automatikusan átvenni adatokat egy másikba úgy, hogy az első pl. az egyik tábla D5 cellájából kerüljön a másik A1 cellájába, a második a D45-ből az A2-be, a harmadik a D85-ből az A3-ba, és így tovább.
Hogyan tudnám megadni, hogy a cella sorszáma mindig automatikusan 40-el növekedjen?
Agyilag zokni vagyok, egy kis segitséget szeretnék kérni, nem jövök rá a megoldásra. :-(
Egy példát kellene irnom, hogy bizonyos összeg rosszul elköltése miatti visszakozás milyen költségeket okoz. Például valaki úgy dönt, hogy dollárt vagy yent, államkötvényt vagy diszkont kincstárjegyet vesz, de vissza kell váltania, akkor ugye a vételi és eladási árfolyam közti különbség a vesztesége. (feltételezve a szabad vételi és eladási lehetöséget). Azonban van egy buktató, mégpedig az egységárnak más a vetítési alapja, ettöl függ, hány egységet tud abból venni.
Ezt csak 2-3 lépésben tudnám megoldani (1. megkérdezni, mekkora pénzösszeg van, ebböl meghatározni, miböl mennyit tud venni, és csak 3.lépésben jön az adott vásárlások példája.)
Hogyan lehetne rögtön az elején megmutatni, melyik esetben milyen mennyiségi sávok vannak, milyen kategóriákban célszerü gondolkodni?
Ez önmagában viszonylag egyszerű, de van benne egy bizonytalan pont. A kód így nézne ki:
Sub Iteráció() Do Range("B1:B10").Copy Range("A1:A10").PasteSpecial Paste:=xlValues Loop While Feltétel = False Application.CutCopyMode = False End Sub
Function Feltétel() As Boolean Dim i As Long Feltétel = True For i = 1 To 10 If Range("A" & i).Value <> Range("B" & i).Value Then Feltétel = False Next End Function
A Feltétel függvényt természetesen tetszés szerint át lehet alakítani.
A bizonytalan pont ott van, hogy nem tudom, a képletek kiszámolása hogyan van szinkronizálva a kód futtatásával. Az lenne ugye az ideális, ha az Excel a Range("A1:A10").PasteSpecial Paste:=xlValues sor lefutása után az összes képletet kiszámolná, és a Feltétel függvényt már a kiszámolt cellákkal értékelné ki. Tapasztalatom szerint ez pontosan így működik, de elvileg nem tudom, hogy minden esetben így működik-e. Ki kell próbálni.
Segítséget szeretnék kérni. Hogy lehet feltételes képletet létrehozni úgy, hogy 3 értékű a változó. Azaz, ha 1, akkor a képlet ez, ha 2, akkor a képlet egy másik, ha 3, akkor a képlet egy harmadik féle.
Sima Ha függvény próbáltam, de nem szerette, ha több ha szerepel benne. =HA(D5=1;E5;(HA(D5=2;E5/G1);E5/J1))
Ennek a megoldásnak meg van az az előnye, hogy nem vonatkoznak rá a LOOKUP függvények szabályai (pld sorbarendezettség). Ha az FKERES/VKERES (VLOOKUP, HLOOKUP) utolsó paraméterét 0-ra, vagy HAMIS (FALSE)-ra állítod (pontos keresés), akkor az adatoknak nem kell sorbarendezve lenniük.
Hátránya, hogy ez csak a pontos találatokat adja vissza, mig a LOOKUP-ok tudnak legközelebbi találatot is. Jómagam ezt a megoldást egy útnyilvántartás Excel fájlhoz használom, az APEH által negyedévente publikált üzemanyagárak kikereséséhez. A dátum szerinti kereséshez ott mindenképpen tartományban való keresésre van szükségem. De egyébként ugyanilyen megoldás kell pl. árlista változáskezeléshez. Egyébként a lenti példámban a dátum szerinti tartományban való keresés ki is van használva :)
Vagy az F és Vkeres-eket át lehet alakítani: =INDEX(A1:D20,SUMPRODUCT(--(A1:A20=A25),ROW(A1:A20)),SUMPRODUCT(--(A1:D1=C25),COLUMN(A1:D1)))
Feltéve, hogy az: - A25-ben van a keresett dátum; - C25-ben a keresett deviza neve - A1:D20 tartalmazza az árfolyamok mátrixát.
Ennek a megoldásnak meg van az az előnye, hogy nem vonatkoznak rá a LOOKUP függvények szabályai (pld sorbarendezettség). Hátránya, hogy ez csak a pontos találatokat adja vissza, mig a LOOKUP-ok tudnak legközelebbi találatot is.
A pénznemek a számformátumban jelennek meg vagy a szám melletti cellába írod be? Kell-e figyelni a napi árfolyamváltozást (az egyes adatok akár különböző napi dátumhoz tartozhatnak)? Ez utóbbi esetekben pl. FKERES, VKERES függvények kombinációjával megoldható a probléma.
Az a problema, hogy a penznemek folyamatosan valtozhatnak tehat fel kellene ismernie ha Euro akkor milyen szorzoval es igy tovabb szorozza. persze kulon cellaban megadjuk az aktualis arfolyamot.
Van egy kalkulacios problemank. Tobb penzenemben (EURO, USD, LEI) vannak araim egy oszlopban, azt szeretnem elerni, hogy egy kovetkezo oszlopban forintositsa mindegyik arat a ket valuta kozti szorzo alapjan.
szia Jimmy! Köszi a megoldást ! Én is ezt találtam ki, csak kicsit parasztosan készítettem el... Egy oszlopot (nem haszálom semmire) átméreteztem az egyesített cellák méretére, és ebbe töltöm a változó hosszúságú szöveget, majd a sor átméretezése után (így már működik) az összevont cellákba pakoltam a szöveget. Hát, nem gondoltam volna, hogy ez ekkora gond! Hát most átalakítom a munkalapot tudományosabbra! Köszönöm a segítséget! grja
Egy kerülő megoldást tudnék ajánlani. Kimásolni az egyesített cellák tartalmát egy sima, nem használt cellába, és azon elvégezni a formázást. Ha a jobbszélső oszlopot (IV) nem használod másra, akkor ez a függvény jó lesz:
Function SetAutoHeight(Cel As Range) Dim CW_bak As Single, CW_New As Single, RH_New As Single, HCel As Range
For Each HCel In Cel.MergeArea.Cells CW_New = CW_New + HCel.EntireColumn.ColumnWidth Next
Set HCel = Intersect(Cel.EntireRow, Range("IV:IV")) CW_bak = Range("IV:IV").ColumnWidth With HCel .Value = Cel.Value .WrapText = True .EntireColumn.ColumnWidth = CW_New .EntireRow.AutoFit RH_New = .EntireRow.RowHeight .ClearContents .ClearFormats .EntireColumn.ColumnWidth = CW_bak .EntireRow.RowHeight = RH_New End With End Function
Bemenő paraméter az egyesített tartomány bal felső cellája.
Jó estét, sziasztok! Lassan a Dunába vetem magam, mert nem találok megoldást! Adott egy munkalap, ahol egy sor magasságát dinamikusan változtatni kell az adat hosszának (szöveg) föggvényében. Ez a szöveg egy egyesített cellába kerül. Az általam ismert eljárások (7. sorra):
With Rows(7) .WrapText = True .AutoFit End With
vagy: Rows("7").EntireRow.AutoFit
vagy: Selection.Rows.EntireRow.AutoFit
vagy: ActiveSheet.Rows("7").AutoFit
csak akkor működnak, ha nincs egyesített cella a sorban.
Létezik valami megoldás a problémámra? Előre is köszönet a megfejtőnek! Üdv.: Grja-
Akkor sajnos nem derült ki, hogy az van-e, amit gondolok. Mindegy, azért leírom, hátha. Szóval vegyünk egy olyan szitut, hogy az A oszlopban van a cikkszám, és minden további oszlop tartalmát FKERES függvény hozza ki az AA:AX tatományból. Pl:
Ez itt minden egyes cikkszámra 5 darab FKERES függvényt jelent, amelyek egy-egy értéket adnak vissza. Ezt az 5 darab függvényt ki lehet váltani egyetlen FKERES-sel, ami 5 értéket ad vissza. Igen, tömbfüggvényre gondolok. Az FKERES harmadik paraméterét kell átalakítani, mégpedig a következő módon:
1. Írd be a fenti oszlopszámokat pl. H1:L1-be: H1 = 3; I1 = 8; J1 = 9; K1 = 5; L1 = 2 2. Jelöld ki B2:F2 tartományt. 3. A szerkesztőlécbe írd be a képletet: =FKERES(A2;AA:AX;($H$1:$L$1);HAMIS) 4. Zárd Ctrl+Shift+Enterrel: {=FKERES(A2;AA:AX;($H$1:$L$1);HAMIS)} 5. Másold át a képletet a többi cikkszám sorába.
Méréseim szerint ez a módszer kb. ötszörös sebességnövekedést produkál. Ha 10 oszlop van, akkor (gondolom) kb. 10-szeres gyorsulás várható, mivel tizedannyi keresést kell végrehajtani.
Pár napja írtam egy cellatartomány másolós problémáról amit nem sikerül megoldanom.
Egy olyan problémát kell megoldanom, ahol iterálni kell.
Tegyük fel, hogy az A1:A10 cellába van a számítás kiindulási értéke. A végeredményként (helyes megoldás esetén) ugyanezeket az értékeket kell megkapnunk a B1:B10 cellába. Mivel nem a helyes értékekkel indultunk, így ugye eltérés lesz a két tartomány értékei között, ezért új számítást kell indítanunk ahol A1:A10 cella értéke most már B1:B10 cella értékeivel egyezik meg. A direkt hivatkozás kizárt, hiszen akkor az excel észere veszi a körbehivatkozást. A manuális megoldás az lenne, ha kijelölném az B1:B10 tartományt és beilleszteném csak az értékeket az A1:A10 tartományba. Ezt a problémát kéne megoldani makróval.
Igazából csak azt tudom, hogy a kérdező aszerint szeretné alkalmazni az fkeres függvényt, hogy a hivatkozott cella első karaktere 0 és 9 közé esik-e, vagy nem. A további felhasználásról nincs információm.
"Örükök, hogy újra itt vagy, nekem hiányzott a kiegyensúlyozottságod a fórumról."
Köszönöm. Az az igazság, hogy nagyjából követtem a dolgokat, de nagyon gyorsan megoldotok mindent nélkülem is, és mire esélyem lenne válaszolni egy kérdésre, már a kérdező meg is köszönte a segítséget.
"Mindegyikben vegyesen vannak numerikus és nemnumerikus karakterek. Az első karakter ilyen megkülönböztése alapján más-más Fkeres függvénnyel keresteti a cellához tartozó többi értéket."
Ez pontosan mit jelent? Nekem az jött át, hogy ha az első karakter "X", akkor ebből a táblából keres ki egy értéket, ha az első karakter "Y", akkor abból, ha az első karakter "Z", akkor a harmadikból, stb. Ez így korrekt? A "cellához tartozó többi értéket" azt jelenti-e, hogy egy adott cikkszámhoz tartozó árucikk több tulajdonságát is ki kell válogatni a megfelelő táblából? És akkor minden oszlopban FKERES függvények vannak? 600 árucikk 5 tulajdonsága esetén 600x5=3000 FKERES?
4. Find helyett jól, vagy jobban használható a Application.Match fgv hívása, ráadásul sokkal egyszerűbb a hibakezelés is. Ciklussal végigmenni egy találat miatt szerintem pedig főben járó bűn. Hacsak nem n-ik találatot akarsz visszakapni...
Tényleg, van erre valami frappáns képlethalmaz megoldás? Sokszor volt már itt téma, magam is tudok kettőt, de jó pap holtig tanul...
Az 1. pontodban leírt különbség azért igaz, mert a függvényeket nem a kissé körülményes VB-ben, hanem a gép lelkéhez közelebb álló nyelven írták a fejlesztők.
Örükök, hogy újra itt vagy, nekem hiányzott a kiegyensúlyozottságod a fórumról. Köszönöm a választ.
Nem az én problémám, csak segíteni próbálok valakinek. A feladat: sok-sok cella egy oszlopban cikkszámokat tartalmaz. Mindegyikben vegyesen vannak numerikus és nemnumerikus karakterek. Az első karakter ilyen megkülönböztése alapján más-más Fkeres függvénnyel keresteti a cellához tartozó többi értéket.
Úgy próbálta megoldani, hogy a Bal függvénnyel két külön oszlopba válogatta az adatait, ami természetesen működött, de plusz egy oszlopnyi képletet jelentett.
Javasoltam a Kód függvény alkalmazását. Azt mondja, hogy ezzel észrevehetően, de csak kis mértékben gyorsult a feldolgozás. A Kód mellé kell egy vizsgálat is, ami tulajdonképpen nem 1, hanem 2, mert a 47 és 58 közötti értékeket kell figyeltetni.
Makróban a feltételek vizsgálata is a lassú műveletek közé tartozik, valószínűleg így van ez munkalapfüggvények esetén is. Ezért tettem fel a kérdést.
Még 1 apró kérdés: ha legördülő listát csinálok, van egy kis szürke gomb, egy elfelé mutató háromszöggel, amivel legördítem a listát. Ezt hogy tudom áthelyezni a cella másik részébe?
Ez a fajta optimalizálás szerintem nagyon érdekes témakör. Szakirodalommal nem találkoztam még, és most lusta vagyok utánanézni, de nem hiszem, hogy nagyon konkrét, kőbevésett szabályok lennének. Úgy gondolom, hogy minden a feladattól függ. Viszont van néhány általános tapasztalatom, amit meg tudok osztani.
1. A munkalapfüggvények sokkal gyorsabban számolódnak, mint az ugyanazt a feladatot végző UDF-ek. 2. A legjobb sebesség érdekében lehet (sőt, érdemes) kombinálni a VBA-t a beépített függvényekkel. 3. VBA-ban a leggyakoribb fék a .Select metódus. Ez azért lényeges, mert a Select használata általában fölösleges, és (ha ciklusmagban használjuk) mérhetően sokat ront a sebességen. 4. VBA-ban a második leggyakoribb fék az, amikor arra írunk kódot, ami egy-két utasítással megoldható. Például egy bizonyos érték megkeresése egy tartományban megoldható a Find metódussal, fél pillanat alatt. Illetve megoldható ciklussal, egyenként végignézve az összes cella tartalmát, adott esetben több másodperc alatt.
Hirtelen ennyi. Ha van konkrét problémád, szívesen agyalok rajta.
Minden feladatnak több megoldása lehet. Sok adat vizsgálatánál nagy lehet a végrehajtás idejének különbsége.
Ismertek valami leírást, kimutatást arról, hogy melyik függvények hajtódnak végre gyorsabban, lassabban? Vagy csak a próba segíthet, nem lehet eszerint tervezni? Munkalapfüggvények, és VBA is érdekelne.
Sziasztok! Segítségeteket kérném az alábbi kérdésben: Ha mondjuk A1=év (pl:2010), B1=hónap, nap (pl. 01.20) és az szeretném, hogy egy harmadik cellába az egész dátumot hozza a két cellából, tehát pl. C1= 2010. január 20. Előre is köszi a segítséget!
Ha SQLkerdes mégsem jönne, akkor állítsd be így a cellaformátumot:
"0"0
Az idézőjelek közé tegyél annyi nullát, amennyit a számok előtt akarsz látni. Ha úgy akarod, hogy x számjegyű legyen az eredmény, és a hiányzó helyi értékeket töltse fel nullákkal, akkor állítsd a cellaformátumot x db nullára. Pl. 4 jegyű számokhoz
Sziasztok! A problémám a következő: van egy segédtáblám, amely nem szeretném ha látszódna és akárki belepiszkálhatna, viszont a képletek miatt szükséges hogy meglegyen. Hogy tudom úgy elrejteni, hogy a tartalom ne vesszen el, de ne legyen látható? köszi
Hát kérlek szépen, azt például úgy lehet, hogy először is definiálod a cellatartományt:
Dim Rng As Range Set Rng = Activesheet.Range("A1:C10")
Azután szépen végiglépkedsz a tartomány elemein:
Dim Cella As Range For Each Cella In Rng.Cells 'csinálj valamit Next
A ciklus magjában nyilván akármi lehet, de a kérdésed nem elég konkrét ahhoz, hogy ebben sokkal konkrétabb tudnék lenni. Ha a cellatartományt csak át kell másolni egy másik helyre, akkor fölösleges beolvasni őket egyenként, sokkal egyszerűbb együtt, direktben másolni:
Egy olyan problémával fordulok hozzátok, hogy egy makró működése során ki kell olvasni egy cellatartomány (tömb) értékeit, illetve egy tömbből ki kell íratni értékeket egy másik cellatartományba. Hogyan lehet ezt megoldani ciklussal?
Elég kezdő vagyok Excel-ben és volna egy kérdésem. Hogyan lehet egy cella tartalmát "lerenderelni" - vagy nem tudom, hogyan hívjam.
Szóval van pl. egy oszlopom, aminek minden cellája dátum formátumban van. Az első cellában (legyen A1) az van, hogy 2000.01.01. Az alatta lévőben (A2) az van, hogy =(A1+5), tehát 5 napot hozzáad, és így azt látom megjelenni, hogy 2000.01.06. Így van egymás alatt rengeteg cella, ami mindig a felette lévőhöz ad hozzá 5-öt.
Nekem viszont az kéne, hogy az összes cellában önmagukban jelenjenek meg a dátumok, és ne egy másik cellából számolja ki. Tehát a cellában lévő egyenlet eredménye legyen ott, egyenlet nélkül.
Ha néhányról lenne szó, beírnám kézzel, de sokról van szó
Nem csak nálam, a kollégámnál is szeret lefagyni ez a fájl, meg az ehhez hasonlók (nagy és függvények+pivotok vannak benne).
Én 2002-es excelben dolgozom, nem tudom van-e ennek jelentősége.
Hát az a benyomásom, hogy a mentés körül szokott lefagyni. Ha véletlenül klikkelek még valahova akkor tuti...egyébként meg ha türelmes vagyok és kivárom a kb 3-4 percet akkor végül megcsinálja.
Azt tapasztaltam, hogy ha 2 dózisban mentek, akkor mintha jobb lenne a helyzet.
Úgy rémik valaki mintha emlegette volna, hogy amiatt is lehet hogy a "working memory"-ban ideiglenesen tárolja azt a sok adatot, hogy ha esetleg "visszavonnám" akkor vissza tudja csinálni...ez a memória kitisztul, ha mentek...és jobban bírja.
Talán kipróbálom, hogy megszüntetem a függvényeket...
Fura, hogy nálad simán működik ilyen nagyon fájlon nálam meg nem...
Csak ez a workbook fagy le? Csak ezen a gépen fagy le?
Állítólag nem régen kijött egy olyan XP frissítés, ami hajlamos kiakasztani az xl-eket, szóval mostanában jött elő a lefagyás?
Egyébként ha valami akkor a mentés előtti 10K sor újraszámolása lehet, bár annak sem kellene, én nem-ritkán dolgozom 500K sornyi adattal, elnyammog rajta, de le nem fagy (xl 2007, 4 magos proci).
Tehát minden egyes gyümölcshöz egy számot rendelek, majd szűrés után a részösszeg függvénnyel csak azokat a sorokat adja össze, ami a listázás után látható.
Pontosan ezt akartam javasolni én is, meg persze a kimutatást, amit szintén pillanatok alatt össze lehet állítani és a követelménynek az is teljesen megfelel.
Na, áttanulmányoztam ezt a Listás technikát. Valóban praktikus lehet sok esetben. De ahogy feltehetőleg te szeretnéd, arra csak egy kicsit komplikált megoldást tudok javasolni. És pedig: A stringes lista oszlopokhoz hozzárendelsz 1-1 kód oszlopot, pl: alma = 1, szilva =2 stb. Majd a kódoszlopoknál az összegző fuggvénynek az átlagot adod meg. Ezután az összegző sorra kétféleképpen hivatkozol: 1. a numerikus értékeket tartalmazó oszlopra az összegző sor szerinti cellára 2. A stringes oszlopokéra meg a kód szerinti FKERES-sel.
Beírtam a képleteket, itt a fájl. Írtam bele némi magyarázatot.
http://data.hu/get/2087675/Forumra.xls.html
Ezek csak az adatok helyes megjelenését biztosítják, a formáét nem. Ha több ugyanilyen küllemű lapot akarsz előállítani, akkor az egyik módszer, hogy a lapfülre kattintasz, és a CTRL nyomva tartása mellett áthúzod oda, ahova be akarod szúrni a másolatát.
Ha sok lapról kell összesíteni az adatokat, akkor az Összesítő lap B oszlopában nagyon hosszúra nyúlhatna a képlet, érdemes lenne helyette egy makróval elvégeztetni a feladatot.
Majd tanulmányozom ezt a listás dolgot. De addig is, miért kell a problémádhoz a lista? Miért nem jó egyszerűen bebillentyüzni a C16-ba, hogy alma. Vagy hivatkozni a szürő cellára?
Talán segít: Én a tiedhez hasonló célokra a helyben szűrést alkalmazom, és a szűrési eredmény összegzésére meg nem a SzUMHA-t, hanem az AB.ÖSSZEG-et.
Próbáltam alkalmazni azt a képletet, amit leírtál, de körkörös hivatkozás lett az eredménye.Ha lehet az előző hsz-ben linkelt táblázat alapján le tudnád nekem írni, hogy hogyan kell.Gyakorlatilag amit szeretnék az "alap" munkalap módosításai megjelennének az összes többi munkalapon.( cél az lenne, hogy a szövegek, beszurt sorok, oszlopok, formázások, azaz minden megjelenjen )
A többi lapon ne fixen add meg azokat az értékeket, amiknek azonosnak kell lenniük az első lapon lévő értékekkel.
Az első lapon (legyen itt Munka1 a neve) az A oszlopan van a megnevezés, a C-ben az egységár. A többi lapon az FKERES függvénnyel rendelheted hozzá a megnevezéshez az egységárat. A C2-be (feltételezve, hogy van címsorod) ez jön:
Készítettem egy excel táblázatot, amely folamatosan bővült. Asztalos vagyok és árajánlat készítésére használom ezt a táblázatot, melynek tartalma : anyagmegnevezés-mennyiség-egységár-összeg .
Eleinte egy munkalapból állt, ahol fel voltak sorolva a termékek......Ez megfelelt abban az esetben, amikor egy vevőnek egy termék kellett.A problémát az jelenti, ha egy vevőnek több termék kell.Részlegesen sikerült megoldanom a problémát ( létrehoztam az alapmunkalapnak a másolatait ), viszont ha az alapmunkalapon bármit változtatok, az nem jelenik meg a többi munkalapon.Van -e erre valamilyen megoldás ?
Pedig egyszerű. Az excelbn vnan egy olyan menüpoont, hogy: Adatok/Lista/Lista létrehozása (vagy Ctrl R)
Oylan, mint az autószűrő, csak itt te adod meg a paraméterekete (mely oszlop, hány sort figyeljen)
Én meg azt akarom, ha van egy ilyen kis táblázatom (reméljük nem esik szét ez az 5x2es táblázat)
A B
1 piros alma
2 sárga alma
3 sárga körte
4 kék szilva
5 zöld szilva
És a B oszlopra teszek egy szűrőt, ami a B1 és B5 között szűr, majd kiválasztom az alma szót, akkor ugye az 1 és a 2 sor jelenik meg, 3-4-5 meg eltűnik és a kérdése lényege: a C16 írja ki, hogy: alma.
Ha szűrésre gondoltál, itt van két makró. Az első a G1, H1, és I1 cellákba írt 3 feltételnek megfelelően szűri az adataidat. Nem kell mind a 3-at megadni.
A második az összes adatot láthatóvá teszi.
Azért nem egymás alá, hanem mellé íratom a feltételeket, mert szűrésnél rejtettek lehetnek.
Sub Filter_On() Range("A1").Select If Cells(1, 7) > "" Then Selection.AutoFilter Field:=1, Criteria1:=Cells(1, 7) If Cells(1, 8) > "" Then Selection.AutoFilter Field:=2, Criteria1:=Cells(1, 8) If Cells(1, 9) > "" Then Selection.AutoFilter Field:=4, Criteria1:=Cells(1, 9)
Vagy, ha már a kreatívkodásnál tartunk: - Sumproduct-tal elvégezteted mind a 18 feltétel kiértékelését és az eredményt megszorzod a feltétel sorszámával (elsőt 1-el, tizennyolcadikat 18-al). Ezt azután továbbpasszintod egy CHOOSE függvénynek és kész is vagy.
És természetesen a CHOOSE-ban lévő b1 helyére simán berakhatod a teljes SUMPRODUCT függvényt és utólag élő ember nem mondja meg hogyan csináltad, hogy működik :-)
Bár szerintem a legegyszerűbb a SWITCH VBA függvényt UDF-é alakítani, mondjuk MySWITCH néven...
Egy oszlopban megvizsgálod az első 6 feltételt, a vizsgálat eredményének megfelelően adsz 0-1, IGAZ-HAMIS, vagy hasonló értéket. Egy második oszlopban a következő 6 feltételt vizsgálod hasonlóan, végül egy harmadik oszlopban a maradék 6-ot.
Egy újabb oszlopban az előző 3 vizsgálat eredményét hozod össze.
Igen. A Ctl+1 csak a kijelzést változtatja meg, a cella tartalma változatlan marad. Ha méllyebben is érdekel, a dátumokat az xl számként kezeli (ezért lehet pld két dátumot simán kivonni egymásból), csak bele vagyon építve, hogy ha dátumként formázod akkor kiszámolja, hogy az milyen dátumnak felel meg. Ha nem tévedek akkor a dátumok szám egyenértékese, a dátum és 1900/01/01 között eltelt napok száma.
Az lenne a kérdésem, hogy van-e vmilyen mód arra, hogy egy cellában 7-nél több feltételes vizsgálatot csináljak - vagyis a HA függvény kevés rá. Elvileg 18 feltételt kéne vizsgálni.
Gondolom ez a default beállítás. Meg tudod változtatni ha Ctrl+1 et nyomsz és játszol egy kicsit a beállításokkal. Nagyon kicsit, mert csak oda kell rakni a pontot a maszk végére.
Milyen exceled van? 2003 v 2007? 2007-ben talán legegyszerűbb ha kijelölöd azt az oszlopot, amiben az adatok vannak és Data/Text to Column. Válaszd azt, hogy az adataid Delimited formában vannak. Ezután kéri, hogy add meg, hogy milyen karakterek szeparálják el az adataidat. Itt válaszd a szóközt (Space) ÉS a / jelet. Ha ezután OK-t nyomsz akkor az excel szétszakítja az eddigi egy oszlopban lévő adataidat négy oszlopra (ahol /-t vagy szóközt talál szakít).
Feltételezve, hogy az adataid eredetileg az A oszlopban voltak, és a szétszaggatás után az A:D oszlopokban vannak, a következőket kell tenned: - az A oszlopban jó eséllyel nem egy számot látsz majd, hanem egy dátumot, ne rémülj meg, szám van ott, csak a kijelzés formátuma dátum. Nyomj Ctrl+1-et és változtasd meg a kijelzési formátumot, ha nagyon zavar, de én nem tenném, mert később ezt az oszlopot úgyis töröljük. - az E oszlopba a következő képletet írd be (pld E2-be) =DATE(C2,A2,B2) - Másold lefele a fenti képletet, amennyit kell - Jelöld ki a teljes E oszlopot - Ctrl+C - A kijelölés megtartása mellett most válaszd a Paste Value opciót a Paste ikon legördülő menüjéből - Töröld az A:D oszlopokat
Kész vagy.
Ha xl2003-ad van, akkor is ugyanezt kell csinálni, csak nem tudom, hogy a Text to Column melyik menüben van...