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.
Van-e egyszerű (excel) megoldás arra, hogy magyarországi címeket (utca, házszám, esetleg irányítószám) hosszúsági és szélességi fokokra átkonvertálhassam?
Ez csak addig igaz, amíg egy bitben gondolkodsz, de ha a logikai változót egy vagy több byte-on ábrázolják, akkor a -1 a logikus érték az igazra, és a BASIC ezt is csinálja. Egyszer már leírtam részletesebben.
Azért még ez sem egészen egyértelmű, próbáld ki VBA-ban (az immediate ablakban):
szam=5
?szam=true az eredmény false
?cbool(szam) az eredmény true
szam=-1
?szam=true az eredmény true
?cbool(szam) az eredmény true
Excelben viszont a ha(A1;x;y) képlet valóban úgy viselkedik, hogy csak akkor adja az y-t eredményül, ha A1-ben 0 van, minden más szám esetén az x-et adja vissza.
Megpróbálkozom vele mert most hogy szabin egy kávé után vagyok asszem értem :)
Azzal nem lesz gond hogy fel kell minden munkafüzetre vinnem mert kb 3-4 db lesz csak.
Ezzel kb azt akarom elérni mint a megosztott Mf-el hogy lássam mi volt az előző eredmény. De mivel az alapanyag áramlást egyszerű betanított munkás rögzíti majd fel nincs szüksége a sok felesleges infóra. Csak annyit kell beírnia hogy "A alapanyag" "500db". Viszont én rá tudjak jönni hogy hol nem stimmelek azzal hogy megnézem hogy aznap "B alapanyag" volt a termelésben. Azaz csak elnézte a sort/oszlopot/mf-et.
Én úgy gondolom, volt egyszer a számolótábla (excel,lotus stb.) képletekkel, szabályokkal, majd utána, hogy makrózni/programozni lehessen, "ráhúzták" a vb(a)-t a maga szabályaival és ez lett belőle.
"Ez tény, de attól még érdekes kérdés, hogy miért van így."
Erre a kérdésedre azt hiszem Redmondban lehetne választ kapni csak, bár lehet, már ők sem tudják a valódi okát.
Akárhogy is történt, ezt figyelembe kell venni, ha az excellel, VBA-val dolgozunk. Az igaz=1 , hamis = 0 pedig elég sok érdekességet rejt magában a képletek terén (pl. szorzatösszeg ha valaminek az igaz voltához kötjük az összegzést).
"Viszont ha a logikai változót konvertálod számértékké, akkor már más eredményt ad a VBA és az Excel képlet."
Ez tény, de attól még érdekes kérdés, hogy miért van így. Következetlenségnek hat. Már csak azért is, mert amennyire én tudom, az Excel interfész elég nagy része VBA-ban lett megírva.
Szerintem simán lehet programozói tévedés, pl. nem ugyanaz a programozó fejlesztette az egyik illetve másik részt, és különbözőképpen értették meg a főnök utasítástát. Aztán amikor kiderült, már nem akarták kijavítani a hibát, mert az fejre állított volna más dolgokat, többek minden felhasználói makrót, ami erre a területre téved.
Tulajdonképpen ezt a rövidítést nem értem. Milyen logikából következik hogy az a1 a =ha(a1;x;y) kifejezésben azt jelenti, hogy a1=1?
Másodsorban pedig szerintem nem is azt jelenti, hanem azt, hogy a1<>0. Nézd csak meg. Akármilyen számot írsz be a1-be (kicsit, nagyot, pozitivat, negativat, egészet vagy törtet) mindig x lesz az eredmény. Kivéve a nulla esetében. Akkor y. Miért? Hogyan?
Próbálkozom a logikai változókkal is. De az se stimmel. Az a1=IGAZ, és az a1=HAMIS akármilyen szám esetében HAMIS eredményt ad. A nulla esetében is. Csak akkor ad IGAZ-t, ha az a1-ben logikai reláció van, és az a B1-beli A1=IGAZ/HAMIS lekérdezéssel megegyezik.
Én ezzel a formulával még sosem találkoztam. Azt látom, hogy mit csinál. De hogy milyen logikából következik az értelmezése, azt nem értem. Fűznél hozzá egy rövid magyarázatot?
Viszont az adott eseményhez kapcsolódó eseménykezelőt minden munkalapra fel kell venned, vagy a munkafüzet Thisworkbook nevű lapjára kell felvinni (itt elég egyszer), viszont akkor a Log nevű munkalapot ki kell zárni az eseménykezelésből.
Értem! Köszi! Tulajdonképpen az már csak formalitás lett volna hogy kb 1 perc alatt fél perc alatt be tudjam azonosítani hogy milyen változás történt a készletben. :D
Szerintem ez nem fog menni. A worksheet_change csak a saját munkalapon történő változást érzékeli. Ugyanazon munkafüzeten belül több munkalap figyelése a munkafüzet Workbook_SheetChange eseményével valósítható meg. De ez sem fog rálátni arra, hogy más munkafüzetekben mi történik.
Az egyik oldalon találtam egy számomra tökéletes Log-olási módszert. Vannak munkafüzetek és egy Log nevű MF-be A1-től A65000-ig regisztrálja hogy mit mire változtattam. Csak copy-pastel-tem az excelbe mert sajnos fű vagyok hozzá. Tökéletesen működik. Annyi kérdésem van, hogy szerintetek egyszerű változtatással meg lehet oldani, hogy a Log Mf-be azt is regisztrálja hogy melyik Munkafüzeten történt a változtatás
Maga a kód:
Dim PreviousValue
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value <> PreviousValue Then Sheets("log").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _ Application.UserName & " changed cell " & Target.Address _ & " from " & PreviousValue & " to " & Target.Value End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) PreviousValue = Target.Value End Sub
Az integrált rajz és egyéb eszközök összebarkácsolása diagramokkal. Ügyes. Türelmes. :)
Hogy egyéb ínyencséget is említsek, találni lehet pl. pacman játékot excelre írva. Hibátlanul működik. A minimálisra kicsinyített cellák mátrixát használja grafikai felületnek. De láttam snake-t is, még a vba kódja is elérhető volt.
stb, kb. 5000 soron keresztül (ez egy függőlegesen elhelyezkedő számsor az Excelben).
A kérdés az, hogy hogyan lehetne azt megmondani, hogy ebben a számsorban bármely két darab, "egymás melletti" 1-es között hány darab nulla van, és hogy ezen értékek közül melyik a legnagyobb?
Hogy értsétek: a fenti rövid számsorban 7 db nulla, 1 darab 1-es, 9 darab nulla, 2 darab 1-es, 1 db 0, 1 db 1-es, 4 db nulla, 1 darab 1-es, 9 db nulla, 1 db 1-es, 1 db 0, 1 db 1-es, 1 db 0, 6 db 1-es és végül 5 db 0 szerepel egymás után (ha jól számoltam :)
Ezek szerint a fenti számsorban a válasz a kérdésemre a 9, mert 9-szer fordul elő legtöbbször egymás után a nulla.
Szóval hogyan tudom ezt kiszámoltatni az Excelben?