Keresés

Részletes keresés

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)
Ber_ber Creative Commons License 2009.05.28 0 0 9349

Nem egészen értem .

Ha pl. a harmadik lapot átmásolom negyediknek, mitől írodnak át automatikusan a második lapra vonatkozó cella hívatkozások a harmadik lapra vonatkozóra?

Előzmény: Törölt nick (9335)
stromba Creative Commons License 2009.05.28 0 0 9348
Előzmény: wawabagus (9341)
tt65 Creative Commons License 2009.05.28 0 0 9347
az irányított szűrőnél van egy olyan lehetőség, hogy "Csak az egyedi rekordok megjelenítése", ha az eredményt más helyre másolod.
Előzmény: Gubameister (9342)
Gubameister Creative Commons License 2009.05.28 0 0 9346
Köszi a gyors választ. ;)
wawabagus Creative Commons License 2009.05.28 0 0 9345
:-)...gyorsabb voltál 2 perccel :-DDDD
Előzmény: Delila_1 (9343)
wawabagus Creative Commons License 2009.05.28 0 0 9344

Pl beszúrhatsz egy oszlopot és használhatod a COUNTIF függvényt.

Amennyiben van infód/azonosító, ami alapján egyértelműen el tudod dönteni, hogy valami duplán van.

 

Ha pl az e oszlopban van ez az azonosító, akkor írd ezt:

 

=COUNTIF(E:E,$E2)

 

Aztán filterrel kiszűröd az 1-nél nagyobb értékeket és törlöd a sorokat...

 

Bár biztos van más megoldás is...

 

Nekem ez jut eszembe...

 

 

Előzmény: Gubameister (9342)
Delila_1 Creative Commons License 2009.05.28 0 0 9343

A darabteli függvénnyel összeszámoltatod az adataid mellett, utána autoszűrővel kikeresteted az 1-nél nagyobb értéket tartalmazó sorokat.

Előzmény: Gubameister (9342)
Gubameister Creative Commons License 2009.05.28 0 0 9342
Sziasztok

Lenne egy problémám amihez egy kis segítség kellene:

Van egy elég nagy mennyiségű lekért adathalmazom (főkönyvi karton több ezer sor), és elképzelhető, hogy vannak kétszer szereplő tételek benne amiket szeretnék kiszűrni.

Van rá bármilyen ötletek, hogy ezt hogyan tudnám megcsinálni? A legegyszerűbb A-Zig sorba rakom és átnézem ilyen mennyiségnél túl időigényes amivel nem állok éppen túl jól :P

Esetleg azt be tudom állítani, hogy az autószűrő bekapcsolása után kiírja, hogy melyik szűrés esetében hány találat van?

Köszi

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