Keresés

Részletes keresés

Sánta Kutya (SK) Creative Commons License 2013.10.16 0 0 22656

Nem dődik aposztróffal, megnéztem.

Előzmény: tbando (22655)
tbando Creative Commons License 2013.10.16 0 0 22655

A cellaformátum megnézése nem adekvát a te esetere.  Hogy értsd: állits be egy üres cellát időformátumra.  Aztán írd bele, hogy Sánta Kutya. Aztán nézd meg a cellaformátumát. Az lesz hogy időformátum. Noha valójában nyilvánvalóan string. Amint arról már írtam, erről a SZERKESZTŐLÉCEN győződhetsz meg. Mert ott majd látod, hogy  beírás aposztróffal kezdődik. Na most írj be ugyanebbe a cellába egy tizedes törtet. Azt már időformátumban adja vissza. A szerkesztőlécen sem lesz aposztróf elötte. 

 

Tehát az időformátum beállítás azt csinálja, hogy a megadott szám törtrészét időkijelzéssé formázza. De ha nem számot kap, akkor azzal nem tud mit kezdeni. Ezért meghagyja, ahogy van. Még mindig jobb, mintha hibakijelzést adna.

Előzmény: Sánta Kutya (SK) (22649)
Sánta Kutya (SK) Creative Commons License 2013.10.16 0 0 22654

Lehet, hogy mégis stringnek tekintette őket az Excel, mert az időérték függvény értelmezve volt rájuk. Nem igazán értem.

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

Miért? A számformátum beállítása nem tesz számmá egy számot?

Ezeket az időket százával exportáljuk egy adatbázisból, nincs mód tizedestörtként bevinni őket.

Előzmény: Fferi50 (22651)
Fferi50 Creative Commons License 2013.10.16 0 0 22652

Szia!

 

Annyit módosítanom kell, hogy két sztring esetén valóban 0 min, viszont ha az egyik igazi számként van megadva, akkor az a min függvény eredménye!

És még egy érdekesség:  11 = "11" viszont igaz!

 

Üdv.

Előzmény: tbando (22647)
Fferi50 Creative Commons License 2013.10.16 0 0 22651

Szia!

 

Nem tudom, hogy számként vitted-e be, vagy ebben a formában "3:12:21" (idézőjelek nélkül persze), mert ha ez utóbbi, akkor bármit csinálhatsz a számformátummal, soha nem lesz belőle idő!!!!!

Ha viszont pl. 0,5-ként viszed be és átállítod az időformátumra, akkor már műxik.

 

Üdv.

Előzmény: Sánta Kutya (SK) (22649)
Fferi50 Creative Commons License 2013.10.16 0 0 22650

Szia!

 

 

Mondanám, hogy természetesen szövegként (hiszen más karakterek is vannak benne - és nem idő formátum, csak olyan szöveg, mintha idő lenne! szerintem) és fütyül a számértékre.

Mivel a min, max függvénynél eleve írja, hogy az argumentumoknak számoknak kell lenni, ezért én nem is próbálkoztam szöveggel.

Tény, hogy a VBA tud szövegeket is összehasonlítani, elsősorban a hosszuk, másodsorban a betűk alapján, de ezt matematikára felhasználni - hát nem tudom.

Egyébként a szöveges min példád (11, 12) nálam egyből 0-át eredményezett, viszont az A1(11)>A2(12) értéke HAMIS, ami teljesen rendben van a karakteres összehasonlítás alapján.

De egy áthidaló megoldás:

 

A1="12:34:25"   B1="12:23:12"    C1=HA(A1>B1;B1;A1)  Ez megmondja a minimumot. Nyilván, ha több érték van, akkor ennél kicsit bonyolultabb a dolog.

 

Üdv.

Előzmény: tbando (22648)
Sánta Kutya (SK) Creative Commons License 2013.10.16 0 0 22649

Igen. Ráálltam a cellára, leolvastam, idő. Az első, ami *-gal van megjelölve. Átállítottam egy másik hasonló időformátumra, ami nem csillagos, hátha. Azzal se működött.

Nem string.

Előzmény: Fferi50 (22646)
tbando Creative Commons License 2013.10.16 0 0 22648

SK stringet használt, nem időformátumot vagy számfomátumot. Mert akkor neki is elfogadta volna min-t.

 

A 2010 hogy értelmezi, a stringként megadott időt?

Előzmény: Fferi50 (22646)
tbando Creative Commons License 2013.10.16 0 0 22647

Szvsz attól string, hogy stringként vitted be. Attól hogy az időformátumra hajazó stringet az excel képes időformátumnak is nézni, attól az még string marad. Amit ha jobbra igazítasz, akkor jobbra igazított string lesz. Nézd csak meg a szerkesztőlécen, ott lesz elötte az aposztróf.

 

Az internetes +0 pedig az excelnek az az igen hasznos, és itt a fórumon is már többszőr említett képessége, hogy bizonyos müveleti jelekre átállítja a formátumot. Esetedben a stringet az időértékének megfelelő normál számmá.  Van ilyen számos egyéb is:

 

pl. a=b*1 az 1 ha igaz, és 0 ha nem. Az 1&1 eredménye meg "11".  Ezért ha A1="11" és A"=12 akkor Min(a1:a2)=12.

 

Persze elég nehéz azt kitanulni, hogy maradva a fenti a1-a2 kiosztásnál az  a1+a2=23, de a szum(a1:a2)=12   :))))))

 

Előzmény: Sánta Kutya (SK) (22644)
Fferi50 Creative Commons License 2013.10.16 0 0 22646

Szia!

 

Nekem 2010-es Excelben minden hepcia nélkül működik a min és a max függvény időformátumban és számformátumban is.

Még tömbképlet sem kell hozzá.

Biztos, hogy a szabványos időformátumok közül használod valamelyiket?

 

Üdv.

 

Előzmény: Sánta Kutya (SK) (22644)
Fferi50 Creative Commons License 2013.10.16 0 0 22645

Szia!

 

Egy kicsit módosítottam a javaslatodon a következők miatt:

Ha általános formában importálja a csv fájlt, lesznek olyan dátumok, amelyeket tud értelmezni a magyar excel is (pl.legközelebb nov.), ezt érdemes figyelni és kezelni.

Ha Option Base 0 akkor lehet 0-ról indítani a hónapok feltöltését és nem kell így az eredményből kivonni 1-et, (vagy ha Option Base 1, akkor sem.)

Jóllehet, a cella alapértelmezésben az értéket adja vissza, én mégis szeretem használni a .value-t mivel így gyorsabb a számolás.

Lehet, hogy nem minden nap van 0-val kezdve, nem minden hónap 4 karakter hosszú. Ezért inkább a határolóval célszerű operálni (ami persze lehet más is, nem csak "-".

Továbbá- miért ne csinálnánk egyből dátumot és állítanánk be a dátum formátumot az adott cellán?

 

Sub honapos()
Dim ho(12) As String, ev%, nap%, honap
ho(0) = "Jan"
ho(1) = "feb"
ho(2) = "mar"
ho(3) = "apr"
ho(4) = "may"
ho(5) = "june"
ho(6) = "july"
ho(7) = "Aug"
ho(8) = "sept"
ho(9) = "oct"
ho(10) = "nov"
ho(11) = "dec"
For Each cell In Range("A1:A40")
If Not IsEmpty(cell) Then
       If Not IsDate(cell.Value) Then
            nap = Left(cell.Value, InStr(cell.Value, "-") - 1)
            ev = Mid(cell.Value, InStr(4, cell.Value, "-") + 1)
            honap = Replace(cell.Value, nap & "-", "")
            honap = Replace(honap, "-" & ev, "")
            honap = WorksheetFunction.Match(honap, ho, 0)
            cell.Value = DateSerial(ev, honap, nap)
            cell.NumberFormat = "yyyy.mm.dd"
       End If
    End If
Next
End Sub

 

És persze a Te programod sem csinál 27-Oct-2013-ból 2013.09.27-et!

 

Üdv.

Előzmény: tbando (22641)
Sánta Kutya (SK) Creative Commons License 2013.10.16 0 0 22644

OK, de mitől string, amikor ez egy időformátumú cella, jobbra igazított tartalommal,  tehát számként kéne kezelnie?

Előzmény: tbando (22642)
tbando Creative Commons License 2013.10.16 0 0 22643

Szia!

 

A 22641 makróban szokás szerint maradt 1-2 szépség hiba. Ha zavarnak és szeretnéd korrigáltatni, jelentkezz.

Előzmény: djmorphy (22635)
tbando Creative Commons License 2013.10.16 0 0 22642

A stringeknél ez már csak így van.   Annak ellenére, hogy az "a<"b"=IGAZ és az"a">"b"=HAMIS, a MIN("a";"b")= 0. Valószinűleg azért, mert a MIN a stringeket 0-nak tekinti. Ahogy egyébként a SZUM is, az ÁTLAG is, meg a DARAB is. Bár ez utóbbinak van  darab2 változata is.  

Előzmény: Sánta Kutya (SK) (22640)
tbando Creative Commons License 2013.10.16 0 0 22641

Biztos van elegánsabb megoldás is, de én csak erre vagyok egyelőre képes. Kijelölöd a szöveges cellatartományt, amelyben vegyesen vannak dátumok és egyebek, majd elinditod a makrót, ami a dátumokat átírja 07-Oct.-2013 formáról, 2013.09.07-re, amivel a magyar excel már elboldogul.  Két feltételnek kell ehhez teljesülni: 1. A dátumok mind amerikai formátumuak és a hónapok az angol rövidítésüek legyenek.  2. A felölelt időszak 2000-2099 közé essen.

A makró extrém esetben elbarmolhatja a cella tartalmát, ha jobbról a 3.-4. betű "20" és ez nem a 2000-res dátumból származik.  A makro szerkezete viszont roppant egyszerű, ezért a feltételeket könnyű átírni. 

 

 

Sub djmorphdatum()

 

Dim a$, b$, ev%, ho, nap%, honum, cell
Dim honapok(12)

 

honapok(1) = "jan"
honapok(2) = "feb"
honapok(3) = "mar"
honapok(4) = "apr"
honapok(5) = "may"
honapok(6) = "june"
honapok(7) = "july"
honapok(8) = "aug"
honapok(9) = "sept"
honapok(10) = "Oct"
honapok(11) = "nov"
honapok(12) = "dec"

 

For Each cell In Selection
If Left(Right(cell, 4), 2) = "20" Then
a = cell
ev = Right(a, 4)
ho = Mid(a, 4, Len(a) - 8)
nap = Left(a, 2)

honum = Application.Match(ho, honapok, 0) - 1
If honum < 10 Then honum = "0" & honum
b = ev & "." & honum & "." & nap

cell.Value = b
End If
Next cell

End Sub

  

Előzmény: djmorphy (22635)
Sánta Kutya (SK) Creative Commons License 2013.10.16 0 0 22640

Találtam egy nyakatekert workaroundot:

http://www.mrexcel.com/forum/excel-questions/461313-find-minimum-time-value.html

De nem értem, hogy működik. Nem a tömbképletet nem értem, hanem a +0-t. Mindenképpen hibás működés, hogy közönséges MIN függvénnyel nem ad jó eredményt.

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

01:44:16  01:38:08  0:00:00

Ez az A1:C1, és a harmadik szám (C1) az =MIN(A1:B1) képlet értéke.

Miért?

Ha időértéket számolok belőlük, megtalálja a minimumot, direktben meg nem. Mindhárom cella formátuma idő.

Fferi50 Creative Commons License 2013.10.16 0 0 22638

Szia!

 

Nyilván van hozzáférésed a VBprojekthez. Akkor használhatod a makróban az

Activeworkbook.VBProject.VBComponents lehetőségeit, illetve

Activeworkbook.VBProject.VBComponents("Thisworkbook" (vagy bármelyik másik darab).CodeModule tulajdonságait.

A VBComponents a Codename-ket fogadja el névként.

 

Üdv.

 

Előzmény: seven update sorbi (22636)
police7777 Creative Commons License 2013.10.16 0 0 22637

Köszönöm a segítséget Jimmy the Hand!

 

Remekül működik, annyit még ha tudnál segíteni, hogyha ugyanabban a cellában akarom látni még az aktuális dátumot is az időpont előtt akkor hogyan kell modosítanom a makrót?!

 

Köszönöm

 

 

 

Jimmy the Hand

2013.10.14 11:12:49  22596

Másold be ezt a makrót a munkafüzetedbe, és rendelj hozzá egy billentyűkombinációt.

 

Sub Pontosidő()     With ActiveCell         .Value = Time()         .NumberFormat = "h:mm:ss"     End With End Sub

 

Előzmény: police7777

2013.10.14 10:23:15 © 22595

Sziasztok!

 

Segítsetek! Olyan időfüggvény kellene nekem, ami az éppen aktuális időt rögzíti MÁSODPERCRE pontosan. A Ctrl+Shift+. kombináció az percre pontosan írja csak az időt.

 

Köszönöm

seven update sorbi Creative Commons License 2013.10.16 0 0 22636

Sziasztok!

 

Nekem is lenne egy kérdésem. Szeretnék egy egy excel file "Thisworkbook" lapján lévő makrókat beimportálni egy másik excel file "Thisworkbook" lapjára. A problémám az, hogyha kiexportálom a thisworkbook-ot, akkor az exportálás automatikusan egy class module file-t hoz létre (cls kiterjesztéssel), amit, ha visszaimportálok a másik munkafüzetbe, akkor ott is class module-ként jelenik meg, de én a "Thisworkbook" lapra szeretném azt bemásolni (nem kézzel, hanem makróval).

 

Köszi a segítséget.

djmorphy Creative Commons License 2013.10.16 0 0 22635

Sziasztok!

 

Dátummal kapcsolatban lenne kérdésem. 

CSV-ből importálok file-okat. Az "AD" oszlopba importálja a dáumokat de a következő formátumban:

"07-Oct-2013" 

Hogyan tudnám rávenni, hogy az excel tudja kezelni ezt a dátumot pl viszonyítani tudjak hozzá stb? Az a baj, hogy göngyölített adathalmaz tehát mindig csak nőni fog és egyesével átirogatni nem nagy élmény :D

tbando Creative Commons License 2013.10.16 0 0 22634

Azon töprengtem, hogyan lehetséges úgy átállítani fix tizedesre az excelt, hogy a usernek erről fogalma sincs.  Hát végülis nagyon könnyen. Mert ha több füzet van nyitva, akkor, ha akármelyiket is átállítjuk, azzal a többi füzetben is megtörténik az átállítás. Ha a későbbiek során ezek közül az átállított füzetek közül bármelyiket is behívjuk elsőként, az tovább "fertőzi" az utána megnyilókat, amelyek szintén hasonlóképpen fognak viselkedni. Egészen addig, amig ki nem kapcsoljuk a fix tizedes módot az egyik füzetben, mert ezzel a többi megnyitott füzetben is megszűnik. 

Előzmény: tbando (22632)
Fferi50 Creative Commons License 2013.10.15 0 0 22633

Szia!

 

És ezzel együtt a tizedesjegyek számát is átállította, ha 500000 esetén 0,5 jelenik meg, akkor 6 a tizedesjegyek száma!

 

Üdv.

Előzmény: Törölt nick (22631)
tbando Creative Commons License 2013.10.15 0 0 22632

Erre szépen rájöttél. Nem is tudtam, hogy van ilyen :)))))

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

Ötlet:

 

Bekapcsolta valaki a "fixed decimal mode-ot". Alant le van írva, hogy hogy lehet kikapcsolni.

 

Ques 19. Your colleague created a dashboard and when you enter a value, it appears with two decimal places. For example, when you enter 265 it shows up as 2.65. What's wrong? Solution: By chance Excel's fixed-decimal mode was turned on. To return to normal,
Excel 2003 -->
Click Tools and then Options to display the Options dialog box.
Then click the Edit tab and remove the check mark from the "Fixed decimal " option.
Excel 2007 -->
Click Office button on Top-Left corner and click 'Excel Options'.
Go to Advanced and Uncheck 'Automatically insert a decimal point' option.
Excel 2010 -->
Click File button on Top-Left corner and click 'Excel Options'.
Go to Advanced and Uncheck 'Automatically insert a decimal point' option.

 

forrás: http://www.excelitems.com/2010/12/excel-vba-interview-questions.html

Előzmény: szunyókálóoroszlán (22593)
Fferi50 Creative Commons License 2013.10.15 0 0 22630

Szia!

 

Azt mondjuk nem írtad, milyen módon kell kiosztani a posztokat...(képlet, makró, kézzel...)

Mondjuk a kézi kitöltést segíti ha a képen látható módon csinálsz egy "segítséget" magadnak (darabteli függvénnyel).

Üdv.

Előzmény: fres01 (22600)
tbando Creative Commons License 2013.10.15 0 0 22629

Csinálhatod FKERES-sel is. A százalékokat kumulálod 0-tól 83-ig és melléjük irod a posztokat. Majd az 1-100-ig kitöltött cellák mellé beírod az FKERES képletet: =fkeres(szám-1;$posztkiosztó;2) 

Előzmény: fres01 (22603)
tbando Creative Commons License 2013.10.15 0 0 22628

Írtad, hogy nézted a számformátumot is. Na és melyik formátum volt kijelölve, és azt hogyan illusztrálta, miközben az 5000000/0,5-ös cella volt kijelölve?

Előzmény: szunyókálóoroszlán (22627)
szunyókálóoroszlán Creative Commons License 2013.10.14 0 0 22627

Nem az. 

?

Előzmény: Eredő Vektor (22594)

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