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.
Tisztában vagyok azzal hogy hogyan kell írni az Excelt de a telefonom mindig kijavította. Én kis laikus meg gondoltam így is értitek. Ezek szerint ez egyeseknek gondot okozott. Évek óta használom az Excelt a munkámhoz de papírom nincs róla . Mint kintlevőségi táblázatkezelő soha nem használok például diagramokat vagy egyéb függvényeket. Nem mellesleg nem azt mondtam hogy nem akarom megtanulni hanem hogy minél hamarabb kell a papír. Sajnos rengeteg gondom van így nem tudom az agyamat erre összpontosítani ezért kértem a segítségeteket. Nem kioktatásra van szükségem van elég bajom hanem SEGÍTSÉGRE. Aki ezt megérti és tud nekem segíteni annak előre is köszönöm!
Az ami nekem kell a munkához azt tökéletesen tudom. De vannak az exelnek olyan részei amik nem kellenek . Sajnos nincs időm átrágni az anyagot. Tudsz segíteni?
Szeretném a segítségeteket kérni. Online elkezdtem egy exel kezdő és haladó tanfolyamot. Sajnos nagyon sok minden összejött( édesapám halála, terhesség,új munka)és nincs időm megcsinálni a kezdő illetve a haladó modulzárót. Lenne olyan aki megegyezés alapján kitöltené nekem a modulokat?Nagy segítség lenne mert a papír kellene az új munkahelyhez. Köszönöm a segítséget.
A következőt szeretném: egy weblapról lementeni az adatokat (táblázatot) majd abból kinyerni néhány információt. Ezt sikerült is megcsinálnom az Adatok fülön a kapcsolat-tal és a következő nap az már az új adatokat be is olvassa a munkalapra automatikusan. A bajom az, hogy a weblapról letöltött adatok nem számok, hanem más formátumúak, pl.: dátum....stb. Hogyan lehetne ezt beállítani, hogy számok legyenek letöltve?
tudnatoks segiteni abban hogyha van egy ID-m amit megkeresek 1 tablazatban(vlookup-al), es ha az az id megtalalhato akkor az eredmeny igen legyen, ha nem akkor meg nem
Alt+F11-gyel lépj be a VB szerkesztőbe. Keresd meg a Module1-ben lévő makrókat, amiket az egyes lapokon lévő gombokhoz rendeltem.
Ha összehasonlítod ezeket, meglátod, miről szólnak a makrók. Mivel eddig nem foglalkoztál vele, nem ígérem, hogy könnyű dolgod lesz, de megéri.
Sárgával kiemeltem, mit kell kiválasztanod, hogy a makrókat láthasd.
Az usor változó adja meg, hogy az Összesítő lapon melyik az első üres sor, ahova másolni kell. A sor változó azt az értéket tartalmazza, amelyik az aktuális lapon ki van választva.
Az Összesítő lap A oszlopába kerül a VIP B oszlopa, B-be a D, ... F-be a G, és így tovább. Más lapoknál ettől eltérő az egyes oszlopok sorrendje.
Ha le tudod írni vagy van esetleg egy leírás a neten, hogy hogy csináltad akkor meg tudod osztani velem? Érdekel, hogy ha bővítenem kell akkor tudjam! Köszönöm!
Tegyél fel egy minta füzetet, pl. a data.hu-ra. Legyen benne a 4-5 lap, meg a gyűjtő. Az elrendezések egyezzenek meg az eredetivel, az adatok lehetnek kamuk. Laponként elég 1-2 sor.
A segítségetekre lennem szükségem! Csak az alapokhoz értek az excelbe és az alábbi dolgot kellene megcsinálnom:
Több megrendelőből az adatokat az excel külön lapjaira másolom. Ezt azért teszem mert a megrendelők különböző formátumúak más oszlopokba esnek a az azonos információk (attól függ hány utas jön, vagy milyen csomagot rendel meg)!
Ez körülbelül négy vagy öt lapon van és szeretném, hogy egy új lapon az azonos információk (pl megrendelés azonosító, név, súly ...) egy oszlopba legyenek hogy rá tudjak szűrni az adatokra! Ezen kívül azt is szeretném, hogy ha valamelyik lapra bemásolok egy új megrendelő adatait akkor az adatai a közös lapon megjelenjenek.
Remélem nem túl bonyolultan írtam le! Lehet van más megoldás is nem csak ez.
Adott egy saját xls doksi. Minden nap bele másolok egy táblázatot. ezt formázva ki akarom nyomtatni. Úgy szeretném megoldani, hogy egy új lapra magától másolja át ezt a bemásolt adatokat. Gyorsan sikerült megoldanom, viszont a dátummal meggyül a bajom.
A probléma az , hogy vagy szám formátumban jön át , ilyenkor az üres cellák üresek, vagy dátum formátumban, de ilyenkor az üres cellákba is beír egy 1900.01.00. -át. Tehát hogy lehet megoldani, hogy csak az jöjjön át ami kell , az üres meg maradjon üresen.
Makrórögzítővel próbáltad már? Ha nem megy direktben a tartomány, másold át egy üres munkalapra, mentsd el azt, aztán töröld a tartalmát. Lehet, hogy megy ez egyedül is.
ez powequery által generált kódsor. egy másik munkafüzethez kapcsolódtál úgy látom. Az Acces szerinti sql-t lehet használni és a powequery függvényeket a tábla módosításához/átrendezéséhez.
Egy olyan problámám van, hogy VBA-ban szeretnék vlookup függvényt használni, de két küldönböző workbookra vonatkozik. A keresési érték és s keresési tartomány külön workbookban van.
Valamiért type mismatch error-t ad. Talán a másik workbookra való hivatkozással lehet a gond?
Sub Cost_center()
Dim ErrorCost As Integer
Dim ErrorCostRep As Integer
ErrorCost = Workbooks("Z_480195647-480195621-480195618-480195195-480195194-480195193 - INC AP Feed WE 052718").Worksheets("Sheet0").Range("O1429")
Workbooks("Inactive-Cost-Centers").Activate
ErrorCostRep = Application.VLookup(ErrorCost, Workbooks("Inactive-Cost-Centers").Worksheets("Inactive List Prior Years").Range("A1:C10000"), 3, 0)
A programcsomag részeként - MSOffice - backoffice-on keresztül excelben is elérhető az Acces sql-e. Szerintem ez megvolt a régebbi verziókban is MSQuery-n keresztül.
De lehet kapcsolódni bármilyen adatbázis szerverhez - mint pl mssql, mysql. Tudnak kommunikálni egymással és excel alatt (a definíció fül...) is kiadható bonyolultab b sql parancssor
A szabványos SQL az a szabványos SQL. Pont ez a lényege, hogy ne kelljen ezt a kérdést feltenni. Ez az a verzió, amitől az összes létező SQL eltér. :-) Hogy az Excelben volt-e valaha ilyen, azt nem tudom, de ismerve a MS idegenkedését mások szabványaitól elég valószínűtlen.
Így van rosszul írtam. Ezt még sikerült is kitalálnom, csak bonyolultabban a kódba nem a zöld hanem a fehér színt állítottam be, de ez a szép amit te írtál :D Az igazi nehézéséget az okozta, hogy létrehoztam egy panel gombot "szinez" amihez hozzárendeltem a makrót. A jó az lenne ha egy kattra színez még egy kattra leveszi a színt. Mint egy gomb amit vagy bekapcsolok vagy ki. Két gombbal megtudom csinálni így ha bonyolult hagyjuk. Így is nagyon sokat segítettél. Csak már beindult a képzeleterőm mit lehet kihozni még ebből :D
Ha jól értelek, nem leállítani akarod a makrót (hiszen az leállt magától az End Sub sorra érve), hanem indítani egy másik makrót, ami törli a színeket. Egyszerű, csak néhány sort ki kell hagyni belőle:
Köszönöm szépen ezzel sikerült amit szerettem volna, de ha már makró és ellegáns akarok lenni gondolom van arra megoldás, hogy a makrót leállítsam. Az az panel gombot létrehozok egy katt makró indítás (Zöld lesz aminek kell) még egy katt a zöld eltünik. A panelt létre tudom hozni a makrót nem tudom "Leállítani"
Az előbb telefonon csak röviden tudtam írni. Most el is magyarázom.
Az első változatban a For i = 1 To Range("B" & Rows.Count).End(xlUp).Row azt jelenti, hogy a for-al kezdődő sortól a next sorig végezze el a közte lévő feladatokat a sort jelző változó (i) folyamatos növelésével. Mégpedig 1-től a B oszlop utolsó folyamatosan kitöltött soráig. (Ha lett volna benne kihagyás, akkor ott befejezi).
A módosítás For i = 16 To 126 arról gondoskodik, hogy a 16-tól a 126. sorig mindegyiken hajtsa végre a feladatot (itt még az esetleges közbenső kihagyás sem zavarja, dolgozik a 126. sorig)
Köszönöm. Ettől tartottam, hogy csak makróba lehet megoldani.
Megfogom próbálni az általad leírttal, hogy működik.
A leírásodban a B oszlopot hasonlítja a D vel. Nekem annyi nehézségem van még , hogy a vizsgálat A B16-D16 tól kell tatania A B126 - D126 .-ig. Akkor csak a "b" után odaírom a számot? Sajnos makróból 0 vagyok (ha megvan a jó forráskód beilleszteni betudom)
Amit szeretnél, az szerintem csak makróval oldható meg. Akkor viszont nincs szükség a feltételes formázásra. A makró pillanat alatt végig szalad a B oszlopon, és ha azonos D-vel, akkor színez, ha nem, akkor meghagyja/javítja feketére a háttérszínt.
Itt egy minta:
Sub szinez()
Dim i As Long
For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
If Range("B" & i) = Range("D" & i) Then
Range("B" & i).Interior.Color = 5296274
Range("B" & i).Interior.Pattern = xlSolid
Else
Range("B" & i).Interior.Pattern = xlNone
End If
Next i
End Sub
Ha esetleg nem a háttérszínt akarnád színezni, hanem a betűt, akkor a
$ jelet nem használhatok mert az egész oszlopba (több cellába) kell a képlet. Tehát a B128=A128 nak is igaznak kell lennie.
@Pimre jól írta ha nincs ott az A és a D oszlopom a feltételes formázás nem teljesül így nem jó. A kérdés pont az, hogy át lehet -e a B oszlop "végeredményét" másolni egy új Excel táblába megtartva a formázást?
A képlet eltéréseket vizsgál A és D oszlop között. Az eltéréseket zölddel akarom jelölni a B oszlopba. A B oszlopot szeretném átmásolni egy másik Excelbe (Megtartva a zöld színeket.) és elküldeni valakinek ,mert a B oszlopon kívül nem tartozik rá más. Ez nem egyszeri feladat hanem szinte naponta több ilyen külön táblát kell megküldenem neki. Ezért kellene folyamatot találnom rá, hogy ne egyesével keljen színeznem, vagy elrejtenem az oszlopokat és zárolni a táblát.
Feltételes formázással színezek bizonyos cellákat (pl ha A1=D1 akkor Zöld a B1 cella). Majd a B oszlopot (Csak a "B" -t) át akarom másolni egy teljesen új Excel-be. Értelem szerűen a feltételes formázás ugrik és a zöld cellák a "B" oszlopban ismét fehérek lesznek.
Kérdésem van ara megoldás, hogy véglegesítsem a feltételes formázást és átmásolás után ne veszítsem el a színt? Valahogy úgy kellene megoldani mint amikor képletet másolok át és értékként illesztem be. Itt is a színt (végeredmény) szeretném átmásolni nem a feltételes formázásom.
Persze nem feltételes formázással kellene csinálnom, szívesen veszek más megoldást is.
Bankszámla kivonaton (excelben letöltve), egy megjegyzés rublikában szerepel olyan pl. hogy: 5000 Ft vásárlás meg olyan hogy: 4000 Ft átutalás stb, stb, stb...
Szeretném hogy ne összeg szerint, hanem kategória szerint lehessen sorbarendezni ezeket, pl. hogy egybe legyenek láthatóak a vásárlás, átutalás stb. tételek további feldolgozás, pl. összesítés menetéhez.
A probléma ott adódik, hogy pl. az fkeres stb. karakterlánc feldolgozó képletekkel ha próbálkozom, ott mindig balról kezdődik a keresés, az összegek pár forinttól sok ezerig változhatnak és hiába mondjuk az első szóközre keresek rá, nem az utána fennmaradt karaktereket adja eredményül, hanem az előzőeket, tehát az összeg lesz az eredmény, s nekem az kéne ami utána jön.
Szeretném valahogy ezeket az eltérő karakterhosszúságokat tehát kezelni vagy valami olyan összetett függvényt használni, ami levágja a változó hosszúságú számértékeket (meg azt hogy Ft) a cella tartalmából és csak a szöveges további megjegyzést megőrizni vagy megfordítani a sorrendet pl. átutalás 4000 Ft alakban.
Próbáltam a jobb függvényt is használni, de ha ezt kombinálom az fkeressel, akkor ahogy írtam is, az megkleresi pl. balról az első szóközt, de ennek eredménye nem használható fel a jobb függvényben, mert hülyeséget ad különböző cellákban, hisz az fkeres a balról vett karakterek számát adja ekkor az első szóközig.
Nem tudom lehetne-e pl. valahogyan jobbról indítani a keresést az fkereshez, mert akkor működhetne. (?)
Sajnos nekem konkrétan a felhasználó engedélyezési rész kell. Amit publikáltál az bizonyosan működik és köszönöm. A célom több munkafüzet engedélyezett felhasználóinak a kiegészítése, mert domain-t váltottunk.
Már korábban kértem segítséget abban, hogy hogyan tudok felhasználót adni a "Tartományszerkesztés engedélyezése" lehetőségnél, tehát adott cella tartományt szeretnék adott felhasználóknak direktbe engedélyezni. Ez a kód meg is teszi, látszólag elvégzi a beállításokat, viszont nem működik. Nem engedélyezett felhasználó esetén is szerkeszthető a cella.
Sub AddUserEditRange() Dim ws As Worksheet, aer As AllowEditRange Set ws = ThisWorkbook.Sheets("munkalap neve") ws.Unprotect "ide a jelszó" Set aer = ws.Protection.AllowEditRanges.Add("ide a kijelölt tartomány megnevezése", ws.Range("I2:I32")) aer.Users.Add "ide a felhasználó neve", True ws.Protect "ide a jelszó" End Sub
Összehasonlítva a manuálisan beállított és a makró által létrehozott lapvédelmi hivatkozást, egy kardinális különbséget észleltem. A manuálisan beállított esetén az alábbi sorokkal volt több a sheet??? tartalma:
Görgeti az, csak éppen nem a 14. sorig (ha jól értem, ennél sornál rögzítetted a panelt), hanem annyit görget, hogy a célsor a képernyőn látható tartományba kerüljön, tehát a lap alján éppen ez legyen az alsó sor.
Így adom meg ahogy írtad, és működik is úgy, hogy odaugrál a cellákra és kijelöli, De nekem az kellene, hogy bárhol van a cellakijelölés, kis táblázatok első sora (amik a rögzítés alatt vannak) kattintáskor mindig a rögzített vonal alatt kezdődjenek pár sorral.
A képen lévő példával élve: H1-> A17 , I1->A32 , Ha rákattintok az I1 re akkor csak odaugrik a cellára a kurzor, de nem "görgeti" 2 sorral a rögzítés alá a "február tábla" első sorát.
Állj a H1 cellára, jobb klikk, Hivatkozás. A felugró ablak bal oldalán a Hivatkozott cím csoportban a Dokumentum adott pontja legyen kiválasztva. A Megjelenő szöveghez írd be: jan, a cellahivatkozás legyen A17, alatta pedig jelöld be a munkalapod nevét. A többi (I1:S1) cellában is így járj el.
Van egy összesítő tábla H1-S11. Ennek a fejlécében vannak a hónapnevek rövidítve.
Azt szeretném, ha rákkattintok ezekre akkor az adott hónaphoz tartózó cellatartomány első sora, egy bizonyos sorszámhoz ugorjon. jelen esteben mondjuk 3 sorral a rögzített panel alá.
Lehetőség adott a hypehivatkozással de nem mindig a rögzített panel alá ugrik, hanem pl a legutolsó sorra mi látszik, vagy ha egy lapon van csak kijelöli a cellát. Biztos tudjátok miről beszélek :)
Pl ebben az állásban amit a képen láttok, ha az I1 (feb) re behivatkozom az A32-t , és rányomok , akkor csak kijelöli az A 32 cellát és kész. (tudom, hogy ez a lehetőség ezt csinálja) de meg lehet-e oldani, hogy mindig a rögzített vonal lá ugorjon a hivatkozott cella sora?
Egy példával talán jobban rávilágíthatok az Indirekt függvény működésére.
A B1 cella tartalma egy szám, legyen ez 290. Az A1 tartalma egy szöveg: B1.
Az =INDIREKT(A1) függvény az A1 szövegében szereplő B1 cella értékét, a 290-et adja.
Nálad a C oszlop egyik cellájának az értékére van szükség. A C-t szövegesen adjuk meg ("C"), majd hozzáfűzzük az & jellel azt a sorszámot, amit az FKERES függvénnyel találunk meg.
Szerintetek van valahogy lehetőség az MS Flex Grid Excel VBA-ba való bedolgozására? Nem szabad VB-ban megcsinálni a feladatot, muszáj lennék Excel makróban (ilyen izés vállalati policy miatt).
Nagyon köszönöm, működik a dolog, Annyi kérdásem lenne, hogy az INDIREKT függvényben a "C" mit jelent és miért így kell megadni ? (az észrevettem , hogy az oszlopot jelöli de miért kell idézőjelbe tenni és miért nem C:C formában kell megadni, ahogy "szokás" ) :)
És olyan is megadható, hogy több sornál mindegyiket másolja át kivéve az első sort?
Tehát az alábbi példából a "HORDENGESTELLWAGEN FÜR 2/1 GN-EINSCHUB 20.2" kivételével mindent?
HORDENGESTELLWAGEN FÜR 2/1 GN-EINSCHUB 20.2 Passend zu Kombidämpfgeräten Kapazität: 20 x GN 2/1 - 65 Auflagen zur Aufnahme von Rosten und Blechen mit GN-Abmessungen 1/1. Der Beschickungswagen vollständig aus Chromnickelstahl
Egy szabadság kezelő tábláról van szó, ahol egy fájlban kezeljük a kollégák szabijait.
Az alap jelölő tábla megvan, és azt szeretném megoldani, hogy ha egy legördülő menüben (F1 cella) kiválasztok egy nevet, akkor ahhoz a névhez jelenjen meg minden beírt szabi nap havonta soronként.
A kigyűjtést megoldottam, van egy név oszlopom, egy hónap oszlopom és a szabi napok egy oszlopban.
Mellékelek egy képet
Úgy kellene beírni a G2 cellába egy képletet, hogy a C1 cella tartalmát mutassa (a G3 a C2-t , stb) de többet ne kelljen módosítani azt, tehát találja meg, hogy név és hónap cellák mellett milyen adat van a 3. oszlopban
Ugye tök egyszerű lenne ha FKERES-el A1:C10 re szűrnék, de ha hozzá kell valakit adni vagy elvenni akkor már gond lenne. Szóval egy SZUMHATÖBB szerű képlet kellene ide csak itt nem összeadni akarok, hanem csak megjeleníteni.
Megoldást keresnék arra, hogy ha egy cellában két sorban van szöveg, amely az Alt+Enter -el készült, lehetséges csak az első sor átmásolása egy másik cellába?
Sub AddUserEditRange() Dim ws As Worksheet, aer As AllowEditRange Set ws = ThisWorkbook.Sheets("munkalap neve") ws.Unprotect "ide a jelszó" Set aer = ws.Protection.AllowEditRanges.Add("ide a kijelölt tartomány megnevezése", ws.Range("I2:I32")) aer.Users.Add "ide a felhasználó neve", True ws.Protect "ide a jelszó" End Sub
Szerintem egyébként ha bejelölöd a keres-cserél egyebek részében, hogy csak akkor cserélje, ha az egész cella tartalma a - jel, akkor menni fog a Ctrl+H-val is!
A táblázatom alapja egy óránként frissülő AutoGADD xls. (Belinkeltem egy új üres táblázatba) A táblázatban termékek és a hozzájuk tartozó információk (ár, készlet, stb...) szerepelnek.
Az utolsó oszlopban egy képlettel számolnám, ki hogy mely termékek (Amelyeket ki kell futtatnunk egy megadott időre) azok, amik leírhatóak. Ezeknek meg vannak a feltételei.
Az egyik ilyen feltétel, hogy az elérhető készlet ("Code 1" esetén) 15 alatt van, nem fog már hozzánk érkezni (RTR = 0) és a teljes még eladásra váró készlet 50.000 Ft alatt van.
Idáig nem is lenne semmi problém, azonban a GADD listában, ha már nincs RTR (Rest to receive), akkor sok esetben nem 0 vagy üres cella, hanem "-" szerepel, tovább az RTO (Rest to Order) oszlopban negítv szám is lehet. Ez utóbbi azért fontos, mert egy sima CTRL+H-val nem tudom a "-" jelet "0"-ra cserélni, mert akkor a minuszból értékből hirtelen plusz lesz a "-" eltönésével. Az RTR oszlopban szereplő kötőjel további problémát okoz, ha össze akarom adni az aktuális készlettel, mert "value" hibaüzenetet kapok.
A CTRL+H opció azért sem megoldás, mert teljesen automatizálni szeretném a táblázatot, ha már rendelkezésrem áll az óránként frissülő linkelt lista.
Próbáltam a SUBSTITUE függvénnyel cserélni a "-" jelet 0-ra, de azzal meg a "Kiírható" oszlopban szereplő függvény nem boldogul. (Emelett a negatív számoknál sem jó, mert a mínusz helyett 0 lesz a szám előtt.)
Összefoglalva a lényeg: Az RTO és az RTR oszlopban szereplő "-" jeleket szeretném "0"-ra (vagy akár semmire) cserélni úgy fügvénnyel, hogy az eredeti listában nem kell piszkálnom semmit, illetve itt sem kell semilyen műveletet manuális megtennem a megnyitás után. ( Ez utóbbi azért fontos, mert sok olyan ember használná a táblázatot, akinek még egy nyomtatás is sokszor problémát okoz.
Több excel munkafüzetben beállításra kerültek olyan cellák, amit csak az engedélyezett felhasználók szerkeszthetik. Ezt a beállítást a "Tartományszerkesztés engedélyezése" funkcióval értem el. Szeretnék még több felhasználót hozzáadni az engedélyezettek köréhez. A további felhasználók hozzáadását meg tiudom vba-ban csinálni? , mert mint említettem, több munkafüzetről van szó.
Hát ez egy kissé kacifántos. Azért csak áprilisig szummáz, mert a p oszlop van megjelölve az összeadás végének :) (p10)
"de a p10-ben levo fv concenate-al van osszefuzve a1 cella+ b10 cella, b10 cellabad a fv pedig row()"
C10 lesz az a cella és nem p10, a p10-ben már adatok vannak.
A leírtak alapján az A1 cellában most p van, ez jelenti az összegzés utolsó oszlopát. Ezt írd át r betűre (mivel a júniusi adatok az r oszlopban vannak) és máris kész az egész. Mindig annak a hónapnak az oszlopát írd az A1 cellába, amelyik az összegzés végét jelenti.
Az összefűzés képletében $A$1 formátumot használj (=$A$1 & B10). így lehúzható a képlet és csak az A1 cella értékét kell módosítanod.
Több lehetőség van, de módosítanod kell itt-ott...
Pl.
1. részösszeg fgv és elrejted a szükségtelen hónapok oszlopait
2. hónap nevek helyett számokat használsz vagy hónapnévre formázott dátumokat. Ebből pedig SZUMHA fgv-el ki tudod számolna mondjuk 1-6 közötti összeget. (Egy cellát használhatsz amiben változtatod az -ig értéket.
Aztán még lehetne sorolni, de szrtem a 2. a legjobb
hello, koszi a gyors valaszt. c10es cellaban az ertek ami van: p10
a 10-megegyezik a sor szamaval, tehat az minden egyes sorban no p pedig hivatkozik az a1 cellae. nem tudom miert p, a1 cellaban ertekkent szerepel.
nem ragaszkodok a keplethez de fura, hogyha manualisan jatszok vele, pl. kitorlom marc apr. akkor tokjol szummazza az erteket(jan-feb re vonatkozolag) viszont most megallt a tudomany, mert a maj jun eseten marad az apr ertek.
( de a p10-ben levo fv concenate-al van osszefuzve a1 cella+ b10 cella, b10 cellabad a fv pedig row()
nyitott vagyok mas megoldasra is nem ragaszkodok ehhez, foleg ugy hogy evvel az indirekt fv-vel nem sok tapasztalatom van es hiaba olvastam utana, nem ertem hogy mukodik aprilisig, es most miert halt meg....
hello, lenne egy egyszerunek tuno kerdesem. adott m-x oszlopig a honapok szama.jan-dec k oszlopban szeretnem szummazni az adott honapig levo szamokat, pl. most jan-jun (m-r) oszlopig. tudnatok adni erre egy formulat, ami havonta valtozik es nem kell pl. manualisan minden honapban kijelolni az adott uj oszlopot?
most van egy ilyen formulam: =SUM(M10:INDIRECT(C10)) de ez erdekes modon csak aprilisig mukodott, utana nem szummaz. m10 cella az elso ertek amitol kellene szummazni(jelen esetben a jan ertek) c 10 pedig a sorhoz tartozo (ID?!) (orokoltem a file-t mert a kollega mar nincs koztunk
Megvan a probléma oka. A 2002-től induló tábla egy csak évszámos segédoszlopa le volt szűrve 2018-ra, ezért a dátumos oszlopban 2018.12.31 után csak további 12.31-es dátumokat engedett létrehozni.
A Kezdőlap/Szerkesztés alatti Kitöltés menü "Adatsor" menüje passzív, míg az új munkalapon, ahol megy a dolog, ott aktív. A problémás munkalapon a jobb gombos lehúzás sem megy.
Segítsen valaki légyszi, mert nem tudom, mit állítottam el. Excel 2013, W81. Táblázat egyik oszlopa dátumformátum (2018.05.27), de - automatikus kitöltésnél, lehúzásnál - ma nem akarnak növekedni a dátumok soronként egy nappal. Akkor sem, ha az utolsó dátumról indítok, és akkor sem, ha kijelölök pl. több egymást követő sorban lévő dátumokat, és a kijelölés aljáról húzom tovább.
Ha nyitok egy új munkafüzetet, ott megy minden, ahogyan kell. Ha az új munkafüzetből formátummásolást végzek a problémás munkafüzetre, az sem segít.
Egy alapvetően rémegyszerű készletnyilvántartó táblába szeretnék egy plusz funkciót integrálni, de sehogy sem sikerül működő megoldást kreálnom.
Két tábla van "raktáron" ill. "készletmozgás" címmel, utóbbin a termékneveken túl a szomszédos oszlopban azok évjárata is bejegyzésre kerül, ugyanakkor a raktáron - a kezelhetőség végett - már nem akarom nyilvántartani az összes terméket az összes valaha előfordult évjárattal külön-külön, hanem minden terméknek csak egy sort szánok. Ugyanakkor a teljes raktárkészleten túl a legrégebbi évjáratot ill. az abból készleten lévő mennyiséget is meg akarom jeleníteni egy-egy oszlopban. A problémám a legrégebbi évjárat megkeresésével akadt.
Olyan függvényt kéne tehát összerakni, ami a "készletmozgás" táblában sorra veszi azokat a sorokat, amelyek tartalmazzák az adott termék nevét, majd minden ezekben előforduló évjáratra külön-külön összegzi a készletet, végül a legkisebb olyan évjáratot írja ki a cellába, amely évjárathoz nem nulla összeg tartozik.
Miután itt már biztosan fel van másolva a tétel, a kettő közé kellene beszúrni a hiperlink létrehozását, ami egyszerűbb is, hiszen szinte minden szükséges infót tudsz, nem kell újra keresgélni.
Két makró egymás utáni futását szeretném megoldani, de nem annyira sikerül.
- Az egyik egy dupla klikkes esemény, ami elindít egy hiperhivatkozást létrehozó makrót.
- Ezután lett létrehozva egy jobb klikkes (ugyanarra a tartományra), ami meghatározott mappát másol egy szerverre.
A használatában jobb egérrel kattintok, amire felmásolja a szerver meghatározott mappájába a mappát. Ezek után dupla klikket nyomok ugyanabban a cellában, és az előzőleg felmásolt mappához létrehozza a hiperhivatkozást.
Hogyan tudnám "összefűzni" a makrókat, hogy a jobb egér kattintásra másolja fel a mappát, majd hozza létre hozzá a linket.
1. A jobb egeres felmásoló:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim ml, fso, ez, innen, ide, sor, sz
If Target.Column = 36 Then
Set fso = CreateObject("Scripting.FileSystemObject")
Sziasztok ! Furcsa dolgot találtam az Excelben. pl.: cellákban adatok vannak. Ezekkel műveleteket szeretnék elvégezni ,pl.szorzom egy számmal. Ezt meg is csinálja. Lehúzom a képletet, az alatta lévő cellákba is mindenhova az előző eredményt írja bele, teljesen ugyanazt a számot. Visszanézem a képleteket ,a képlet jó az új sorok hivatkozásai vannak benne. Viszont az eredmény nem jó… Hogyha nyomok egy mentést ,abban a pillanatban minden cellát kiszámol, jó az eredmény. Remélem érthetően írtam le. Mi lehet a gond? Köszönöm.
Excelben szeretném azt megoldani, hogy két egyenes/görbe metszéspontját nekem automatikusan kiszámolja a program,mert az egyenesek változnak. Valakinek van valami ötlete hogy ezt hogyan tudnám megoldani?
A csatolt képen a "zöld" és a "kék" egyenesek metszéspontja kellene, sőt annak is csak az x-koordinátája.
Köszönöm, de kiderült, hogy nem ez kell nekem. viszont ezen a nyomon eljutottam a FileDateTime függvényhez, ami az adott fájl készítési idejét megadja. A könyvtárban lévő fájlok listáját meg továbbra is a dir() függvénnyel írom ki listába, aztán a FileDateTime meg egyenként megadja a készítési időket a sorbarendezéshez.
Van olyan VBA függvény/parancs ami a Dir()-hez hasonlóan listázza a fájlok/könyvtárak neveit, de létrehozás ideje szerint sorba rendezve, vagy a név mellett a létrehozás idejét is kiadja?
Bocsi, kissé zavaros. Azt írod, az R oszlopba kellene a képlet, de a makróban ezt az oszlopot szűröd (Field:=18, Criteria1:="0,000"), ráadásul szövegként szerepel szám helyett a nullás érték a kritériumban.
Sub Keplet()
Range("Q2:Q99") = "=N2+O2*P2"
End Sub
Ez a makró a Q2:Q99 tartományba minden sorba beírja az N+O*P képletet. Ezt felhasználva talán tovább tudsz lépni.
így éz ki eddig, gondolom az ActiveCell.FormulaR1C1 = "=RC[-4]+RC[-3]*RC[-2]" rész az, ahol a képletet próbálja érvényesíteni, de ez nem történik meg, továbbra is nullásak maradnak.
Az R oszlopba kellene nekem a =N+O*P képlet, majd a Q oszlopnak is ugyanezeket az adatokat is kellene tartalmaznia.
Sub ForecastDO_zero() ' ' ForecastDO_zero Macro '
' ActiveSheet.Range("$A$1:$R$99").AutoFilter Field:=18, Criteria1:="0,000" ActiveCell.Offset(8, -1).Range("A1").Select ActiveCell.FormulaR1C1 = "=RC[-4]+RC[-3]*RC[-2]" ActiveCell.Select Selection.FillDown ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell.FormulaR1C1 = "=RC[1]" ActiveCell.Select Selection.FillDown End Sub
SAP-ból húzok le egy riportot és szeretnék egy makrót arra, hogy egy oszlopban válassza ki csak a 0-ás értékűeket (eddig record macroval eljutottam) és ezeket egy képlet alapján számolja újra (ezt már nem csinálta meg a record után).
A képlet szerint csak 3 szomszédos oszlop celláit kéne összeadni/szorozni (=N17+O17*P17).
Az adatok egy Pivot-ban jelennek meg, ott csak formázni kell - pár "subtotal" mezőt kell kitörölni, másokat meg színezni, de ezzel sem boldogul(ok).
Hogyan tudom megcsinálni azt, hogy ha egy cellára hivatkozom, akkor ne csak a cella tartalmát, hanem a cella formátumát is átszívja? Tehát ha pl. beírom egy cellába hogy "=B8", akkor ne csak a "B8"-as cellába beírt tartalom, hanem a formátuma (betűre vonatkozó beállítások, háttér szín stb) ugyanúgy megjelenjen az új cellában is. Van erre lehetőség egyáltalán? Sajnos nem sikerült ilyet találnom. :(
Bekapcsoltam őket, de továbbra is elakadt, úgyhogy töröltem a sortöréseket, és bingó! Olyan gyönyörű, köszi szépen!!!!!!!!!!!!!!!! =)) Rég indult már ennyire jól a hetem ^_^
Szia Delila! Nagyon szépen köszi a segítséget! :) Ma más feladatom volt, így most csak gyorsan felnéztem a hétvége előtt. Futtatásnál syntex errort írt ki, de remélem, jövő héten megint több időm lesz foglalkozni ezzel, és akkor rájövök, hogy miért nem fut le nálam. Még egyszer, köszi! =)) Szép hétvégét!
Igen, a rögzített makróban lesz egy ilyen: Criteria1:="valami", ahol a valami az a szöveg lesz, amire szűrtél. A "valami" helyett írd be a Range("G5")-öt.
Azt hiszem, az ARAB függvény először a 2016-os verzióban fordul elő. Ha azt használsz, jó lesz a lenti makró, az oszlopszámot a saját igényedhez igazítva.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
If Target = "a" Or Target = "e" Or Target = "i" Then
lenne egy kerdesem. adott egy excel tabla ahol adatok szerepelnek az a-f oszlopban b oszlopban szerepel az orszag azt szeretnem megtudni hogy van-e olyan lehetoseg excelben hogyha a g5 cellaba beirom hogy XY orszag akkor az a-f tablaban a hozza tartozo sorok/vonalak jelenjenek meg csak?
tudom egy sima szurot rarakni es kesz, de az felhasznaloi oldalrol most nem megoldas. pivot tabla szinten nem ~jo~ megoldas..
szoval szurjon egy kriteriumra ha klikkel a mezore. erre van vmi formula?makro? akarmi?
Adott egy olyan szerveren tárolt Excel fájl, amibe többen írunk bele. Szeretném adott cellájának tartalmát a change eseménnyel úgy szabályozni, hogy ha nem megfelelő karatert ír be a felhasználó, akkor ne álljon meg, hanem simán javítsa ki. Ebben az esetben a római számmal írt kerületeket szeretném javítani az arab megfelelőjére.
A cellában tehát különböző karakterek is megjelenhetnek, és az I.-re 01-et kellene írni, ha II., akkor 02, és így tovább.
Keresgéltem a neten kódokat, és azokkal próbálkoztam, de nem jött össze.
Sub replaceMultipleCharactersInString() Dim myCell As Range Dim myString As String Dim Erre As String Dim Ezeket() As Variant Dim iCharacter As Variant Set myCell = ThisWorkbook.Worksheets(1).Range("A1") myString = myCell.Value Ezeket = Array("a", "e", "i") Erre = "o" For Each iCharacter In Ezeket myString = Replace(Expression:=myString, Find:=iCharacter, Replace:=Erre) Next iCharacter myCell.Value = myString End Sub
Egyelőre ezzel próbálkoztam, aztán majd átrakom a change-be.
Talán az Array segítene, de ebben az esetben minden karakter o-ra cserél. Lehet nem jól értettem (gyenge az angolom), hogy ha a cserélendőket is Array () felsorolom, akkor a sorrendnek megfelelően lecseréli, de az sem ment.
Jó lenne, de az alapok, felépítés eleve rossz. Sajnos nélkülöz mindenféle normalizálási szabályt. Ezt sokkal jobban is meg lehetne csinálni. De ha így kell, akkor így kell... értem én.
Igen, készítettem is egy fájlt a kérdés szemléltetésére, mert nehéz pontosan elmagyaráznom. Mivel nem kép fájl volt, nem tudtam feltölteni, de talán a screenshotok is kellőképpen szemléltetik.
A pivot-t ismerem, sokat is használom, de erre pont nem megfelelő (legalábbis az általam ismert formájában). Ezt a fájlt minden nap update-elni kellene új elemekkel, szóval egy makrót szeretnék írni rá. Több részére van ötletem, megoldásom, de a nevek megfelelő listákba szedése a legnagyobb falat (ez igényli a legtöbb munkát), és ezért mindenképpen automatizálni kellene valahogy pivot mazsolázgatás nélkül. Lehet, hogy csak nem értem, pontosan mire is gondolsz...
Egy ismerős javaslatára jöttem ide kérdezni. Biztosan meg lehet oldani a feladatot, de sajnos ilyen szinten nem értek az Excelhez :( Úgyhogy remélem, itt tudtok segíteni pár tippel, ötlettel :)
Szóval eljutottam odáig, hogy egy cellában felsorolt neveket külön sorokba listáztam. Ám ez egy kevert lista, amit külön oszlopokba kellene szétszedni egy másik fájlba aszerint, hogy a személyek mely alcsoporthoz tartoznak. A listákat külön-külön oszlopokban, egy másik munkalapon tartom számon, és ott update-elném szükség szerint.
Egyszerűsített példa:
1. munkalap - oszlopokba csoportosítandó lista
körte
zab
rozs
uborka
banán
káposzta
árpa
eper
2. munkalap - kívánt végeredmény
körte uborka zab eper (ez még nincs fent a lenti listán, de egy külön oszlopban szeretném látni, hogy ne maradjon ki) banán káposzta rozs
árpa
3. munkalap - kategória listák (ezt update-elném szükség szerint)
Gyümölcs Zöldség Gabona
alma sárgarépa búza
körte paradicsom rozs
banán uborka árpa
jégsaláta zab
káposzta
Van erre valami gyors és viszonylag egyszerű Visual Basic megoldás?
Kutakodom én is ezerrel, de nagyon hálás lennék, ha valaki adna egy kis extra löketet :)
Igazad van, kapkodva fogalmaztam. Addig használtam ezt, amíg meg nem tudtam, hogy ha az utolsó használt sort követően vannak üres cellák, akkor az így megadott képlet azokat is beleszámítja, ezért amikor az utolsó kitöltött sort keresem, akkor én is az általad írt módszert használom.
Köszönöm a javítást, én sem szeretném, ha valakit a hozzászólásom félrevezetne.
Ettől persze még továbbra furcsállom, hogy meg kell adni egy virtuális tartományt, ahhoz, hogy működjön a parancs a munkalap egésznek utolsó sora/oszlopa számának meghatározásához.
Segítségeteket szeretném kérni, mert az én excel tudásom elég korlátozott. Arról lenne szó, hogy egy osztrák programból exportálódnak adatok excelbe. A dátum osztrák formátumban van nap.hónap.év utána egy szóköz és a dátum óra:perc:másodperc ez így egy cellában van. Költségelszámolás miatt szükségem lenne két ilyen időpont különbségére órában megadva. Várakozási idő lenne. Minden megkezdett óra egy óra időtartamnak számít tehát 9:30 az már egy egész órának számít. És minden megkezdett nap egy egész napnak. A cellában a dátumot és az időt szét tudom szedni két külön cellára és a dátumot is meg tudom fordítani magyar formátumra, ha ez segít. A válaszokat előre is nagyon köszönöm!
Sziasztok, találtam egy furcsaságot. Valószínűleg működik, csak nem értem miért. Arra voltam kíváncsi, hogy miként tudom megtalálni egy munkalap utolsó használt sorát/oszlopát, ha az egyes oszlopok/sorok nem egyenletesen vannak kitöltve. Mindezt anélkül, hogy végigmennék az összes soron/oszlopon.
Meg is találtam az xlLastcell konstanst (amit egy adott sor/oszlop utolsó elemének meghatározására eddig is használtam), és arra is találtam példát, hogy miként tudom alkalmazni: ActiveCell.SpecialCells(xlLastCell).Row (vagy column). Próbálgattam munkalapot rendelni hozzá: pl. ws.ActiveCell.SpecialCells(xlLastCell.Row, de nem fogadja el a rendszer.
Ez azt jelenti, hogy aktiválni kell az adott munkalapot, select paranccsal ráállni bármelyik cellájára (próbálgatásom szerint bármelyik lehet, akár jóval túl a ténylegesen használt tartományon), és ekkor megkapom a helyes eredményt.
(Kicsit hasonlóan a panel rögzítéshez, amit szintén csak az adott munkalapon, és annak a kiválasztott celláján állva lehet kiadni. De az inkább tűnik indokoltnak)
Szerintetek sincs az xlLastCell használatára hivatkozásos megoldás?
Sub behuz With Range("A2") .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .IndentLevel = 1 'itt állíthatod a behúzás mértékét End With End Sub
Egy programban területi adatokat gyűjtök ki. Viszont a fővárosi kerületek nem jól néznek ki, mert össze-vissza csúszik a végük:
De az sem jó, ha az egészet hátra pozicionálom, és az sem, ha csak a kerületeket:
Az igazi megoldás az lenne, ha a leghosszabb kerületnév végéhez (XVIII. kerület) igazítanám a többi kerületet. Csak az a baj, hogy a római számok proporcinálisan vannak elhelyezve, így hiába egészítem ki elől szóközökkel (az 1 karaktereseket 4 szóközzel, a 2 karaktereseket 3-al stb.) az egyes neveket, nem kerül a végük egymás alá.
Azért mert csak függvények vannak a makrók között, még nem jelenti azt, hogy nem lehet azokat szerkeszteni. A VBA nézetet az ALT+F11 billentyű kombóval hívhatod elő.
Ott a bal oldalon láthatod a modulokat, amikre kattintva megnyithatod a kódnézetet és máris szerkeszthetsz mindent.
Ha nem modulban, hanem munkalaphoz tartozóan vannak a függvények bevive, akkor egyszerűen állja lapfülre, jobb egérgomb és kiválasztod a kód megjelenítése opciót.
Abban szeretnék segítséget kérni, ti hogyan oldjátok meg azt, mikor a makróitok között nincs sub (csak function), és szerkeszteni szeretnétek a makrókat?
Ugyanis ilyenkor a Nézet / Makrók / Makrók megjelenítése ablak üres, és nem nyitható meg a kódszerkesztő ablak. Miután elkészült egy dokumentum, amiben vannak függvények, törlöm a tesztelő sub-okat, és ha később mégis bele akarok nézni, szerkeszteni a függvényekbe, akkor kerülő megoldásra kényszerülök. Ilyenkor rögzítek egy makrót (ami semmi hasznosat nem csinál, beírok egy üres cellába valamit, szóval olyasmit csinálok, amit lement a makrórögzítő), majd így megnyithatóvá válik az MS VBA ablak (ahol szerkeszthetem a kódot).
Ám kell legyen ettől intelligensebb megoldás is! Ti ezt hogyan oldjátok meg? Köszönöm előre is!
A darabteli függvény egy számot ad, nevezetesen, hogy hányszor szerepel a B oszlopban az A1 (lentebb A2, A3 ... An). Mikor nem fordul elő a keresett adat, a függvény értéke 0. A HA függvény (amibe beágyaztam a darabtelit) ebben az esetben "*", másként üres string.
Köszönöm, ez igen a megfelelő, bár bevallom, a darabteli szintaktikáját nem értem teljesen a tartomány;feltétel alak után, hogy a zárójelen kívülre esik az =0.
fkeres, vkeres, keres, azonos stb. függvényeket is próbáltam, de csak nagy marhaságok jöttek ki. Pedig amennyi excel függvény van, igazán lehetne benne simán egy tömb-tömb összehasonlítás is.
(Már egy mezei javascriptben is hamarabb megoldottam volna, mint hogy egész este az excelben tornázom az ügyön és sajnos mindig ez van vele nálam ha vmi kezd bonyolódni...) :)
A lényeg az, hogy ugye az első oszlopban több elem van, mint a másodikban. Nekem csak az kellene (*-al megjelölve adott sort, mondjuk a 3. oszlopban), ami nincs benne a 2.-ban.
Először próbáltam egyezőségre felírni egy HA függvényt, de az eltérő cellatartalmak soronkánt utána akkor is hibát jeleznek, ha pl. itt az "f" egy lejjebbi cellában viszont megtalálható.
Annyi csillag legyen, amennyi különbség van a két oszlopban lévő betűk között? És csak oda kell csillag, ahol felülről lefelé először nem egyezik a két oszlop?
(Magyar Excel esetén én a KÓD függvényt használnám.)
A képletek jók, csak lehet arra nem figyeltél, hogy "tömbképletként" írd be. Ez azt jelenti, hogy amikor a képletet begépelet, bemásolod a cellába Ctrl+Shift+Entert kell nyomni. Ekkor az Excel betesz magától a képlet elejére és végére egy kapcsos zárójelet. Csak így működik.
A hivatkozásaiddat beírtam a képletbe, azok alapján ezt kell bemásolnod és Ctrl+Shift+Entert
A képlet jó volt az A1 és A2-re. Arról nem volt szó, hogy másképp használod. De a hiba okát is megírtam neked a 31508-as hozzászólásban.
A másik képlet is jó volt. Annyi kis eltéréssel, hogy ha átteszed máshová, akkor előzőleg a $ jeleket ki kell venni a végéről. Csak A1 maradjon.
Az, hogy nem olvasol, arról nem tehetünk. Arról sem, hogy kérdezés helyett kijelented, hogy hülyeséget írtunk. Próbáltunk segíteni. Részemről ezzel befejeztem veled a próbálkozásokat.
Csakhogy nem volt jó az eredeti képlet, így kénytelen voltam kijavítani. Nyilván rosszul javítottam ki, hiszen ez sem működik. De eddig még egyik megoldás sem volt jó. Az összes képlet, amit írtatok nem müködik, mindet kipróbáltam.
A következő formázásban szeretném segítségeteket kérni. Az oszlopban szereplő pénzösszeget szeretném középre igazítani úgy, hogy helyi érték szerint rendben legyen.
Hibás a képleted, te hibáztad el az egyébként jó képletet. Egy korábbi válaszodból kiderült, hogy a képletet módosítottad, és ez nem jól sikerült, majd a látott jelenséget félreértelmezve tetted bele Ha(Hossz(... kezdetű részt. Légy szíves olvasd már vissza a neked küldött válaszokat. Abból ki fog derülni, hogy például az Eltolás( után miért nem lett volna szabad az A1-et átjavítanod bármire is.
Ha elolvastad a válaszokat itt, meg a proharver fórumon kapottakat is (ott van egy másik jó képlet a problémádra), akkor térjünk vissza a kérdésedre. Enélkül nincs értelme.
Sziasztok! Megint én vagyok a tesztjavító táblázattal.
Nem jó ez a képlet: =HA(HOSSZ(X5)<=HOSSZ(Megoldókulcs!X5);KICSI(NEM(HIBÁS(SZÖVEG.KERES(KÖZÉP(Megoldókulcs!X5;SOR(ELTOLÁS($X$5;0;0;HOSSZ(Megoldókulcs!X5)));1);X5;1)))*1;1);0)
A helyes megoldás egy cellában van: AB
Vagyis a jó megoldás cellájában szerepelhet A, vagy B, Vagy BA, vagy AB, de nem lehet x, ABC, BC, AD, stb.
Nem tudom, mit rontottam el a képlettel :( Helyes választ ad bármilyen betűre :(
Köszönöm, nagy ötlet! Az IFERROR nem jutott eszembe. Fura, hogy ez a függvény (mármint a CELL) nem fordítódik le rendesen. Működhetne úgy, mint a VLOOKUP-nál a true/false, oda nem kell idézőjel.
Cserébe egy infó: a vessző és pontosvessző a területi beállításoktól függ. Ha a locale-hoz tartozó számformátum tizedesvesszőt használ, akkor pontosvessző kell a képletbe. Ha tizedespontot, akkor vessző. Asszem az aposztróf/idézőjel is így műxik, de nem vennék rá mérget.
Angol Excelem van, a Windows magyar területi beállításokkal fut, így a képletekben pontosvesszőt használok.
A A1 cellában megjelenik a táblázat címe, ami a "Lab Report "-ból és a munkalap nevének uccsó 7 karakteréből áll.
Többen használnák az anyagot, de vegyesen angol vagy magyar Excelük van. Ha az egyik nyelven megírom a képletet, a "filename" vagy "fájlnév" miatt a másik nyelven nem működik. Tudtok erre megoldást?
Valami ilyesmire gondolsz? Csináltam egy 30 órás mintát. A példában kijelölöd a B és C oszlopot, az A-t nem kell! Utána Beszúrás->Diagram->Vonaldiagram, majd innen a legelsőt választva rajzolja meg az elméleti egyenest, és ráteszi a tényleges értékeket. A képet aztán nagyíthatod, másolhatod stb.
Egy vonal diagramot szeretnék rajzolni, ami a munkával eltöltött időt és a felszerelt darabszámot rajzolja ki, ebből kiderül, hogy jól vagy rosszul haladunk és minden pillanatban pontosan meg lehet mondani, hogy hány %-án állunk a szerelésnek.
Konkrétan: Adott egy klíma gépház, amiben 1013 dolgot kell beépítenünk (ebben benne van a legkisebb cső és a legnagyobb csatorna is), mindezt 1980 óra alatt (tehát ahhoz, hogy a végén 0-ra jöjjünk ki, átlagban óránként 0,511-et kellene beépíteni).
Valahogy így képzelem ahogy a rajzoltam. Az egyenes vonal az optimális esetet mutatja amikor minden egyes munkaóra alatt 0,511 dolgot építünk be. Csatornából kevesebb fog sikerülni, csőből több. Ha az egyenestől balra vagyunk akkor rosszul állunk, ha jobbra akkor jól. Mivel több gépházat is követnem kell azért gondoltam egy ilyen diagramra, mert papíron nehézkesebb lenne nyomon követni.
Az egyenest meghúzni nem gond. na de a folytatáson elakadtam. Valaki tudna benne segíteni?
Még valamit: Javaslom, hogy csinálj egy próbát. Írd be az adatokat A1 és A2-be ugyanazon a munkalapon, és úgy próbáld ki bármelyik képletet szintén ugyanazon a munkalapon!
És meglátod, mindkettő működik.
És ha utána átmásolod az adatokat meg a képletet a végleges helyükre, akkor azt fogod tapasztalni, hogy azért nem működnek, mert az elmozdításkor a képletet nem pontosan igazítottad át a megfelelő értékekre.
És ha nem tudod megtalálni a jó megoldást, akkor írd meg (másold be) ide a nem működő képletet, és meg tudjuk mondani, mit hibáztál el a másoláskor.
Szia, kicsit túl könnyelműen jelented ki egy-egy megoldásról, hogy rossz. Miközben elmulasztasz néhány dolgot elmondani arról, hogy milyen módon használod a megkapott formulát.
Eredetileg megadtad, hogy az A1 és A2 cellákban lévő két adatot hasonlítod össze, azután a későbbiekben kiderül, hogy az X oszlopban használod a képletet, ráadásul az egyik adatot másik munkalapon.
Még ez sem lenne baj, de kiderül, hogy a képletet hibásan írod át. És valószínű, hogy a 31508-as hozzászólásomat nem olvastad, valamint az utóbbi képlet kapcsán javasolt módosító javaslatot szintén nem vetted figyelembe.
Hát igen.. csinál egy tartományt a szövegből és a SOR-al ellátja sorszámokkal. Majd ezt a kreált sorszám(cella)tartományt felhasználja a KÖZÉP() függvényben, hogy talál e valamit azokon a karaktersorszámokon...
Szerintem más lesz a hiba. A mint függvényben szereplő SOR(ELTOLÁS($A$1-nek meg kellett volna maradnia, illetve az oszlop értéke mindegy, akár lehet X is, de a sor számának 1-nek kell lennie. Ez ugyanis másra szolgál, nem a te konkrét celláidra vonatkozik, hanem egy számsorozatot képez 1-től az A2 (vagy X2) hosszúságáig terjedő számokból), és ha nem 1-től kezdődnek, akkor hibás eredményt ad.
Másrészt az X5 hivatkozásaidnál van, ahol használod a munkalap hivatkozást (Megoldókulcs!), van ahol nem. Ennek a következményei pedig kiszámíthatatlanok, attól függően, hogy a képletet tartalmazó munkalapon az X5-ben milyen string szerepel.
Ügyes. Nem értem miért gondolod, hogy fordítva működik. A szöveg keres számot, vagy hibát ad. Ha nincs hiba, tehát minden karakter megtalálható, akkor a hibás eredménye hamis, vagyis nulla. 0*1=0. Így a legkisebb szám a 0. Ezért kell bele a nem, ami fordít. A nem(hibás(x)) fogja azt eredményezni, hogy igaz, vagyis 1 az eredmény találatkor, nulla nem lessz, tehát a legkisebb szám 1.
Szia! Szuper a képlet. Kipróbáltam, és működik. De csak abban az esetben, ha a karakterlánc nem hosszabb a referenciacellában található karakterláncnál. Ezért belefűztem egy HA függvényt
Így ha a második cella karaktereinek száma kisebb/egyenlő a referencia cellában található értékkel, lefut a te kódod, minden más esetben (értsd túl sok a karakter), az eredmény 0 lesz.
Nagyon szépen köszönöm!! Három napja szenvedek vele, és képtelen voltam rájönni a megoldásra. Nem ismertem a kicsi, illetve hibás függvényeket. Át fogom őket nézni, hogy megértsem a képletedet. Nagyon nagy segítség volt ez nekem. Még egyszer köszönöm szépen !!! :) :)
Végül csak nekiestem, nem bírtam megállni. István nyomán a következő képlethez jutottam el: =KICSI(NEM(HIBÁS(SZÖVEG.KERES(KÖZÉP(A2;SOR(ELTOLÁS($A$1;0;0;HOSSZ(A2)));1);A1;1)))*1;1)
És ha ezt tömbképletként beírjuk valamelyik cellába, akkor működni látszik. Egyetlen bajom van vele. Pont fordítva működött, mint ahogy elvileg helyesnek láttam volna. Akkor adott nullát, mikor 1-et vártam, és fordítva. Ezért kénytelen voltam beletenni a NEM függvényt. És néhány próbálkozás alapján úgy tűnik, hogy működik, éspedig hosszabb stringek esetén is.
Azért örülnék, ha István, Feri, vagy más tömbképlet szakértő megnézné, hogy jó-e, és miért működik éppen ellentétesen, mint, ahogy elsőre várnám.
Az "Ha A2 tartalmának legalább egyik eleme (karakterlánc) megegyezik az A1 cellában található karakterlánc egyik elemével,..." feltétel elfelejthető, hiszen a mondat második része "...A2 nem tartalmaz olyan karaktert, amit A1 sem tartalmaz,..." ugyanezt fedi le.
Tehát az eredmény akkor 1, ha A1 és A2 egyaránt üres string, vagy teljesül az, hogy A2 nem tartalmaz olyan karaktert, amit A1 sem tartalmaz. Minden más esetben 0.
Eredő Vektor megoldása szerintem az "ha A1 halmaz eleme A2 halmaznak" esetre érvényes, tehát akkor lenne alkalmazható, ha biztosítva lenne, hogy a két cella karakterei azonos sorrendben legyenek, de a mellékelt példa szerint ez nem áll fenn.
Szerintem ez egy tömbképlettel talán megoldható, aminek a trükkjét E.István fórumtársunk másfél éve leírta: http://forum.index.hu/Article/viewArticle?a=140293374&t=9009340. Most nem vágnék bele, mert kellene néhány óra, hogy azzal megoldjam a feladatot.
Office 2016-ot használok magyar nyelven. Makrók nélkül kell megoldanom ezt az egyszerűnek tűnő feladatot.
A megoldandó feladatom a következő: Mondjuk van A1 és A2 cella. Ha A2 tartalmának legalább egyik eleme (karakterlánc) megegyezik az A1 cellában található karakterlánc egyik elemével, de A2 nem tartalmaz olyan karaktert, amit A1 sem tartalmaz, akkor az eredmény legyen 1. Minden más esetben az eredmény legyen 0. Kisbetű/nagybetű nem számít. Úgy is lehetne mondani, hogy ha A1 halmaz eleme A2 halmaznak, akkor igaz, ha nem eleme, hamis
Pl. A1=AB A2=A; eredmény=1 A2=BA; eredmény=1 A2=ABC; eredmény =0
Egyszer már írtam ide, és nagyon segítőkészek voltatok, sikerült is megoldanom a segítségetekkel egy ennél sokkal durvább problémát, úgyhogy előre is köszönöm a segítséget!
1.: cellaformázás: vagy beállítod a szövegszínt pirosnak, vagy adsz neki egy feltételes formázást (de az sz'tem ide nem kell)
2: a C2 cellába (és lejjebb): =HA(B2>=MA()+30;A2;""), szöveggel: ha B2 értéke > vagy = a mai dátum + 30-cal, akkor írja ki az A értékét, ha nem, akkor kussoljon.
Ha azt a részt, hogy "...30 nappal több..." szó szerint értetted (értsd: 31-nél a afelett nem kell kiírnia semmit), akkor hagyd ki a képletből a > jelet.
Azt szeretném kérdezni,hogy tudom azt elérni,hogy ha a B oszlopban szereplő dátum 30 nappal több az aktuális dátumnál,akkor a D oszlopba pirossal írja ki a A oszlopban lévő adatot.
Újra kellett telepítenem a gépemet és azóta az Excelben (2016) nem megy a CTRL+felfelényíl kombó (a többi igen). A hardware nem változott, a meghajtókból elvileg ugyanaz került vissza, eddig is minden naprakész volt. A SHIFT+CTRL+felnyíl se működik, de a felfelé lépkedés meg bármi más a CTRL-al igen (ergo a billentyűk rendben vannak). A Scroll-lock nem aktív, az Extended selection sincs bekapcsolva.
Ha van két excel fájl, amelyek leginkább szöveges adatokat tartalmaznak (termék attribútumokat, leításokat), illetve vonalkódot, hogyan tudom megnézni, hogy mi az ami az egyikben már meg van és hogyan tudom kimutatni excelben, hogy még melyeket kell átmásolnom?
Excel 2007-ben nem sikerül megoldanom egy összetett szűrést.
Egy munkafüzeten belül, 450 db munkalapról, dátum oszlopból (minden munkalap azonos) a mellette lévő oszlopban a hozzá tartozó szám adattal együtt, tetszőleges dátum intervallumok megadásával szeretnék sorokat kiszűrni (pl. egy hónaphoz hány db tartozik) egy másik munkalapon, de abban a munkafüzetben.
Az előző kísérletezésem zsákutca volt. A valódi probléma az lehet, hogy az idegen program valószínűleg sendkeys funkciót használ és ahogy látom ez elrontja a numlock állapotát.
Az első programmal lekérdezem az állapotot. Ez elvileg hibátlanul működik. Helyesen jelzi a billentyűzet állapotát, amennyiben azon kapcsolgatom a numlock-ot.
Majd az idegen program fut valamikor. Mondjuk a második programot egyszer futtatva - a numlock bekapcsolt állapotában - előidézi a problémát. Ezzel azt éri el, hogy az első program hibás státuszt ad vissza. Bekapcsolt állapot esetében azt mondja, hogy kikapcsolt és fordítva. Így az én programom hibás státusz alapján fut tovább.
Van más módja az állapot lekérdezésnek, ami nem hibás eredményt adna?
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Szia, ha ez a mondat, hogy "...nem a bővítmények könyvtárból indítják, hanem simán rákattintanak" azt jelenti, hogy a munkafüzet megnyitása egyben az elindítást is jelenti, akkor a nyitottság meglétének tesztelése megadja a választ:
Sub nyitva()
Dim munkafuzet As Workbook
On Error Resume Next
Set munkafuzet = Workbooks("Minta.xlam") ' Ha nincs nyitva, hibát ad
Sziasztok! Makróból ellenőriznem kellene, hogy el van-e indítva egy „minta.xlam” bővítmény. Erre két megoldással próbálkoztam.
Megnézni, hogy van-e ilyen ablak, munkafüzet vagy bővítmény. Nem járt sikerrel. Az ablak nem látható és a bővítmények között sem sorolja fel, mert nem a bővítmények könyvtárból indítják, hanem simán rákattintanak. Ebben az esetben „for each bovitmenyek in addins” ciklusban sem jelenik meg. A VBA editorban viszont látszik ez a bővítmény.
Másik ötletem az volt, hogy megnézem létezik-e a bővítmény által létrehozott új menü, vagy az új menüben szereplő ikonok a menüszalagon. Ezzel sem jutottam sehova mert nem tudom lekérdezni, hogy milyen menük vannak a menüszalagon (ribbon). A neten pár nap alatt nem találtam erre semmilyen parancsot, de lehet csak rossz helyen kerestem.
Valakinek van valami ötlete, vagy egy szuper parancsa?
Érdekes, nekem egymillió # jelet ír, akármilyen széles az oszlop, de nekem régebbi Excelem van. Valószínűleg másképp kezelik a negatív időpontot.
Azt értened kell, hogy az Excel egyáltalán nem kezel időtartamokat, csak időpontokat. Ez egy hiányossága, de ez van. Az 1 napnak megfelelő dátum 1900. január 1., ennél régebbit nem képes kezelni, mert valamikor Redmondban olyan usereket álmodtak meg a termékükhöz, akiknek erre nincs igényük. (Nemcsak szocialista embertípust feltételeztek már a történelemben, hanem MS-user embertípust is.)
A 02:30 valójában 1900. január 1. 02:30, ezt formázással láthatóvá lehet tenni.
A két időpont különbsége nem időtartam, hanem szintén időpont, de értelmezési tartományon kívül. Ezért tetszés szerinti hülyeséget írhat ki, nekem kereszteket, neked hibás számot.
Az egyik megoldás, hogy mindig teljes dátumokat írsz, és formázással elrejted. A másik egy HA függvény, ami hozzáad egy napot a kisebbítendőhöz, ha az nagyobb a kivonandónál.
Szia Delila10! Köszönöm, ez az. Már emlékszem is, hogy valahol már találkoztam is ezzel a módszerrel. (Sajnos az Fórum keresővel viszont nem találtam rá!)
Van egy oszlopom számértékekkel. Segítséget várok tőletek arra, hogyan tudnám ezeket az értékeket makrók nélkül - egyetlen cellában, vesszővel elválasztva - (vízszintesen) felsorolni? A transzponált cellák összevonása csak egyetlen értéket hagy meg, a transzponált értékeknek egy újabb cellába történő összefűzése viszont - sok értéknél - nagyon macerás (az újra bevitel szinte gyorsabb.) "Szövegből oszlopokat" könnyen lehet csinálni, de "Oszlopból szöveget" parancsot nem találok sehol, pedig úgy emlékszem, hogy valamelyik korábbi Excelben még volt ilyen parancs. (W81/Excel2013)
Igen, csináltam úgy is kezdetben, hogy kevesebb adatból készüljön a diagram. De ha az A34:B41 területet nem hagyom így, hanem táblázattá alakítom, akkor a dátum oszlopot már nem engedi bevonni. Gondolom ha egymás mellé tenném az oszlopokat akkor engedné, de én szeretném így hagyni, ha van rá megoldás. Egyébként a táblázattá alakítást nem is lehet elhagyni ahhoz, hogy működjön? Nem elég, ha csak így hagyom, ahogyan a képen is van? Mert ott még nincs átalakítva.
Az A34:B41 területet alakítanám táblázattá, és ebből hoznám létre a diagramot. Maradhat mellette a szervizköltség mibenléte, de jobban átláthatók az értékek az ábrán, ha nincsenek túlságosan elaprózva. A szerviz mindig más lesz (feltehetően).
Így néz ki a kis tákolmányom. Sajnos egyik módszer sem működik rendesen, vagy csak én bénázok. Gondoltam ha beillesztem a képet, talán érthetőbb. Az lenne a cél, hogy ha tovább írom a táblázatot a 42. sortól, akkor azok az adatok automatikusan kerüljenek bele a diagramba. Sosem csináltam még ilyet, most ismerkedem ezzel az egésszel :)
Ha az adataid sima felsorolásban vannak, akkor minden alkalommal újra meg kell adnod a forrást a diagramon.
A listán állva beszúrás, táblázat (rovatfejekkel, ha van címsor). A táblázat legyen a diagram forrása. Ezután minden bővítés automatikusan megjelenik a diagramon.
Nagy előnye még a táblázattá alakításnak, hogy az újonnan bevitt sorok öröklik a fölöttük lévő sorok képleteit, formázásait, esetleges érvényesítéseit is. Ebben az esetben nem kell a képleteket feleslegesen előre lemásolni 5000 sorba.
Egyszerű kérdésem lenne, de nem tudom rá a megoldást. Van egy táblázatom, amiből kimutatás diagramot készítettem. Azt hogyan tudom megcsinálni, hogy ha a táblázatot folytatva az üres mezőkbe adatokat viszek be, akkor azok is (automatikusan) megjelenjenek a diagramon/kimutatáson? Mert bárhogy csináltam nem jöttem rá. Így aztán hiába írok hozzá bármit is a táblázathoz, csak akkor jelenik meg az új diagramban, ha a régit törlöm és csinálok egy újat. Természetesen ekkor a már új adatokat tartalmazó cellákat is kijelölöm. De nem hiszem, hogy ennek így kéne működnie. Tud segíteni valaki? Köszi előre is!
A vízszintes összevonás könnyen kicselezhető formázással. Beírod az első cellába a szöveget, kijelölöd a tartományt, aminek a közepén szeretnéd látni, majd Cellaformázás, Igazítás, Vízszintesen: a kijelölés közepére. Ehhez vittem is be egy kis makrót a personalba, és kitettem hozzá egy ikont.
Túlzásba tényleg nem kell vinni, de van, amikor hasznos, főleg fejlécekben. Én használom máshol is, de az is igaz, hogy nálam az Excel-táblázat a végtermék, a feldolgozás eredménye, és nem azt akarom tovább feldolgozni.
Az évek meghozzák az eredményt. Minél nagyobb a szervezet, annál lassabban. Még akkor is gondolkozhatsz a bemenet és a kimenet szétválasztásán (makró vagy másik munkalap), és akkor kecske is és káposzta is. Sok sikert!
Kösz a tanácsokat; pont ilyesmikkel próbálkozom, csak hát rengeteg előállítandó táblázatot bizony nem lehet megváltoztatni; csak alkalmazkodni lehet holmi régi szabvány előírta formához.
A szabványok átiratása pedig túlnő az én hatáskörömön; ehhez én roppan pici szürke nyúl vagyok..:))
...azért itt-ott sikerül néha előbbre jutni és (legalábbis informatikailag) szakszerűbb állapotokat elérni...:))
Több a kára, mint a haszna. Esetleg esztétikai célt szolgálhat, mást nem. Nem feldolgozható egy egyesített cellákkal megtűzdelt táblázat. Ezer okot tudnék ellene, mellette talán egy-kettőt.
Általánosságban használják azok, akiknek az excel = egy "kockás" füzetlappal
Rengeteget szenvedtem a munkahelyemen hasonló jellegű problémák miatt. Amit tanácsolni tudod:
1. Mérd fel, hogy mi a valódi feladat, mi az, amit a kolléganőknek meg KELL csinálniuk. A színezés pl. nem az.
2. Állíts elő nekik egyentáblázatokat, amikben mindent levédesz jelszóval, és csak azt tudják módosítani, amit tényleg kell nekik.
3. Tegyél bele olyan funkciókat, amit te látsz, hogy nekik hasznos lesz, de ők nem tudták, hogy megoldható, és könnyít a munkájukon (ez azért is jó, hogy elfogadtasd velük, amit csinálsz, így könnyebben kötélnek állnak).
4. Vidd keresztül az akaratodat, hogy ezeket kell használni.
Nekem ezzel a módszerrel sikerült redukálni a problémahalmazt.
Az alternatíva, hogy adatbázisba tereled a feladatot, és programmal állítod elő a kimenetet. Köztes megoldás, hogy szabványos Excel-táblázatból makró generálja a jelentést.
A halálom (informatikai rémálom), amikor olyan táblával kell foglalkozni, amit telepakoltak egyesített cellákkal, de nem lehet mit tenni, ha a kolleganőknek az (is) feladatuk, hogy az elöljáróiknak előírt alakú nyomtatványokat állítsanak elő.
Na most sokan nálunk szeretik ráadásul kiszinezgetni, mindenféle dizájnnal ellátni a tábláikat és sokszor egyszerűbb nekik a formátummásolóval átvinni a cellatulajdonságokat, mint egyenként állítgatni
Így viszont belefutnak többszörr is az alábbi "jelenségbe"...
Csak kíváncsiságból - illetve óvatosságra intés okán, ha valaki nem tudná:
Egy kérdés - nem tudom, ez most hiba-e vagy ennek így logikus működnie. Én mindenesetre hibaként tekintettem rá, ugyanis hozzá nem értők esetében - akik a képernyőn lévő (vagy a nyomtatón megjelenő) adatokat tekintik hitelesnek komoly tévedésekez okozhat.
A következőről van szó:
Látható, van egy összegem (SZUM függvénnyel), minden OK. A C2-C5 cellák cellaegyesítéssel egytelen cellának minősülnek ugye. No már most: ha kijelölöm a patkánnyal a B2-B5 cellákat és megnyomom a cellaegyesítés menüpontot, a masina figyelmeztet, hogy el fognak veszni az értékek és csak a bal felső cella tartalma marad meg az egyesített cellában. De viszont ha kijelölöm a jobb oldali egyesített cellát és azzal a bal felső sarokban lévő seprűvel (formátummásoló) átviszem a formátumot a B2-B5 cellákra, minden figyelmeztetés nélkül egyesített cella lesz (ld. második kép), a benne lévő érték 1, miközben "alatta" ott maradtak az eredeti cellatartalmak!
Ehhez hasonló problémával úgy találkoztam, hogy egy Excelhez nem nagyon értő munkaerő hogy szebbé (áttekinthetőbbé) tegye a táblázatát, itt-ott egyesített cellákat állított elő ezzel a seprűvel, aztán nem értette, miért nem stimmelnek az összegek
Hű, a mindenit, csak kapkodom a fejem, hogy ilyen lehetséges!
Ezt a nyelvet nem ismerem, kicsit próbálkoznom kellett, hogy átírjam PostgreSQL-re, nekem így érthetőbb:
WITH x AS ( SELECT x FROM (VALUES('0'),('1')) AS y(x) ) SELECT x.x as "A", x2.x as "B", x3.x as "C", x4.x as "D", x5.x as "E", x.x ||x2.x || x3.x || x4.x || x5.x as binary FROM x, x AS x2, x AS x3, x AS x4, x AS x5;
Nem ciklusban, hanem a 20bit descartes szorzatával kell a kombinációkat előállítani. Tömbökkel gondolkodva. Erre inkább egy fejlettebb lekérdezőnyelv alkalmas szerintem, pl. MSSQL 2008-astól
Gyakorlatilag ez egy önmagával joinolt tábla, kiterjeszthető 20 bitesre. Persze a 10-10 bit 0/1 szűkítést is még le kell képezni benne. (Én ezt simán megszámolnám és szűrném egy where záradékban)
Lehet, hogy van hasonló VBA-s megoldás erre, de szerintem jó kiindulási alap.
van egy kérdésem, ami nem kimondottan Exceles, de remélem támad valakinek egy jó ötlete.
Van egy 20 bites bináris számom, és szeretném villámgyorsan végigpörgetni egy ciklusban az összes olyan lehetőséget, ahol a 20-ból 10 bit 1-es, a többi 10 pedig 0-s.
A feladatot megoldottam ugyan egy favágós léptető algoritmussal (amely az aktuális számértékben for...next ciklussal megnézegeti az egyes bitek állását, kijelöl bizonyos kulcspozíciókat, aztán ezekhez képest ártendezi a biteket és visszatér az új értékkel), de ez minden csak nem villámgyors. Az a sejtésem, hogy léteznie kellene egy elegáns módszernek, amely aritmetikai és bináris (AND, OR, XOR) operátorokat használ a léptetéshez, de nem jövök rá, hogy kellene csinálni. Van valakinek javaslata? Egészen vad ötletek, vagy fílingek is érdekelnek, hátha tovább lehet vinni.
"A formula that contains the SUMIF, SUMIFS, COUNTIF, COUNTIFS or COUNTBLANK functions may return the "#VALUE!" error in Microsoft Excel.
Note This behavior also applies to the Dfunctions, such as DAVERAGE, DCOUNT, DCOUNTA, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, and DVARP. OFFSET and INDIRECT functions also have this behavior."
A csatolások, hivatkozások frissítése képletfüggő. Néhány példa:
Alap műveleti jeleknél (+-*/) és SZUM, FKERES, INDEX képletnél nincs probléma.
SZUMHA, SZUMHATÖBB csak akkor számol, ha nyitva van a másik tábla, egyébként #ÉRTÉK! hibaüzenet
INDIREKT csak akkor számol, ha nyitva van a másik tábla, egyébként #HIV! hibaüzenet
Ha valóban ez a problémád, akkor át kell képletezni és olyat használni, aminél működik. Amennyiben más képlettel is megoldható. Ha nem, akkor sajnos meg kell nyitni a többi táblát is - akár csak olvasásra - egy automatikus (Workbook_Open) makróval.
Az az igazsag, nehany alkalmat leszamitva (bar ezek leginkabb assembly programozashoz kotodnek) mindig kiderult, hogy en vagyok a seggfej es a gepnek van igaza, de most akkor is bosszant....es tudni szeretnem, miert...illetve miert nem...
Nem tudnál feltenni 3 mintafájlt a google drájvodra, és elküldeni a linkjüket. Persze nem a bizalmas adataidat, de annak egy leegyszerűsített változatát mindössze 2-3 rekord 2-3 oszlopával. És persze a hibát tartalmazó összesítővel. Hátha úgy könnyebben sikerülne megtalálni a hiba okát.
Kiszedtem az összes makrót - úgy sem sikerült...:((
Na jó, köszönöm azoknak, akik foglalkoztak a béna problémámmal, feladom, így jártam; megoldom programmal és kész, felülemelkedem azon, hogy az Excel-táblám nem úgy működik, ahogy kellene....
Próbáltam; összehasonlítottam az előző kísérlet - jól múködő - fájlával, pont ugyanolyanokra állítottam mindent a beállításoknál, mégsem...:(
Aztán:
Bár van temérdek munkalapja ennek a nyüves alkalmazásnak, minden egyes munkalapot átmásoltam egy teljesen új fájlba, akkor sem sikerült...:(
Mivel makróval simán áthidalom ezt a gondot (bár jobb szerettem volna a kapcsolt tartalommal megoldani, feleslegesen nem szeretek makrókkal megtűzdelni egy Excel-táblát), most már csak pusztán kíváncsiságból érdekelne, miért nem sikerül, mi a túróért nem frissít; lehet, azért, mert egyébként van benne egy halom mindenféle makró, ráadásul rengeteg eseményvezérelt makró?
Most elkezdtem kísérletezni; értem már mire gondolsz és miért kérdezted..:)))
Csináltam négy fájlt és a legelsőben 3 cellában csináltam 3 hivatkozást a másik három egy-egy mezőjére, beleírtam a cellákba valamiket és elmentettem mindent. Majd újra kinyitottam mindháromfájlt, átírtam a megfelelő cella tartalmakat és újra becsuktam őket.
Amikor a kapcsolt tartalmakkal rendelkező fájlomat kinyitom, szépen annak rendje s módja szerint megkérdezi, akarom-e a frissíteni a kapcsolt cellatartalmakat és ha azt válaszolom igen, simán megjelennek a megvéáltoztatott cellatartalmak - anélkül, hogy látnám, hogy a háttérben kinyitná a 3 fájlt!
Na ezt nem csinálja az én fájlom - nem frissülnek a kapcsolt tartalommal rendelkező cellatartalmak, csak akkor, ha egyenként én magam kinyitom a fájlokat, ahonnan adatokat várnék.
Egy Excel-fájlt: kinyitni, megnyitni, használatba venni, aktívvá tenni, a "Workbooks.Open" parancsot egérbillentyű megnyomásával a menüből kiadatni, stb.
Mire gondolsz, hogy kellene megfogalmaznom, amikor egy Excel-fájlra kétszer rákattintok a bal egérgombbal az intézőben?
Valahogy úgy képzeltem (régről legalábbis így emlékeztem), hogy van arra lehetőség, hogy anélkül frissüljenek a cellatartalmakban a hovatkozott cellák, hogy kinyitogatnám a fájlokat
Megkérdezi egyébkként, hogy frissítsem-e (illetve beálíltottam, hoyg kérdezzen rá), de akármit válaszolok, akkor is az "#ÉRTÉK!" marad a cellákban és kénytelen vagyok megnyitogatni a fájlokat - vagy ott az adat fülön a Hivatkozások megnyomásakor megjelenő ablakban vagy csak úgy a fájlkezelőben egyenként.
(Úgy emlékeztem, láttam már valahol egy Excel-fájlt, ahol vagy 30 kapcsolt táblából jöttek az adatok anélkül, hogy azokat meg kellett volna külön nyitogatni)
(Najó, hagyom a francba ezt a hitt/remélt beállítható automatizmust - bár furcsállom hogy nem lehet automatizálni, és a munkalap belépés eseményre inkább írok egy makrót és berakom programból közvetlenül a másik két fájlból kiolvasott értékeket.)
Miért is nyitná ki automatikusan a másik két fájlt, ha nincs ilyen makró benne.
Csatolással vannak benne az adatok, akkor nem is kell kinyitni őket.
Adatok menücsoport Kapcsolatok - az összes frissítése.
Ugyanott a Hivatkozásokra kattintva megjelenik egy párbeszédablak, annak a bal alsó oldalán van egy kapcsoló Frissités automatikus címmel. Kapcsold be.
Ezek után a biztonsági beállításoktól függően meg fogja kérdezni, hogy akarod-e frissíteni.
Ha nem kapcsolod be, akkor az előző pont szerint frissíthetsz
Van egy "Bevétel", egy "Kiadás" és egy "Összesítő" táblám külön-külön
Az "Összesítő" Excel-táblában vannak olyan cellák, amelyek tartalma az előtő két táblából jönne...csak nem jön, mert ha kinyitom az "Összesítő" táblát a mondott helyeken "#ÉRTÉK" tartalom van - azaz nem nyitja ki a háttérben a másik két táblát, hogy frissítse a cellák tartalmát.
Miért nem nyitja ki?
Mit sikerült át- vagy beállítanom, hogy csak akkor lesz értelmezhető tartalom az adott cellákban, ha kinyitom mindkét fájlt?
Van egy nagy Excel tábla, ami 18 év adatait tartalmazza havi bontásban, éves összesítőkkel. Van két grafikon:
az első az utóbbi 4 év havi adatait rajzolja ki (4 sáv);
a másik a 18 és éves összegéből rajzol egy grafikont (egy sáv).
Nagy a táblázat, ezért a 2015 előtti oszlopokat elrejteném (Adatok -> Csoportosítás). A gond az, hogy ilyenkor az éves összegeket rajzoló grafikon is csak 4 évet mutat 18 helyett. Rá lehet venni valahogy, hogy a rejtett adatokat is mutassa?
Valamit arról, hogy mi választja el a 4 adatot egymástól? Esetleg azonos hosszúságúak az egyes részek? Addig is nézd meg az Adatok->Adateszközök->Szövegből oszlopok lehetőséget! Ha ez jó, akkor jelöld ki a teljes érintett területet, és indítsd el a feladatot!
Lehet-e olyat egy-két mozdulattal megoldani, hogy egy cellában lévő 4 adatot (szöveg és számok is) 4 oszlopba szétdobja? A teljes táblázat 500+ sort tartalmaz, ezeket kellene szétdobni az egyesével másolgatás helyett.
Tételezzük fel hogy valaki csak lászelepet szeretne venni. Ez esetben a házi vízmű valamint a tartály illetve azok kiegészítőjének is szerepelnének a mentés munkalapon. Köszönöm szépen a fáradozást! Nagyon sokat segítettél
=SZUM(C17:C21) függvény kiegészítéséhez szeretnék segítséget kérni. Amennyiben az összegzés bármely eleme negatív, akkor az negatív értékről 0-ra kerekítendő. Pl. C17 = - 1.000, akkor C17= 0 és így összegezze a megadott tartományt. Segítségeteket előre is köszönöm.
Köszönöm szépen a segítséget! Maradok és elviselem a Hiányzik részt mert egyszerűen nem bírok vele. Már sok szám van a fejemben és képlet stb. nem tudom kezelni nem erre van rá állva az agyam. Már azt se tudom van e agyam:) vagy ha van is nem erre lett kitalálva. Megértem a beillesztendő adatokat de amikor beillesztem és a legördülő listából kiválasztom az üres értéket ismételten bejön a hiba üzenete. Már megbarátkoztam vele és nem teszem ennyire automatikusra mert 2 napom ment rá eddig annyit meg nem ér az egész. Amennyiben az előző kérésem megoldható lenne azért igazán hálás lennék (azaz a kijavított file visszatöltése) . Köszönöm mindenkinek a segítséget és a gyors reagálást.
Be kell vallanom meghaladta a képességem már ez a táblázat is. A makró gombok check boxok részét még "értem" is azzal nincs gondom. A K oszlopot amint felfedem végem van mert tele lesz hibával. Megtennéd, hogy a feltöltött fileba az általad leírtakat "belejavítod" és a már javított excel file-t kapnám vissza konyhakészen? Nagyon hálás lennék érte mert bár tudom mit szeretnék de 2 napja vért izzadok azzal ami nektek zsigerből megy. Köszönöm.
FFeri válasza mellett felhívom a figyelemdet, hogy a HIÁNYZIK hibaüzenet a (rejtett) K oszlopban lévő HOL.VAN (angolul MATCH) függvénynél keletkezik, a többire csak továbbterjed.
Ezen kívül szerintem rögzítened kellene a HOL.VAN illetve INDEX függvények esetében a kereső tartomány koordinátáit.
Pl.
L3 =INDEX(C5:C14;K4;0)
L4 =INDEX(C6:C15;K5;0)
pedig nyilván a kereső tartomány nem változott meg. Szóval ez így nem az igazi...
A csekboxokra kattintva nem fut le semmi. A másodikhoz nincs is makró rendelve, az elsőhöz van ugyan, de az a makró nincs a munkafüzetben. Távolítsd el a hivatkozást, és akkor azt sem fog kiabálni. (Jobb katt a csekboxon, aztán makró hozzárendelés, aztán kitörölni ami ott van.)
Az adott munkalaphoz nagyon szépen köszönöm a segítséget.
J4:J8 oszlop adatait legördülő listából választom ki. Ezek alapján számítódik ki minden. A legördülő lista első eleme viszont tartalmaz üres részt is mivel van , hogy az nem kell a szetthez. Azonban ha kiválasztom az üres mezőt értelemszerüen a L M N O P oszlopokban a #HIÁNYZIK adatok jelennek meg.
A #HIÁNYZIK problémát végigpróbáltam a google segítségével de sok esetben csak a lookup vagy fkeres stb dolgokra vannak megoldások. Feltételes formázással is próbálkoztam de sikertelenül. Meg tudná nekem valaki formázni a táblázatot? Vagy a makróban kell módosítást végrehajtani?
Amennyiben a J5 J6 J7 cellák adatainak valamelyikére vagy egyikére sincs szükségem akkor összeomlik a számítási mező többi adata. Hogyan lehetséges ennek kiküszöbölése. Az adott file innen tölthető le.
Feltételezem, hogy a legördülőd érvényesítés. A példámban az érvényesítés adatai a Munka1 lap F oszlopában, F2-től kezdve vannak, F1 a címsor. A tartományt táblázattá alakítottam (Beszúrás, Táblázat, Táblázat rovatfejekkel). Kijelöltem F2-től le, az utolsó sorig, és Poz nevet adtam neki.
Az érvényesítést egy másik lap B oszlopába vittem be. Forrás =Poz, az érvényesítés párbeszéd doboz Hibajelzés lapján kivettem a pipát az Érvénytelen adat beírásakor hibaüzenet jelenjen meg négyzetből.
A bevitel lap lapfülén jobb klikk, Kód megjelenítése. Ezzel bejutottál a VBA szerkesztőjébe. A jobb oldalon kapott nagy üres felületre másold be a lenti makrót. A *** jelzésű sorokban kell javítanod. Az elsőnél a 2 helyére írd annak az oszlopnak a sorszámát, ahol az érvényesítésed van. A-nál 1, C-nél 3, D-nél 4, és így tovább. A többi jelölt sorban a Munka1 helyére annak a lapnak a nevét írd, ahonnan az érvényesítésed az adatokat veszi. Az F-ek helyére az adatokat tartalmazó oszlopod betűjelét add meg. A Password:="jelszó" résznél a valódi jelszavadat írd be.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim usor As Long
If Target.Column = 2 Then '***
If Application.WorksheetFunction.CountIf(Munka1.Range("F:F"), Target) = 0 Then GoTo 1 '***
Sajnos a beillesztés után Makró nem futtatható... üzenetet kapom. Az engedélyt ezek után megadtam elmentettem makróbarát verzióban is de sajna nem működik. Kell még valamit tennem?
lehet rosszul fogalmaztam, vagy szimplán nem értem.
tehát:
van egy legördülő listám, ami tartalmaz 300 munkaköri pozíciót. hogyan tudom azt megoldani, hogy a felhasználót igénylő kolléga ha nem találja a megfelelő pozíciót, fel tudjon venni egy 401.-ik pozíciót anélkül, hogy belepiszkálni a legördülő listába, hiszen az lehet hogy védett munkalapon van.
ez valószínűleg egy adatérvényesítés, ami egy listából veszi az adatokat. Ez a lista lehet cellatartomány az excelben valahol, de lehet konstansként is megadva.
Nézd meg...
Adatok / Érvényesítés
Ha a listát bővíteni akarod, akkor azt gyökereiben kell megtenned - tehát ott kell változtatnod, ahonnan listát veszi az adatérvényesítésed
Excel legördülő listával kapcsolatban lenne egy kérdésem. Van több legördülő menü, amely egy másik munkalapból szedi az adatokat, hogy tudom megoldani, hogy manuálisan is írhat a cellába a felhasználó? Illetve, hogyan tudom azt megoldani, hogy amit beír kézzel a felhasználó az valahogy rögzüljön azon a munkalapon ahonnan a legördülő lista veszi az adatokat, és legközelebb már ez a szöveg is megjelenjen a legördülő menüben.
Az egyes változásokat szeretném lementeni dátumozva úgy hogy azok a későbbiekben megmaradjanak. Tehát ha a mentés gombra kattintok akkor az a dátum vagy idő szerint legyen lementve. A másolás is jó de ha egy nap többször kell ugyanazt a szettet mentenem félő hogy nem emlékszem rá hogy ez el lett e mentve stb. A NOW részt valami miatt nem érti. És ami furcsa még nekem hogy nincs Sub rész. Ebben teljesen laikus vagyok. Egy ilyesmit már találtam
Sub masolas_es_beillesztes()
Range("J1:M8").Copy Range("B18:D26").PasteSpecial
End Sub
End Sub
ahol ugyan kinyerem az adatokat de a beillesztésnél ez fogad. Itt ugye még dátum sem szerepel.
És a lényeg hogy a dátum helyett szerintem az idővel jobban lehetne boldogulni az azonosítás miatt. Pl. ha 5 percenként mentek akkor a dátum lesz egy azonosító (ID) ami alapján új "tömbben" jelennének meg a mentett adatok egymás alatt.
Elakadtam és segítséget szeretnék kérni. Adott a táblázat ahol a J4:J8 oszlopban lévö adatok változnak minden egyes kiválasztás után. Az egyes változásokat szeretném lementeni dátumozva úgy hogy azok a későbbiekben megmaradjanak. Hogyan lehetséges ez? Egy mentés gombra gondolok ahol egy új munkalapra (Mentés Munkafüzetre) exportálva lennének az adatok a kiválasztás feltételei szerint lementve. A mentés nem kell hogy automatikus legyen hanem a gombra kattintva lementödnének a tartomány adatai. Itt már meghaladta a képességem ezen gomb programozása. Köszönöm!
A rendszergazdát kell megkérni, hogy írjon egy időzített scriptet, ami megadott időnként ellenőrzi a megadott könyvtárban levő táblázatokat, és ha az utolsó ellenőrzésnél frissebb a dátumuk, akkor küld e-mailt. Így nem függ az eredmény attól, hogy a dolgozó elfelejti-e megnyomni a gombot.
Egy olyan kérdéssel fordulok hozzátok hogy meg lehet e valósitani azt excelbe hogy
Adott egy excel fájl. Van 4 oszlop(dátum,indok, megvalósitásra való javaslat, státusz). Ha egy sorba írnék valamit pl az indok oszlop alá hogy "keveredés".
Azután elmenteném de kellene egy hivatkozási gomb féleség amire ha rákattintok (pl az A5be) és az küldene dgy emailt két adott email cimre hogy írtak az adott táblázatba.
Hogy világos legyen. Csoportvezető vagyok. Napközbe vannak problém!k amiket váltásnál nem biztos hogy az ósszeset át tudom adni a t!rsamnak. De ha ebbe a tábl!zatba vezetem ÷s kapna jelzést akkor tudná mi a szitu.
Belső outlook van....
Beszurás/hivatkozást probáltam csak m!st akarnék kiprobálni :)
Abban szeretném segítségeteket kérni, hogy az alábbi makrót, hogy tudnám úgy használni, hogy a kerekítést ne csak az aktív cellában hajtsa végre, hanem az egész kijelölt területen:
Sub ftkerekit() aktualis = ActiveCell.Value tizedes = aktualis - Int(aktualis)
If tizedes >= 0.51 Then ActiveCell.Value = Int(aktualis) + 1 Else If tizedes <= 0.5 Then ActiveCell.Value = Int(aktualis) + 0 Else ActiveCell.Value = Int(aktualis) End If End If End Sub
Tökéletesen működik ha egy cellán állok, de ha több cellát jelölök ki sajnos nem működik. Teljesen kezdő vagyok makrók terén.
Segítséget kérnék munkaidő+túlóra számoláshoz, megvan a munkakezdés ideje 7:00:00 és a munkavégzés 17:00:00, hogyan lehet az kiszámolni, hogy a 8 árát meghaladó időhöz +150%-ot hozzáadjon.
Álljon itt még egy függvényes ék egyszerűségű UDF:
Public Function MultiCat(start As Double, n As Double, Optional ByVal sDelim As String = ",") As String For i = 1 To n MultiCat = "0" & start + n - i & sDelim + MultiCat Next End Function
=MultiCat(1234567;8;",")
=MultiCat(Kezdő, elemszám, delimiter)
Ennél gyorsabbat, egyszerűbbet nem lehet készíteni.
Az E oszlopba a plombák alá írj be egy 7 jegyű számot! (A 0-t a program teszi elé)
Ezután kapsz egy kérdést, hogy hány plomba legyen. Alapértelmezés a 6, mert úgy látom, ez a leggyakoribb. Ha ettől eltérő kell, akkor javítsd az adott sor esetében.
Aztán a program generálja a következő sorba a következő sorszámot. Itt is beírod, hány darab kell.
Ez folytatódik egészen addig, amíg 0 db-ot nem kész. Akkor megáll.
Ha új kezdőérték kell, akkor folytathatod azzal a következő soron.
Aztán ha kész, akkor fogod és a kitöltött E oszlopot bemásolod a felhasználónak küldendő munkafüzet "E", vagy ha nem oda kell, akkor a megfelelő oszlopába.
Ha valami hiba van, vagy szépíteni kell, akkor este tudok foglalkozni a dologgal.
Én makrót tartalmazó munkafüzetet nem küldenék ügyfélnek. Több ok miatt. Az egyik, hogy megnyitáskor különböző dolgokat kérdezhet az excel, amit nem biztos, hogy érteni fog. Nem biztos, hogy tudja mit kell engedélyeznie és hol kell azt beállítani.
Itt a nyomtatási területen kívül kellett két segédoszlop, ez elrejthető.
Vagy csak arra használod, hogy az eredeti fájlba átmásold értékként...
Erről beszélek. De valahonnan csak tudod. Remélem, nem telefonon diktálják be, hanem valahonnan a fájlból (más szóval a munkafüzetből) olvasod ki. Talán egy másik fülről (más szóval munkalapról). Ezt kellene megmondanod, és akkor meg lehetne oldani, hogy automatikusan minden sorba pont annyit írjon, amennyi kell.
Ha a munkafüzetet fel akarod tenni, akkor a legkézenfekvőbb lehetőség, ha használsz Google fiókot, és az ingyenes 15 GB-os tárhelyedre (Google Drive) feltöltöd, és itt csak azt a linket adod meg, amivel ezt az egy fájlt le tudjuk tölteni, anélkül, hogy a Google Drive-odon lévő többi adatodhoz hozzáférnénk.
Ha ez nem megy, akkor regisztrálj mondjuk a data.hu oldalra: https://data.hu/, és ide tedd fel. A letöltőlinket meg küldd el.
De a 3. kérdést csak nem olvastad el. Honnan tudod, hogy egy vagonhoz (egy sorban) hány plomba kell? Ha ez a kapott Excel (egy "l" a végén) fájlodból megtudható, nagy mértékben megkönnyítheti a munkádat. Nem kellene soronként megadnod (ld. E oszlop), hogy hány számot írjon ki a program vesszővel elválasztva, hanem lehetne automatizálni.
Szia, az olvtársakkal ellentétben én egyáltalán nem tekintettem kötekedésnek a hozzászólásodat, és magam sem kötekedésnek szántam sem a pontosítást a tizedesvesszővel kapcsolatban, sem a "számoló masina hibával dolgozik..." kifejezésben a hiba szóval való egyet nem értésemet.
De szerintem ezeket megbeszéltük, harag nincs. Köszönöm az érdekemben történt hozzászólásokat, de úgy gondolom, hogy sztgyi barátunkkal továbbra is meg tudjuk érteni egymást.
Szerintem itt ezekbe a közismert részletekbe nem érdemes mélyebben belemenni. Elég annyi, hogy a „kettes számrendszerrel dolgoznak” egy szakmailag korrekt megfogalmazás, ha az ember meg akar maradni az Excel-használat absztrakciós szintjén. Ha valaki azt mondja, hogy az autót a motor hajtja, azt se javítjuk ki.
Bevallom, azé' kattintottam most a Zexcellre, hátha pimre valamit pontosít, korrigál azon, amit beírtam. Nagyon élvezem a hozzászólásaidat, és ha más is elolvassa, hátha tisztul a kép ...
Kicsit hosszúra nyúlt az előző hozzászólásom, mert megpróbáltam "pontosan".
Egyébként csak annyit, az elektronikus számoló kütyük nem kettes számrendszerrel dolgoznak, hanem elektromos energiával, feszültséggel ill. árammal működnek. A kettes számrendszer nagyon jól idomul a van áram - nincs áram, ill. a van feszültség - nincs feszültség állapotokhoz, azaz a 0 - 1 -hez. Zseniális volt ennek a felismerése.
"Az Excel, és az összes elektronikus számoló masina hibával dolgozik". Ez így nem szerencsés megfogalmazás. Tekintettel arra, hogy a számítógép kettes számrendszerben dolgozik, ez konverziós hibát okoz. De álljon itt erre vonatkozóan egy bő 4 évvel ezelőtti beszélgetés végeredménye: http://forum.index.hu/Article/viewArticle?a=127906061&t=9009340
A BA63 és a BB63-as cellákban gyakorlatilag 0 van.
A "-1,42E-14" szám egy olyan nagyon kicsi szám, hogy a 0 (nulla) hozzá lépest hatalmas :))))
Ez egy olyan szám, amely 10 hatványaival van kifejezve, és 10-nek a -14. hatványa.
Itt ezen számok cellaformázása "Általános"
Ha a cellaformázásnál a "Szám"-ot választod az "Általános" cellaforma helyett az érintett cellánál, akárhány tizedesjegyig is állítod be, 0-át fog kiírni. Pontosítanék, a jelen esetben, ha a tizedesjegyek számát 14-re állítod, megjelenik egy 1-es a sok-sok nulla után. Ha 15-re, akkor az 1-es után megjelenik egy 4-es is, és így tovább. Persze értelemszerűen, ha ilyen sok tizedesjegyet szeretnél megjeleníteni, az oszlopszélességet meg kell növelni, hogy beleférjen a cellába, mert előfordul hogy ##### jeleket fogsz látni (túlcsordulás)
Ha egész számokat várunk, akkor célszerű a cellaformánál a 0 tizedesjegyet beállítani, esetleg1-et vagy 2-őt.
Az Excel, és az összes elektronikus számoló masina hibával dolgozik, emlékszem, hogy régebbi Excel verziónál be lehetett állítani a számítás "pontosságát". Ezt az én gépemen található 2010-es Excel verziónál nem találtam.
Megoldás még az is, amit Delila is javasolt a KEREKÍTÉS.
Próbáld ki a számformátum átállítását, de az U56-os cellánál is ilyen formátumot állíts be!!!
A táblázatban Február hónapban (táblázat alján a fül) a BA és BB oszlopban az összegző képletek helytelen eredményt adnak. Vagy egész szám vagy egész szám és öttized (pl.: 13 vagy 13,5) lehet(ne) az eredmény. Valaki tud rá megoldást, hogyan alakítsam át a képletet, hogy helyes eredményt kapjak? Jelen esetben a végeredménynek 0-nak kellene lennie.
Igen, találgathatunk, hogy miként töltsük fel az ismeretlen forrásadatokat tartalmazó táblázatot, én mindenesetre várok addig, amíg a kérdező nem válaszol a 31315-ös hozzászólásomban feltett kérdéseimre.
A 31312-ben szereplő kép szerint egyébként a forrás munkafüzetnek egy csomó munkalapja van: Time sheet, Sampling stb. Ki tudja, hogy ezekből mit kell figyelembe venni a plombák értékadásánál.
Ennek egy akadálya van. Az egyes sorokban különböző számú elemből álló sorozatot kell létrehozni. Ha a kérdező megválaszolja, hogy honnan tudjuk, hány elem kell, akkor talán akár tömbképlettel is meg lehet oldani (bár az nem én leszek, mert a technika nincs készségszinten a kezemben).
Viszont tegnap este én is csináltam egy makrós megoldást, és amint megtudjuk a soronkénti elemszám forrását, megmutatom. Aztán persze még az is kell, hogy megtudjuk, hol nem folytonos a lista. A kérdező által küldött mintákban például az alulról számított 6. sor nem folytatása a felette lévőnek.
Írtam rá egy makrót, amit a laphoz kell rendelned: lapfülön jobb klikk, kód megjelenítése. Bejutottál a VB szerkesztőbe, ahol a jobb oldali nagy üres helyre kell bemásolnod a makrót. Előfordulhat, hogy egyes sorok piros karakterekkel jelennek meg, ezeket betűről betűre írd át a billentyűzet segítségével. A füzetet makróbarátként kell elmentened.
Fontos, hogy a D és F oszlop, valamint az E1 cella szöveg formátumú legyen.
Az E1-be beírod az első plomba számát. Az E oszlop többi cellájába az adott vagonhoz (?) tartozó plombák darabszáma kerül. Mikor beírod ezt a darabszámot, a makró az aktuális sor F cellájába beírja a sorozatot.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KezdoErtek As Long, b As Integer, Plomba As String
Dim oszlop As Integer, PillErtek, f As Boolean
If Target.Column = 5 And Target.Row > 1 Then
Application.EnableEvents = False
If Target.Row = 2 Then
KezdoErtek = Cells(1, 5)
Else
Plomba = Cells(Target.Row - 1, 6)
For b = Len(Plomba) To 1 Step -1
If Mid(Plomba, b, 1) = "," Then
KezdoErtek = Mid(Plomba, b + 1, 20) + 1
Exit For
End If
Next
End If
f = False
Cells(Target.Row, 6) = "0" & KezdoErtek
For oszlop = 1 To Cells(Target.Row, 5).Value - 1
For b = Len(Cells(Target.Row, 6)) To 1 Step -1
If Mid(Cells(Target.Row, 6), b, 1) = "," Then
PillErtek = Mid(Cells(Target.Row, 6), b + 1, 20) + 1
Értem, tehát a megrendelő így kéri. Végső soron megoldható a dolog egy makróval, ami ha beírod a kezdő plombaszámot, akkor hozzáfűzi a többieket.
Ehhez válaszolj a következőkre (Ha valamire nemleges a válaszod, akkor írd meg, hogy mi a helyes):
Ha jól értem, te egy olyan munkalapot kapsz, amin csak a D oszlop van kitöltve
Ha jól értem, te beírsz egy plombaszámot
Ebből kellene folyamatos sorszámokat gyártani vesszővel elválasztva. Honnan kellene megtudnia az Excelnek, hogy hány plomba készüljön az egyes sorokban? Mert elsőre úgy néz ki, mintha a D oszlopban a kötőjel utáni szám adná ezt meg, de ez nem igaz, mert a mellette lévő plombák száma nem annyi. Sőt van olyan is, ahol hiányzik a kötőjel.
Ezt az Excel táblázatot módosítod, vagy ebből egy másikat Excel táblát hozol létre?
Azért kérdezem ezt így, mert ha egy sorban a D oszlop mellé írsz egy adatot az E oszlopba, le kell annak törölnie (felül kell írnia) az ott lévő hosszú számsorozatot (ha az valóban ott van).
Nekem ez nem tűnik tipikus Excel felhasználásnak.
Hátha Valaki, aki ezt érti, tud tanácsot adni.
Nekem kicsit zavaros. De próbálom értelmezni, és ha van javaslatom, megírom!
Ebben a formában ne csináld! Az Excel azért van cellákra osztva, hogy azokba kerüljenek az egyes adatok. Ezekkel aztán lehet műveleteket végezni úgy, ahogy te akarod. De az értelmezhetetlen az Excelben, hogy egy cellába írsz 6-8 adatot veszővel elválasztva, és ezekkel végezzen az Excel műveleteket.
Ha elfogadod, hogy szabályosan legyen megoldva a feladat, abban itt fogsz segítséget kapni bármelyikünktől, az eredeti elképzelésed szerinti megoldáshoz nem.
Aztán ha megvannak az adatok külön cellákban - automatizálva az újabb sorszámok kiadását - és utólag szeretnéd összefűzni az egyes cellák adatait egyetlen stringbe, vesszővel elválasztva, az könnyen megoldható.
De ha már így sikerült beolvasni, akkor az Adatok - szövegből oszlopok menüponttal szét lehet szedni külön cellákra.
A képből ítélve - mivel vezető 0-k is vannak a feltételezhetően cikkszámokban - az összes mezőt szövegnek kell kijelölni. Ugyanígy a szövegként való megnyitás esetén is.
Ha esetleg mégsem CSV-ből származik, akkor mentés másként paranccsal mentsd le CSV fájlként (ott lesz a mentés másként listájában), majd nyisd meg az előzőek szerint.
Ez egy CSV (esetleg txt kiterjesztés is lehetséges) fájlból van, ugye? Na ezt nem így kell kezelni, hanem: Adatok menücsoport->Szövegből, majd a megnyíló ablakban megkeresed a beolvasandó szövegfájlt és megnyitod. A megjelenő képernyőn a "Tagolt" szót választod (vagy hagyod meg, ha ki van választva) ->Tovább, majd a megjelenő ablakban határoló jelnek kiválasztod a vesszőt. Ekkor már látod is a szétbontott csoportot, és mehetsz a befejezésre. És ott lesz egy szabályos Excel tábla az oszlopokban az egyes adatokkal.
Húha! Ez eddig szép! De mi ez? A valamelyik cellába írt számok, vesszővel elválasztva (ettől szöveggé váltak) mint egy szöveg megjelennek, de mit szeretnél ezzel kezdeni ?
De én a probléma felvetőjének reagálására várok ...
Azt elfelejtettem megkérdezni, hogy melyik Excel verziót használja, mert vannak eltérések. Nekem a 2010 van meg. Az Excellel a kezdetek óta ismerkedem, sőt korábbi táblázatkezelőkkel kezdtem. De az alapok lényegében megegyeznek, a finomságokban akadnak eltérések. :) :(
"A vessző egy cellában az egész számokat választja el a tört (tizedes) résztől."
Ezt azért pontosítanám. A Windows területi beállításaitól függ, hogy a tizedesjel pont-e, vagy vessző. Abban igazad van, hogy az alapeset a vessző.
Ugyanakkor az Excel speciális beállításainál ezt felül lehet bírálni. Az alapértelmezés az, hogy az Excel a rendszerbeállítást használja, de ezt módosíthatjuk.
Hogyan lehet megoldani egy cellán belüli függvénnyel azt, hogy:
Adott 3 cella különböző értékkel. A függvénynek ki kell írnia, hogy ha A1 cella nagyobb mint 0 akkor A, ha kisebb, mint 0 de B1 nagyobb, mint 0 akkor B viszont, ha A1 kisebb mint 0 és a B1 is kisebb mint nulla viszont a C1 nagyobb mint 0 akkor C. Ha A1 B1 és C1 is kissebb mint 0 akkor D. 2010-es excelt használunk.
A 2007-es verziótól kezdve megtalálod az Adatok menüben a Szövegből oszlopok almenüt.
Fontos, hogy az adatok után legalább annyi oszlop legyen üres, amennyi felé szeretnéd szétdarabolni az adataidat. Kijelölöd a tartományt, és indítod a fent említett "varázslót". Az első ablakban a Tagolt opciót jelölöd be, a következőben a határoló jelnél a szóközt adod meg, befejezés.
Kicsit kísérleteztem különféle hosszúságú szövegek bevitelével. Az alábbi értékek beállítása egész jó, feltéve, hogy az alapértelmezett Tahoma, 9-es méretű karaktereket hagyod meg a kommentekben.
Case 46 To 60: m = 0.7 Case 61 To 80: m = 0.85 Case 81 To 100: m = 1
Érdemes a megjegyzés beszúrása előtt a rongyos régit törölni, mert másképp a meglévő szélességét lecsökkenti. Miért?!
Kipróbáltam, ilyen beállítást nem találtam. Ha növelem a betűméretet, automatikusan növeli a cella méretét is, és következetesen hagy a cellában a szám körül helyet. Pedig ha faltól falig érne a szám, ugyanakkora méretű cellában kényelmesen elférne több mérettel nagyobb is.
Nem túl szép, de talán hasznos megoldás jutott eszembe.
Létrehozol egy adott szélességű megjegyzést, majd egyre növekvő hosszúságú szöveget írsz bele. Minden alkalommal a szöveghez igazítod a magasságot, és megnézed a beállításainál a magasságát.
Így nagyjából megtudod, hány sorhoz (hány karakterhez) milyen magasság szükséges. Természetesen nem mindegy, hogy 10 i betűt, vagy 10 m-et tartalmaz a szöveg.
Ha ezt kitapasztaltad, a Select Case utasításban megadhatod a szélességet.
Select Case Len(Target)
Case 45: m=.8
Case 46 To 60: m=1
Case 61 to 80: m=1.2
End Select
Target.Comment.Shape.ScaleHeight m, msoFalse, msoScaleFromTopLeft
A cellaformázás, igazítás fülön meg tudod adni, hogyan nézzen ki a cellában a beírás. Egyszerre több cellát is formázhatsz, sőt másolhatod is a formázást.
Sziasztok! Van valahol a beállításokban olyan, ahol változtatni tudok azon, mekkora a margó a cellán belül? Kalendáriumhoz csinálnék dátummatricákat, és sokkal nagyobb szám is kényelmesen elférne a kockában, mint amekkorát hajlandó megjeleníteni.
Köszi, igen arra gondoltam ahogy az 1. pontban írtad.
Körlevelet már többször tanultam hogyan csinálunk, csak nem mindennap használom és így elfelejtődik, de asszem Excelben varázsló is végigvezet. Van legális Officeom is otthoni laptopomon, csak rühellem a szalagmanüje, felülete, kezelhetősége miatt, meg hogy fél óra mire megnyílik és a Freeoffice eddig mindig elég volt melóban is mindenre, ráadásul gyors is, de majd ha hazamegyek megpróbálom összehozni vhogy a dolgot, ha nem nagyon van más módszer ilyesmire.
Régen Open Officeba is csinálatam még egy reluxás vállalkozónak, olyat, hogy word doksiba beemelt egy excel táblát csatolt fájlként és ott lenyíló ablakból választhatott méretezési opciókat, ez is eszembe jutott közben, de sajna a Freeoffice azért ennyire nem kvalifikált, csak a fájlikon jelenik meg csatolmányt beszúrva. :)
Na majd kísérletezem... Azt hittem van még trükk ilyesmiket megoldani másképp is, de akkor nem egy hétköznapi probléma ez amire más lehetőségek is adódnának.
Ami a körlevelezést illeti, lehet, hogy jó az elgondolásod, de Excel nélkül nem könnyű. A Freeoffice valóban nem tudja, de az Openoffice tud valami hasonló alkalmazást (körlevéltündérnek hívják, megnéztem, de több idő kellene, hogy kiigazodjak rajta)
Ha tudnád valahogy telepíteni a MS office 2007, vagy magasabb verzióját, akkor tudnék (és feltehetőleg mások is ezen a fórumon) segíteni.
Viszont a leírásod alapján számomra nem egyértelmű, hogy valóban a körlevél funkciót szeretnéd-e használni.
A körlevél alapelve:
1. Létrehozol egy úgynevezett Törzsdokumentumot Word-ben. Ebben azokon a helyeken, ahol az adatot egy másik helyről várod, mezőnévvel helyettesíted. Pl.
Iktatószám: <iii>/2017
Tisztelt <Név>
Az Ön <xxxxxxxx>-i levelére válaszolva tájékoztatom, ....
és majd az iii helyére kerül az iktatószám, a név helyére megszólított neve, az xxxxxx helyére az illető levelének dátuma stb. kerülnek a másik fájlból származó adatok.
A másik fájl többféle lehet, én eddig csak Excel táblákat használtam ilyen célra.
Ha valami ilyesmit szeretnél, akkor valódi Word körlevélkezelőben Excel adatbázissal tudnék segíteni, anélkül nehéz lesz. Más megoldásra nincs ötletem.
If Target.Row = 30 And Target.Column < 8 Then ' Akkor működik, ha a 30. soron és a 8. oszlop (azaz a H) előtt vagyunk
Megjegyzésben odaírtam, hogy mit jelentenek az egyes számok. Ha egyszer módosítani akarod a sor, vagy az oszlopszámot, akkor értelemszerűen javíthatod magadnak.
tudnál abban segíteni, hogy a H30 után ne ugorjon az I6-ba, hanem itt legyen vége az adatrögzitítés lehetősének? (A oszloptól H oszlopig szeretném a fentieket megoldani)
Köszönöm szépen a segítséget. Az általad leírtak szerint sikerült megoldani.
Az lenne a kérdésem, van-e megoldás arra, hogy az A30-as cella után ne a B1-be ugorjon, hanem a B6-ba, és ez így folytatódna. B30 után a C6-ba stb.
A másik kérdésem:
tudnál abban segíteni, hogy a H30 után ne ugorjon az I6-ba, hanem itt legyen vége az adatrögzitítés lehetősének? (a oszloptól H oszlopig szeretném a fentieket megoldani)
Word dokumentumokat kéne létrehoznom, amiben kérdőívszerűen volnának kérdés mezők (pl. táblázatok) és alájuk alanyoktól függően változó válaszok kerülnének, de volnának dolgok, amelyek a szövegen vagy táblázaton belül automatizáltan kéne bekerüljenek. Pl.: adott nap dátuma és a nap neve, alany neve, adatai stb.
Nem tudom ezt hogyan lehetne létrehozni? Először körlevél formulára gondoltam, amit egy excel tábla táplál, de sajna a szoftverem nem ismeri a körlevelet free verzióként. (http://www.freeoffice.com)
Viszont ez nem ugrik a következő oszlop 1. sorára,l csak nem enged lefelé léptetni. Ráadásul állítólag kilépés után elfelejti a korlátozást.
Az általad kért funkcióhoz makró szükséges. Nagyon egyszerű megírni, csak akkor a munkafüzetedet makróbarát munkafüzetként xlsm kiterjesztéssel kell menteni. Ha szeretnél ilyen megoldást, akkor lépj át a VBA képernyőre (Alt + F11), és ott kattints kétszer az adott munkalap nevére, majd a tőle jobbra megjelenő kódterületre másold be az alábbi kódot:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 30 Then Cells(1, Target.Column + 1).Select End If End Sub
Utána térj vissza munkalapra, és próbáld ki. A 30 sorra történő beírás után a vezérlés átugrik a következő oszlop 1. sorára. Ha limitálni akarod, hogy melyik oszlopokon hajtódjék végre az ugrás, az is könnyen megoldható.
Ez nem probléma, ha van mellette egy (akár rejtett) oszlop, amelyikbe a megszűnés kerül, ha ki van töltve, különben a baleset, és ebből az oszlopból számolnál. Én a sebességtől függetlenül így gondolkodnék, mert az egyszerűbb képlet egyúttal karbantarthatóbb is. De ha már működik, akkor maradjon.
Ezt végighúzod a D oszlopon. Amennyiben nincs találat, akkor hibát eredményez, ennek elkerülésére az egészet "burkold be" egy HAHIBA függvénybe =HAHIBA(fenti képlet;"NINCS TALÁLAT")
A legnagyobb Excel guruk segítségét szeretném kérni, hátha tudtok segíteni nekem. :)
Szerintetek lehet olyasmit művelni Excelben, hogy:
Van 3 oszlóp, A, B, és C. Az A oszlóp olyan értékeket tartalmaz, amik a B oszlóphoz kapcsolódnak (PL: A oszlópban városnevek vannak, B oszlópoban meg országok: A1: Budapest, B1: Magyarország, A2: Madrid, B2: Spanyolország, etc etc.)
A C oszlópban ugyanazok az értékek vannak, mint a B oszlópban, viszont előfordulhat hogy van néhány olyan érték is, ami nem szerepel a B-ben.
A kérdés az, hogy lehet egy olyan formulát kreálni, hogyha B és C oszlópban van megegyező adat, akkor a B oszlóp melletti A oszlópban levő adatot bemásolja egy negyedik, D oszlópba?
Például:
A1: Budapest B1: Magyarország C1: Csehország D1: Prága
A2: Bécs B2: Ausztria C2: Magyarország D2: Budapest
A3: Prága B3: Csehország C3: Ausztia D3 Bécs
Ha tudtok ebben segíteni, azt nagyon nagyon megköszönöm! :)
Ha teljes dátumot írsz be, és időértékre váltod, akkor szimpla kivonás, és a különbséget kell percre váltani, nincs esetszétválasztás. Gyanítom, hogy a tiszta algebrai képlet gyorsabb lesz a HA függvénynél. Ha nincs akadály, a megszűnéshez írd be a baleset időpontját, és magától nulla lesz az eredmény.
Van soronként két cellám, amikben időpontok szerepelnek. Az elsőbe (C1) belekerül az adott esemény (baleset) bekövetkezésének időpontja, majd a másodikba (F1) az eseménnyel (balesettel) esetlegesen okozott akadály megszűnésének időpontja. A kettő közötti különbség adja meg, hogy hány perc volt az akadály. Nekem ennek az akadálynak az időpontját kellene egy külső program megfelelő részébe átemelnem makró segítségével. Az átemelés megy, a különbség számításával vacakoltam.
1. Az időpontok közötti különbséget szerettem volna számoltatni makróval, de az egyszerűen nem jött össze.
2. Akkor arra gondoltam, hogy függvénnyel kiszámolom a különbséget egy segédcellába, és azt már beiratom a makróval.
3. Simán beírtam, hogy "=(F1-C1)"
4. No, de nekem ez az időpont percben kellene. Tehát például az 1:20 akadálynak 80-ként kellene megjelenni. "=Óra(F1-C1)*60+Percek(F1-C1)"
5. De van úgy, hogy nincs akadály, tehát akkor nullát kellene tovább vinnem. Így lett a "=Ha(F1="";0;Óra(F1-C1)*60+Percek(F1-C1))"
6. Ám az is előfordulhat, hogy átcsúszik a következő napra az akadály megszűnése. Vagyis 23:00-kor történik és 00:15-kor indul meg.
Ezért ez lett: "=ÓRA(HA(F1="";0;HA(C1>F1;"24:00"-C1+F1;F1-C1)))*60+PERCEK(HA(F1="";0;HA(C1>F1;"24:00"-C1+F1;F1-C1)))"
ez tökéletesen működik.
Azon agyaltam, hogy egy 3500 soros táblázatban nem fogja-e lelassítani ez a képlet a számolást, ezért érdeklődöm, hogy létezhet-e erre megoldás makróval?
Amit Te "Helyi Hivatkozásnak" nevezel, az a Te géped, a Te ondrive-od. Az akkor látszik, ha Te magad nyitottad meg a fájlt. Ez lokális, nem hálózati. Másnál nincs, csak Nálad.
Ha a másik gép NEM azonos hálózaton van a tiéddel, akkor kapcsolat híján nem fogja látni a külső csatolást. Ez így normális.
Tudja használni, de a külső csatolások nem fognak frissülni - hanem egy utoljára mentett állapotot fog látni.
Van egy olyan problémám, hogy onedrive könyvtárban lévő excel file-k között hivatkoznak egymásra az excel file-k. Amikor elkészítem a hivatkozásokat, akkor még normál módon a másik file-ra hivatkozik, de amikor következőben újra indítom a file-t akkor a hivatkozás már az online felületen lévő file-ra hivatkozik: 'https://d.docs.live.net/20877243b9....
Be lehet állítani, hogy megőrizze a helyi hivatkozást, és ne az online-ra hivatkozom, hogy amikor pl átmásolom egy másik gépre, másik felhasználónak, ő is tudja majd használni, ne az én onedrive szerveremről kell fussanak a hivatkozások?
Ja és azt kifelejtettem. Az átmásolás mindig a munkalap2 N oszlopának 1.sorától kezdődik és az S oszlopának valahanyadik soráig tart. Ahanyadik soráig, ahány sort éppen beillesztettem a munkalap2 A-G oszlopokba.
Bocsánat rosszul fogalmaztam. Az 1. úgymond "kézzel" bemásolt adatokra gondoltam, nem a munkalap1-en levő makró által bemásolt adatokra.
Szóval a munkalap 2-n levőre. A munkalap 2-t csak segédlapnak használnám.
Azt pedig, hogy hány sort illesztek be, az mindig változó, szóval azt nem tudom meghatározni. A lényeg, hogy mindig csak annyi sort másoljon át, amit éppen beillesztettem.
2. Neki ugyanezen a lapon (munkalap2) kell a N-S-ig levő oszlopok celláit átmásolni a munkalap1 A oszlop utolsó cellájától kezdve (vagyis az 1. üres sortól kezdve)
Annyi sort, amennyit én éppen bemásoltam "kézzel".
3. Utána már ezekre az adatokra nincs szükségem a munkalap 2-n, hanem csak majd ha újra beillesztek adatokat.
A főlényeg, hogy mindig csak annyit másoljon át (sort) a munkalap1-re, amennyit éppen akkor beillesztettem (sort). Tehát semmi mást. Semmi megmaradt dolgot, vagy tudom is én.
Ezt nem értem. Ha a végén törölni kell a bemásolt sorok tartalmát, akkor minek bemásolni?
Hiszen akkor elegendő lenne tudni, hogy hány sort szeretnél bemásolni, és enni sor kihagyásával akarod másolni az N-S oszlopok tartalmát az A-F oszlopokba. Legalábbis én így értelmezem a leírásodat. Képileg így:
Egy olyan makróra lenne szükségem, ami a következőket teszi:
1. A-G oszlopig bemásolok egy vagy több sort.
2. Neki az lenne a dolga, hogy amelyik sorokat én bemásoltam (A-G-ig), ugyanazoknak a soroknak az N-S-ig oszlopait másolja át a munkalap1 'A" oszlop utolsó sorától elkezdve (A-F) 3. Ezután jó lenne, ha törölné a bemásolt A-G oszlop tartalmát. Az se baj, ha ez nem történik meg, de az lenne a lényeg, ha legközelebb beillesztek oda sorokat, és mondjuk most nem 5 sort, csak 2-t, akkor csak az "új" 2 beillesztést vigye át.