Keresés

Részletes keresés

tt65 Creative Commons License 2009.05.31 0 0 9379
nekem nem műxik, ez download-link?
Előzmény: Delila_1 (9376)
Törölt nick Creative Commons License 2009.05.30 0 0 9378
Bizonyára lehet, makróval nagyon sok minden megoldható. Hogy néz ki az összesítő lap, és mi van a sorokban?
Előzmény: Ber_ber (9374)
Delila_1 Creative Commons License 2009.05.30 0 0 9377
Le a kalappal!
Előzmény: Törölt nick (9375)
Delila_1 Creative Commons License 2009.05.30 0 0 9376

Feltettem a függvényeket négy nyelven tartalmazó xls-t. 

 

http://rapidshare.de/files/47357314/Functions_onlinehelp.xls.html

Előzmény: NeomatiK (9371)
Törölt nick Creative Commons License 2009.05.30 0 0 9375
Lehet, hogy már van jobb megoldásod, nem néztem végig a többiek javaslatait. A változatosság kedvéért itt egy felhasználói függvény.

Function Követési_távolság(KezdőCella As Range, Cella As Range)
Dim Hit As Range, Result As Long

With Cella
Set Hit = .EntireColumn.Find(what:=.Value, after:=Cella, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
If Hit Is Nothing Then GoTo hiba
If Hit.Row >= Cella.Row Then
Result = .Row - KezdőCella.Row + 1
Else
Result = .Row - Hit.Row
End If
End With
Követési_távolság = Result
Exit Function
hiba:
Követési_távolság = "hiba"
End Function


B1-be a képlet:
=Követési_távolság($A$1;A1)

Lehúzással kiterjeszthető akármeddig. A KezdőCella az a cella, amelyikben az első számod van.
Előzmény: NeomatiK (9351)
Ber_ber Creative Commons License 2009.05.30 0 0 9374

Hát igen, úgy látszik ezt a kompromisszumot meg kell kötni, az új lap átnevezésén felül, még egy adatot be kell írni valahova a lap beillesztéséhez.

Köszönöm!

Lenne itt még valami: Ugyanebben a fájlban van egy összesítő lap, amely az újabb, és újabb lapok esetén mindig egy sorral bővül. Ezt a sor beszúrást lehetne automatizálni?

 

 

 

Előzmény: Törölt nick (9350)
Delila_1 Creative Commons License 2009.05.30 0 0 9373

Ahhoz, hogy ne az egész lapodat figyelje, a

For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count helyett írj

For oszlop = 2 to [ide írd be fixen az utolsó vizsgálandó oszlopod számát, D esetén 4, P-nél 16]

 

a For sor = 2 To ActiveSheet.UsedRange.Rows.Count sornál pedig

For sor = 2 to [ide jön az alsó sorod sorszáma]

Ez a sor kétszer szerepel a makróban.

 

Ha privátban megadod a címed, délután küldök egy fájlt, ami 333 db függvény nevét adja meg 4 nyelven (magyar, angol, német és francia).

 

A 0-val kapcsolatos hibát most nem érek rá megnézni, de a más számra átírás nálam is bejött.

 

 

 

 

Előzmény: NeomatiK (9369)
Törölt nick Creative Commons License 2009.05.30 0 0 9372
Ha legközelebb megint probléma lenne egy függvény angol-magyar neve, keresd meg a saját gépeden a FUNCS.XLS fájlt (általában itt található: C:\Program Files\Microsoft Office\OFFICE11\1038\) ebben mindent megtalálsz.
Előzmény: NeomatiK (9371)
NeomatiK Creative Commons License 2009.05.30 0 0 9371

Ez is nagyon jó! Köszi!
Mit szenvedtem (na jó, olyan sokat nem) mire megtaláltam a MATCH magyar megfelelőjét, mert nekem magyar excel van :) Egy ilyet találtam, ebből tudtam meg:
http://mars.trefortszki.hu/users/szabo.edina/11.ME/Excel%20Fuggvenyek.doc

 

Hogy lehet a sorrendet megfordítani? Nem találtam rá parancsot. :-/

Előzmény: wawabagus (9365)
NeomatiK Creative Commons License 2009.05.30 0 0 9370
Még annyit hozzátennék, hogy ahol 0-k vannak a forrásoszlopban, ott a 0 első előfordulásakor a cellákat eltolva adja az eredményt, aztán a továbbiakban a 0 helyénél nem ír ki semmit, üresen hagyja azt a sort, függetlenül attól, hogy a B1 sorba beírtam-e 0-t a többi vizsgált szám mellé vagy sem.

Végülis ez nem baj, mert a 0-kat nem muszáj kijeleznie, vagy legfeljebb megszámolom. Vagy kicselezem, és átírom a 0-kat másik számra és úgy vizsgálom meg, aztán visszaírom.

Előzmény: Delila_1 (9366)
NeomatiK Creative Commons License 2009.05.30 0 0 9369
Ez nagyon klassz! Köszi!!! :)

Hogyan lehet azt megoldani, hogy csak a kijelölt tartományban végezze el a makrót? Mert ha csak úgy elindítom, a munkafüzet többi részét felülirja (elcseszi), ahova pedig nem is kéne írnia.

Most azt csinálom, hogy egy külön excel táblába kimásolom csak a forrásoszlopot, és ott futtatom le a makrót. Aztán visszamásolom a kapott eredményt.

Előzmény: Delila_1 (9366)
Delila_1 Creative Commons License 2009.05.29 0 0 9368
B1-től. Mellé ütöttem.
Előzmény: Delila_1 (9367)
Delila_1 Creative Commons License 2009.05.29 0 0 9367
Kipróbáltam 20.000 db, 5 féle adattal. Az én lassúcska gépemen 49 sec alatt végzett vele. Ne felejtsd el az adatok fölé B2-től kezdve jobbra beírni a különböző értékedet.
Előzmény: Delila_1 (9366)
Delila_1 Creative Commons License 2009.05.29 0 0 9366

Látom, még nem jártál erre.

Felgyorsítottam a makrót, ezt próbáld ki.

 

Sub valami()
    Application.ScreenUpdating = False
    For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count
        For sor = 2 To ActiveSheet.UsedRange.Rows.Count
            sz = Cells(sor, 1)
            If sz = Cells(1, oszlop) And f = 0 Then
                Cells(sor, oszlop) = sor - 1: f = 1
            End If
            If Cells(sor, oszlop) = "" And oszlop - 1 = sz Then
                Cells(sor, oszlop).Select
                felso = Cells(sor, oszlop).End(xlUp).Row
                Cells(sor, oszlop) = sor - felso
            End If
        Next
        f = 0
    Next
   
    'Összes előfordulás másolása a B oszlopba
    For sor = 2 To ActiveSheet.UsedRange.Rows.Count
        Cells(sor, 1).Select
        oszlop = Selection.End(xlToRight).Column
        Cells(sor, 2) = Cells(sor, oszlop)
    Next
   
    'Első sor, és C:F oszlopok törlése
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Columns("C:F").Select
    Selection.Delete Shift:=xlToLeft
   
    Range("A1").Select
    Application.ScreenUpdating = True
End Sub

Előzmény: NeomatiK (9354)
wawabagus Creative Commons License 2009.05.29 0 0 9365

Szia!

Egyik kollégámat is behülyítettem.

Ő ezt a megoldást találta:

 

=IF(A2=1,MATCH(1,A3:$A$25,0),IF(A2=2,MATCH(2,A3:$A$25,0),IF(A2=3,MATCH(3,A3:$A$25,0),IF(A2=4,MATCH(4,A3:$A$25,0),IF(A2=5,MATCH(5,A3:$A$25,0))))))

 

Viszont ez előrefelé számolja a sorrendet, szóval előbb meg kell fordítanod a sorrendet...majd vissza...a függvényt meg value formájában kell lementeni...

 

 

 

Előzmény: NeomatiK (9360)
wawabagus Creative Commons License 2009.05.29 0 0 9364

Köszi,

Most nézegetem...

:-)

Előzmény: stromba (9348)
tt65 Creative Commons License 2009.05.29 0 0 9363
a megjelenítéshez van egy másik lehetőség is, a beállításoknál, a "Nulla megjelenítése nulla értékű cellákban" pipa megfelelő alkalmazásával!
Előzmény: NeomatiK (9352)
Delila_1 Creative Commons License 2009.05.29 0 0 9362

Az End Sub elé még tedd be:

 

    For sor = 2 To ActiveSheet.UsedRange.Rows.Count
        Cells(sor, 1).Select
        oszlop = Selection.End(xlToRight).Column
        Cells(sor, 2) = Cells(sor, oszlop)
    Next

Ez a B oszlopba beírja a többi oszlop adatát. Utána a többi oszlopot törölheted.

Előzmény: NeomatiK (9360)
Delila_1 Creative Commons License 2009.05.29 0 0 9361

Csak makróval tudom elképzelni.

 

Sub valami()
    For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count
        For sor = 2 To ActiveSheet.UsedRange.Rows.Count
            sz = Cells(sor, 1)
            If sz = Cells(1, oszlop) And f = 0 Then
                Cells(sor, oszlop) = sor - 1: f = 1
            End If
        Next
        f = 0
    Next
    For oszlop = 2 To ActiveSheet.UsedRange.Columns.Count
        For sor = 2 To ActiveSheet.UsedRange.Rows.Count
            sz = Cells(sor, 1)
            If Cells(sor, oszlop) = "" And oszlop - 1 = sz Then
                Cells(sor, oszlop).Select
                felso = Cells(sor, oszlop).End(xlUp).Row
                Cells(sor, oszlop) = sor - felso
            End If
        Next
    Next
End Sub


 

 

Előzmény: NeomatiK (9360)
NeomatiK Creative Commons License 2009.05.29 0 0 9360

A törlést szeretném elkerülni, mert akkor már egyszerűbb ha én megszámolom és beírom manuálisan, vagyis időben kb ugyanannyi.

Sokszor nem kell a jövőben csinálnom, de jelenleg kb 20ezer cellát kéne így megvizsgálni. És manuálisan kicsit sokáig tartana, bár elkezdtem, de háromszáznál abbahagytam :) Jobb lenne valami frappánsabb, gyorsabb megoldás.

 

Amit beraktál képet, ott tényleg valami bibi van a számolást illetően.

Előzmény: wawabagus (9357)
wawabagus Creative Commons License 2009.05.29 0 0 9359

Mégsem jó a függvény, nem mindig csinálja jól a dolgát...

:-(

Előzmény: wawabagus (9356)
wawabagus Creative Commons License 2009.05.29 0 0 9358

#>*!!!#@&>!!!

 

 

Előzmény: wawabagus (9357)
wawabagus Creative Commons License 2009.05.29 0 0 9357

hmmm...bénán másoltam be megint valamit...

a sok sok függvéynes sor helyett ennek kellet volna lennie:

 

A 1-esek 1 1 3 2 5 3 1 4 1 1 3 2 2 3 3 4 1 5 4 6 5 7

 

De az a baj, hogy azért nem 100%-os ez a megoldás...

 

És mi a lényeg?

Hogy csupán függvénnyel 100%-ig automatikusan megoldjuk, semmi törlés stb..., vagy hogy csak simán "kész legyen" :-)))...szóval, hogy csak egyszer kell ilyesmit csinálnod, vagy sokszor majd a jövőben?

 

Előzmény: wawabagus (9356)
wawabagus Creative Commons License 2009.05.29 0 0 9356

És az pl lehetséges, hogy utólag filterrel töröld azokat a sorszámokat, amik pl nem az egyesre vonatkoznak?

 

Azt tudom hogyan sorszámozz, ha van külön 1-es, 2-es stb oszlopod, de az a baj, hogy csak úgy tudom megoldni, hogy legyen érték a nem egyesek mellett is...

 

A 1-esek 1 1 3 1,B2+1,IF(AND(A3=1,A21),B2+1,IF(AND(A3=1,A2=1),1,"")))'>2 5 1,B3+1,IF(AND(A4=1,A31),B3+1,IF(AND(A4=1,A3=1),1,"")))'>3 1 1,B4+1,IF(AND(A5=1,A41),B4+1,IF(AND(A5=1,A4=1),1,"")))'>4 1 1,B5+1,IF(AND(A6=1,A51),B5+1,IF(AND(A6=1,A5=1),1,"")))'>1 3 1,B6+1,IF(AND(A7=1,A61),B6+1,IF(AND(A7=1,A6=1),1,"")))'>2 2 1,B7+1,IF(AND(A8=1,A71),B7+1,IF(AND(A8=1,A7=1),1,"")))'>3 3 1,B8+1,IF(AND(A9=1,A81),B8+1,IF(AND(A9=1,A8=1),1,"")))'>4 1 1,B9+1,IF(AND(A10=1,A91),B9+1,IF(AND(A10=1,A9=1),1,"")))'>5 4 1,B10+1,IF(AND(A11=1,A101),B10+1,IF(AND(A11=1,A10=1),1,"")))'>6 5 1,B11+1,IF(AND(A12=1,A111),B11+1,IF(AND(A12=1,A11=1),1,"")))'>7

 

A függvény pedig a B3-as cellában ez:

=IF(OR(A3<>1,AND(A3=1,A2<>1)),B2+1,IF(AND(A3=1,A2=1),1,""))

 

De utólag ki kell dobni azokat a sorszámokat, amit nem az 1-esre vonatkozank...

És így tovább a 2,3,4,5-tel más oszlopokban...

 

Persze ez elég körmegoldás...

 

Gondolom valami elegánsabb járt a fejedben :-)...

Előzmény: NeomatiK (9354)
wawabagus Creative Commons License 2009.05.29 0 0 9355

Szívesen foglalkozom vele, mert most nincs más dolgom nagyon...

Csak épp már alig van haj a fejemen...:-)))))))

Előzmény: NeomatiK (9354)
NeomatiK Creative Commons License 2009.05.29 0 0 9354
:))))

Köszönöm az együttérzést és a segíteni akarást! Nem szeretnék senkit se lefoglalni, ha van fontosabb, dolga is. De ha szívesen foglalkozol vele, azt nagyon szépen köszönöm!

Előzmény: wawabagus (9353)
wawabagus Creative Commons License 2009.05.29 0 0 9353

Basszus jól feladtad a feladatot...most ezzel idegelem magam...

Jövök, ha lesz megoldásom...

Előzmény: NeomatiK (9352)
NeomatiK Creative Commons License 2009.05.29 0 0 9352

Az eredmény lehet külön-külön oszlopban is, tehát ha 5 számot vizsgálunk az A oszlopban akkor B-ben az 1-esek, C-ben a 2-esek, D-ben a 3-asok, E-ben a 4-esek, F-ben az 5-ösök... ha így hamarabb van rá függvény. Ilyenkor üres cellákkal szeretném feltölteni (meghagyni) az oszlopot, ahol nincs találat.

 

A   B  C  D ....

1   1

3           2

5  

1   3

1   1

3           4

2      7

3           2

1   4

4  

5  

Előzmény: NeomatiK (9351)
NeomatiK Creative Commons License 2009.05.29 0 0 9351

Hellóbelló!

 

Nem találtam függvényt, de biztos van rá valami ügyesség :)

 

Szóval egy oszlopban vannak számok, pl 1-től 5-ig. A mellette lévő cellában szeretném megjeleníteni, hogy hány cella múlva jelenik meg megint az a szám. Már az első cellától kéne számolni, hogy mikor jelenik meg (de ha csak a keresett szám első előfordulásától számolja az is jó)

 

Példa: A oszlop a számok 1-5 között, B oszlop az eredmény

 

A   B

1   1

3   2

5   3

1   3

1   1

3   4

2   7

3   2

1   4

4   10

5   8

 

Törölt nick Creative Commons License 2009.05.28 0 0 9350
Vegyünk egy függvényt a 3. lapon, amely a 2. lapról vesz adatot. Például:

=SZUM(Munka2!C4:D14)

A cél az, hogy a 2. munkalap neve ne egy fix dolog legyen, hanem szintén paraméter. Ezt ugye az INDIREKT függvénnyel lehet megoldani. Ha az aktuális munkalap A1 cellájában van a 2. munkalap neve (tehát A1 = "Munka2"), akkor a fenti példa így módosul:

=SZUM(INDIREKT("'" & A1 & "'!C4:D14"))

Tegyük fel, hogy a 3. lapod tele van olyan képletekkel, ami a fenti módon hivatkozik a 2. lapra: az A1 cellából veszi a lap nevét. Ha ezt a 3. lapot lemásolod, és így létrejön a 4. lap, csak annyi dolgod van, hogy ezen a 4. lapon átírod az A1 cella értékét Munka3-ra, és máris az összes képlet a 3. lapra fog hivatkozni.
Előzmény: Ber_ber (9349)

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