Keresés

Részletes keresés

mimi_bacsi Creative Commons License 2014.04.22 0 0 24896

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?

Sánta Kutya (SK) Creative Commons License 2014.04.22 0 0 24895

(Illetve ugyanez történik, ha logikai változót integerré konvertálsz.)

Előzmény: Sánta Kutya (SK) (24894)
Sánta Kutya (SK) Creative Commons License 2014.04.22 0 0 24894

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.

Előzmény: Eredő Vektor (24892)
Törölt nick Creative Commons License 2014.04.17 0 0 24893

"Szerintem minden magas és alacsony szintű nyelvben a boolean értéke 0 és 1 fentiekből (is) eredően."

 

Kivéve a VBA-t!

:)

Előzmény: Eredő Vektor (24892)
Eredő Vektor Creative Commons License 2014.04.17 0 0 24892

Én ennek az okát az informatika őskoránál keresném. Az alapjait akkor és ma bináris számrendszer alkotta.

Minden elektronikus áramkörben ezt használják 0: nincs áram = false, 1: van áram = true :)

 

Szerintem minden magas és alacsony szintű nyelvben a boolean értéke 0 és 1 fentiekből (is) eredően.

Előzmény: Törölt nick (24884)
tbando Creative Commons License 2014.04.17 0 0 24891

Ja, így történhetett, :))). 

Előzmény: Fferi50 (24890)
Fferi50 Creative Commons License 2014.04.17 0 0 24890

Szia!

 

Szerintem csak annyi történt, hogy az első szam=5 sort nem enterezted le és benne maradt a szam-ban a -1.

Én is szoktam így járni - mivel ott lehet a cursorral is mozogni, anélkül, hogy entert ütnél (de csak az enterre hajtja végre amit beírtál).

 

Üdv.

Előzmény: tbando (24889)
tbando Creative Commons License 2014.04.17 0 0 24889

Basszus! amikor már azt hittem, hogy értem, akkor az immediate ablakban beleszaladtam ebbe:

 

szam=5
?szam
-1
szam=5:?szam
5

 

Szóval a ?szam egyszer IGAZ, másképp megadva meg számérték. Ez hogy van? 

 

Már teljesen mesüge vagyok :)))

 

 

Előzmény: Fferi50 (24888)
Fferi50 Creative Commons License 2014.04.17 0 0 24888

Szia!

 

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.

 

Üdv.

Előzmény: tbando (24882)
djmorphy Creative Commons License 2014.04.17 0 0 24887

Köszönöm szépen! 

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.

Előzmény: Fferi50 (24878)
Fferi50 Creative Commons License 2014.04.17 0 0 24886

É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.

 

 

Előzmény: Fferi50 (24885)
Fferi50 Creative Commons License 2014.04.17 0 0 24885

Szia!


"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).

 

Üdv.  

Előzmény: Törölt nick (24884)
Törölt nick Creative Commons License 2014.04.17 0 0 24884

"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.

Előzmény: Fferi50 (24883)
Fferi50 Creative Commons License 2014.04.17 0 0 24883

Szia!

 

Amit a VBA súgóban találtál, az a VBA-ra igaz is.

DE: az Excelben az igaz =1, a hamis = 0 számértékű, ha számra konvertálod a logikai értéket.

Ugye két irányú konverzióról beszél a súgó is:

Ha számértéket konvertálsz logikaira, akkor csak a 0 hamis, minden más érték igaz -nak konvertálódik. Ez így van a VBA-ban is és az Excelben is.

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.

Korábban valahol ebben a fórumban úgy emlékszem, ezt már tárgyaltuk.

 

Üdv.

Előzmény: tbando (24882)
tbando Creative Commons License 2014.04.17 0 0 24882

Ez a VBA súgó mondat magyarázat arra, hogy miért találtam úgy, hogy IGAZ<>0.

When other numeric types are converted to Boolean values, 0 becomes False and all other values become True.

 

Ez viszont nem magyarázza, hogy 3*IGAZ=3 és miért nem -3. Szerinted miért?

When Boolean values are converted to other data types, False becomes 0 and True becomes -1.

Előzmény: tbando (24881)
tbando Creative Commons License 2014.04.16 0 0 24881

Szia!

 

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. 

Előzmény: Fferi50 (24880)
Fferi50 Creative Commons License 2014.04.16 0 0 24880

Szia!

 

Ez az a bűvös történet ami a VBA és az Excel logikai változóiról szól. (Biztosan emlékszel még rá.) Az Excelben az igaz=1, a hamis =0 .

 

Tehát a Ha(A1;x;y) azt vizsgálja, hogy az A1=1, csak le van rövidítve.

 

Üdv.

Előzmény: tbando (24879)
tbando Creative Commons License 2014.04.16 0 0 24879

=ha(A1;x;y)

 

É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? 

Előzmény: Fferi50 (24871)
Fferi50 Creative Commons License 2014.04.16 0 0 24878

A más munkafüzet változás szerintem úgy oldható meg, ha előtte definiálod, hogy a log munkalap melyik munkafüzetben van.

 

Pl. set loglap=workbooks("Valami").sheets("Log")

 

utána a sort így kell beírnod:

Sheets("log").Cells(65000, 1).End(xlUp).Offset(1, 0).Value=_ helyett

 

loglap.Cells(65000, 1).End(xlUp).Offset(1, 0).Value=_

 

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.

 

Üdv.

Előzmény: djmorphy (24875)
Tündi2003 Creative Commons License 2014.04.16 0 0 24877

Ez sem rossz ötlet!

Előzmény: Fferi50 (24871)
Fferi50 Creative Commons License 2014.04.16 0 0 24876

Szia!

 

Ezt a sort egészítsd ki:

Application.UserName & " changed cell " & Target.Address _

Így:

Application.UserName & " changed cell " & Target.Address (External:=true)_

 

Ez beírja a munkafüzet és a munkalap nevét is.

 

Üdv.

Előzmény: djmorphy (24873)
djmorphy Creative Commons License 2014.04.16 0 0 24875

É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

Előzmény: Törölt nick (24874)
Törölt nick Creative Commons License 2014.04.16 0 0 24874

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.

Előzmény: djmorphy (24873)
djmorphy Creative Commons License 2014.04.16 0 0 24873

Sziasztok!

 

VBA-ból kellene segítség. 

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

 

 

honlap: http://www.teachexcel.com/excel-help/excel-how-to.php?i=151207

 

Gondolom az Application.Username & Changed cell-nél kellene még egy & jel ahol a Munkafüzet nevet írom de ez csak pasi megérzés :D

Tündi2003 Creative Commons License 2014.04.16 0 0 24872

Ó, ez csodásan működik, köszönöm! :)

Előzmény: Eredő Vektor (24869)
Fferi50 Creative Commons License 2014.04.16 0 0 24871

Szia!

 

Viszont ha ezt a képletet használod:

B1-ben =ha(A1;-1;1)

B2-ben =HA(A2;HA(B1>0;-1;-1+B1);HA(B1<1;1;1+B1))

és ez utóbbit húzod végig, akkor nem kell a záró 1/0 a végére és ráadásul a =-min(B:B) képlet pedig megadja az egymás után következő 1 -esek számát.

 

Üdv.

Előzmény: Eredő Vektor (24869)
Eredő Vektor Creative Commons License 2014.04.16 0 0 24870

annyit belecsalhatsz, hogy a számsorod legvégét egy 1-el "lezárod", mert ha esetleg az utolsó x 0 a legtöbb, akkor enélkül egyet csalni fog mínuszban

Előzmény: Eredő Vektor (24869)
Eredő Vektor Creative Commons License 2014.04.16 0 0 24869

ha mondjuk a1-től vannak a 0 és az 1, akkor b2-be: =HA(A1;0;1+B1)

ezt a képletet lehúzod végig, utána a b oszlopra egy =MAX(B:B) függvény és kész.

Előzmény: Tündi2003 (24867)
Eredő Vektor Creative Commons License 2014.04.16 0 0 24868

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.

Őrültek.

Előzmény: Delila10 (24866)
Tündi2003 Creative Commons License 2014.04.16 0 0 24867

Sziasztok! Az alábbi problémát szeretném megoldani, de nem boldogulok vele. :(

 

Adott egy számsor, ami 0 és 1 számokat tartalmaz, esetleges sorrendben, pl.:

 

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0

 

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?

 

 

 

 

 

 

 

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!