Keresés

Részletes keresés

hellsing Creative Commons License 2014.03.19 0 0 24566

Vagy inkább:

 

=darabteli(1:1;">0")

 

Az 1:1 a teljes első sorra hivatkozik, és így akkor is működik a képlet, ha a munkalap Excel >=2010-ben van megnyitva (XFD az utolsó oszlop), vagy korábbiban (asszem II az utolsó).

Előzmény: Zoxo Whitney (24564)
hellsing Creative Commons License 2014.03.19 0 0 24565

'reggelt!

 

Segítség kéne. Van egy INDIRECT hivatkozásom. Más Excel fájlokból szed(ne) össze adatokat, de nem működik (#REF!). Így néz ki:

 

=INDIRECT("'[TMC Monthly P&L Report "&YEAR(B$4)&"-"&IF(MONTH(B$4)<10;0;"")&MONTH(B$4)&".xlsx]"&REPLACE(CELL("filename";A4);1;FIND("]";CELL("filename";A4));"")&"'!$"&CHAR(CODE("A")+COLUMN()-1)&"$"&ROW())

 

A B4 értéke 2014-01-01, a munkalap neve Medical. Azért ilyen bonyolult, mert a felhasználónak hónapról hónapra odébb kell másolnia a képletet, de ennél többet nem lehet tőle elvárni (pl. dátumcsere a képletben).

 

Ha leveszem az INDIRECT függvényt (tehát csak a különböző értékek és karakterláncok összefűzése marad), annak ez az eredménye:

 

'[TMC Monthly P&L Report 2014-01.xlsx]Medical'!$B$13

 

Ha ezt kikopizom, beillesztem értékként és elé teszek egy = jelet, akkor működik, ergo megvan a hivatkozott munkafüzet és munkalap, értelmes a cellahivatkozás és van benne érték. Ha a fenti karaktersort becsomagolom egy INDIRECT-be, megint csak #REF! az eredmény. Mi lehet a hivatkozásban, amit az INDIRECT nem tud megemészteni?

 

Excel 14.0.7116.5000 (64 bit), Office Pro Plus 2010, Vista x64

Zoxo Whitney Creative Commons License 2014.03.19 0 0 24564

nyomdaliba:

=darabteli(a1:ii1;">0")

Előzmény: Zoxo Whitney (24563)
Zoxo Whitney Creative Commons License 2014.03.19 0 0 24563

Az nem jó, ha megszámoljuk, hogy az adott tartományban hány érték nagyobb 0-nál?

=darabteli(a1:ii1;">0)"

Előzmény: csakegykérd (24562)
csakegykérd Creative Commons License 2014.03.19 0 0 24562

Sziasztok!

 

Még egy kérdésem van:

Azt szeretném, hogy egy sorban lévő összes olyan értéket, ami nullától különbözik, adjon 1 értéket és azokat szummázza. Tehát ha egy sor így néz ki:

0   24   2    0    0    0    0   52,3    0     0      1    0   0     48

akkor egy cellában ezt a számot írja ki: 5

 

Remélem, érthető a kérdésem! Előre is köszi a választ!

Eredő Vektor Creative Commons License 2014.03.19 0 0 24561

szumha függvény összegtartomány argumentumát lehet tologatni eltolás(ofszet) fügvénnyel? Pl. A:A a tartomány, de :A-t dinamikussá akarom tenni.

 

INDERKTTEL TUDOM, engem ez az ofszetes érdekelne, hogy lehetséges e.

Törölt nick Creative Commons License 2014.03.18 0 0 24560

Igazad van. A helyedben nem vacakolnék vele.

Előzmény: Fferi50 (24558)
Törölt nick Creative Commons License 2014.03.18 0 0 24559

Sziasztok!

Légyszi nézzetek már rá erre a topikra, mer most nem érek rá.

http://forum.index.hu/Article/showArticle?t=9218722

Köszi.

Fferi50 Creative Commons License 2014.03.18 0 0 24558

Szia!

 

És ez mennyivel egyszerűbb annál, mint amit javasoltam?

 

Üdv.

Ps. Ráadásul még az excel konfigurációt is úgy felejtheted, aztán fogalmad sincs róla később, miért működik hibásan.

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

Szia.

Következő lehetőségekre gondolok:

- Excel konfigurációban átállítod a decimal separatort

 

Default:

 

Felhasználói beállítás

 

- Operációs rendszerben átállítod

- a számokat CStr utasítással átkonvertálod stringgé és azon hajtod végre a műveletet. Ekkor a szám felhasználásakos VAL utasítással visszakonvertálod.

Előzmény: Fferi50 (24556)
Fferi50 Creative Commons License 2014.03.17 0 0 24556

Szia!

 

Mint írtam, a probléma abból adódik, hogy a számformátumban a VBA a tizedespontot használja, míg a cellákban a magyar beállításnak megfelelő tizedesvessző kell, hogy megjelenjen. Ezért a makróból a számban levő pontot nem tudja vesszőre cserélni értelmesen. Addig működik a csere, amíg nem írod ki a cellába.(Engem is ez vezetett félre az első válaszomban.)

Viszont a val a pontot értelmezni tudja és ennek megfelelően a jó számértéket írja ki a cellába a magyar formázásnak megfelelően vesszővel.

 

Üdv.

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

Értelemszerűen a kiválasztott cellára előbb rá kell pozicionálni

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

Egy példa ahol alsó vonalat cseréli középsőre. A karakterek átírhatók egyebekre. Ez kíválóan működik bár pont és vesszőre nem próbáltam ki.

 

Cells.Replace What:="-", Replacement:="_", LookAt:=xlPart, SearchOrder _
                             :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Előzmény: Fferi50 (24542)
Delila10 Creative Commons License 2014.03.17 0 0 24553

Beírod a számokat az A oszlopba, melléjük a B1 és B2 cellába, amit fFeri javasolt, a B2 cellát lemásolod a szükséges sorig.

 

A tartományban állva Ctrl+r bill. kombinációra a két kitöltött oszlopod – az Ecxeled verziójától függően – tartománnyá, vagy listává alakul. A kettő ugyanaz, csak a megnevezésük más.

 

Most már beírhatod a C1 és C2 képletét.

 

Mikor bővíted az A oszlopot új cellával, a B képletét automatikusan lemásolja, és ennek megfelelően változik a C1 és C2 értéke.

 

Előzmény: bejgleee (24551)
Fferi50 Creative Commons License 2014.03.17 0 0 24552

Szia!

 

Egyenlőre úgy néz ki, hogy nem találunk olyan beépített képlet(eke)t, amellyel megoldható lenne a feladat.

Viszont semmi sem gátolja meg szerintem, hogy a segédoszlopodat előre kitöltsd a képlettel. Az általam javasolt megoldással ez nem fogja befolyásolni az eredmény helyességét:

 

Feltételezés:

A számok az A oszlopban vannak.

A segédoszlop a B oszlop.

Az eredmény a C1 és C2 cellába kerül.

 

B1 cella képlete: =HA(ÜRES(A1);0;HA(A1>0;1;-1))  vagy =Előjel(A1)

B2 cella képlete: =HA(ÜRES(A2);0;HA(A2>0;HA(A1>0;B1+1;1);HA(A1<0;B1-1;-1))) és ezt a képletet másold(húzd) végig a B oszlopon (akár teljesen végig, de ha van információd, hogy hány sor lesz, akkor attól valamivel lejjebb).

 

A C1 cella képlete: =Max(B:B)

A C2 cella képlete: =Min(B:B)*-1

 

Természetesen megoldható, hogy a segédoszlopok ne legyenek láthatóak (elrejthetők), illetve az is hogy ne azon a munkalapon legyenek, amelyikre beolvasod az adatokat.

Ebben az esetben a képletekben a munkalap nevét is be kell írni (pl. Munka2!A1)

 

A képlet helyes működéséhez még az szükséges, hogy az A oszlop csak a beolvasott számok, illetve üres cellák legyenek.

 

Remélem, sikerült érthetően leírnom, próbáld ki, hátha így megfelel.

 

Üdv.

Előzmény: bejgleee (24551)
bejgleee Creative Commons License 2014.03.17 0 0 24551

"Egymás utáni pozitív, negatív értékek"...

Köszönöm mindenkinek az idejét, amit a problémámra fordítottatok!

Meg kell még emésztenem az írottakat, mert nem igazán dolgozom excellel (ilyen szinten).

Segédoszloppal nekem is sikerült, de mivel ez "automatikusan" töltődő tábla lenne, az nem megoldás, hogy segédoszlopot használok, mert akkor ki "húzza" a képleteket a beírt sorok után? :-)

Persze ha van olyan beállítás ,vagy lehetőség, hogy ha egy új sor íródik be a táblába, akkor a segédoszlop is kitöltődjön (a képlettel) vele együtt, akkor az is jó lenne.

A makróktól azért tartok egy kicsit, mert mi van, ha letiltják őket?

Ezért is szeretnék valami "standard" keresni.

Előzmény: Delila10 (24506)
roley Creative Commons License 2014.03.16 0 0 24550

Ez már működött, köszönöm

Előzmény: Fferi50 (24549)
Fferi50 Creative Commons License 2014.03.16 0 0 24549

Szia!

 

Próbáld ki a következő makrót:

 

sub makró1

dim md as range,mdcim as string

Set md = ActiveSheet.UsedRange.Find(what:=".", lookat:=xlPart, LookIn:=xlValues)
mdcim = md.Address
Do While Not md Is Nothing
   md.Value = Val(md.Value)
   Set md = ActiveSheet.UsedRange.Find(what:=".", lookat:=xlPart, LookIn:=xlValues, after:=md)
   If md.Address = mdcim Then Exit Do
Loop

end sub

 

Az a probléma, hogy az excel a makrókban csak a pontot ismeri fel tizedes vessző jelölőnek. A val függvény is így működik. Amikor a cella értéket átalakítod a val függvénnyel, automatikusan a magyar beállítású formátum fog előjönni a cellában.

 

Remélem, ez megoldja a problémádat.

 

Üdv.

Előzmény: roley (24546)
Fferi50 Creative Commons License 2014.03.16 0 0 24548

Szia!

 

Igazad van, nálam sem működik helyesen a makró és az független a szám hosszától is.

Most agyalok még rajta.

 

Üdv.

Előzmény: roley (24543)
Fferi50 Creative Commons License 2014.03.16 0 0 24547

Szia!

 

A makró - mint kiderült - nálam is "hepciáskodik" és nem működik helyesen, viszont a "kézi" keres - cserél igen. Ha bekapcsoltam a makrórögzítőt a "kézi" keres-cserélnél és a kapott makrót ráengedtem, akkor szintén nem működött. Olyan, mintha a pontot nem vesszőre, hanem üres sztringre cserélné.

 

Üdv.

Előzmény: Törölt nick (24545)
roley Creative Commons License 2014.03.16 0 0 24546

Van pont, nem képlettel számolódik. Amúgy a területi beállításoknál minden alapértelmezetten van: tizedes-->vessző. Ha ráállok, akkor is ugyan azt az értéket adja ki felül. Sajnos nekem sem sikerült sehogy sem rájönnöm a problémára, ezért eg kicsit farmucibb megoldást találtam ki ÖSSZEFŰZ képlettel.

 

Köszi a tanácsokat, tippeket

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

Van abban pont egyáltalán?

Ezek konstans cellaértékek, vagy képlettel számolódnak?

A területi beállításokban milyen karakter van megadva tizedesjelként?

Ha egy cellára ráállsz, amit benne látsz, megegyezik azzal, ami a szerkesztőlécen megjelenik?

 

Előzmény: roley (24543)
Fferi50 Creative Commons License 2014.03.16 0 0 24544

Szia!

 

Én inkább beállításokra/cellaformázásra gyanakszom, de 2013-ban nem vagyok kompetens, nekem a 2010-ben simán megcsinálja.

 

Üdv.

Előzmény: roley (24543)
roley Creative Commons License 2014.03.15 0 0 24543

A macro igy már lefut, de ugyan az a gond, mint ami a kiindulásnál volt. Valamiért az istenért sem akarja kicserélni a pontot vesszőre. 

 

Nem lehet, hogy azzal lehet gondja, hogy a pont után túl sok számjegy van. Más sheetekben, ahol pl 302.43, 11.43 stb vannak, tehát kevesebb számjegy a pont után, ott nincs gond az átalakítással.

Előzmény: Fferi50 (24542)
Fferi50 Creative Commons License 2014.03.15 0 0 24542

Bocs, zárójelek nélkül kell beírni:

 

Range("B3:C10").Replace ".",","

 

Üdv.

Előzmény: roley (24541)
roley Creative Commons License 2014.03.15 0 0 24541

Próbáltam az általad javasolt módon, de még mindig hibaüzenetet ir ki:

"Compline error: Expected: ="

 

Ha simán bemásolom, akkor, is pirossal jelöli az adott sorban h valami gond van.

 

 

Előzmény: Fferi50 (24538)
Fferi50 Creative Commons License 2014.03.15 0 0 24540

Elkéstél :(

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

Range("B3:C10").Replace(".",",")

Előzmény: roley (24537)
Fferi50 Creative Commons License 2014.03.15 0 0 24538

Szia!

 

A mit és a mire az mindig szöveg kell legyen! Csináld lsz. így:

 

Range("B3:C10").Replace(".",",")

 

vagy ha ez nem tetszik, akkor

 

mit="."

mire=","

Range("B3:C10").Replace(mit,mire)

 

Üdv.

Előzmény: roley (24537)
roley Creative Commons License 2014.03.15 0 0 24537

Akkor elvileg nekem a következő parancsot kellene használnom:

 

Range("B3:C10").Replace(.,,)

 

Viszont erre a következő üzenetet kapom: "Expected: identifier or bracketed expression

Előzmény: Fferi50 (24536)

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