Keresés

Új hozzászólás Aktív témák

  • Mutt

    aktív tag

    válasz bartucz911 #41001 üzenetére

    Szia,

    Köszi a pontosítást. Beépített függvényekkel nem sikerült értelmes eredményt kihoznom, de ha UDF (makrós függvény) is játszik, akkor ezt próbáld ki. Alt-F11-el VBE szerkesztő megnyilik, majd ott Insert -> Module és a megjelenő üres ablakba másold be a kódot.

    Function NextMatch(adat As Range)
    Dim szam As Range
    Dim szamok As New Collection

    On Error GoTo ismetlodes
    For Each szam In adat
    If Len(szam.Value) > 0 Then
    szamok.Add szam.Value, CStr(szam.Value)
    End If
    Next szam

    Exit Function

    ismetlodes:
    NextMatch = szamok.Count

    End Function

    Ezek után lesz egy NextMatch függvényed, amely egy tartományt vár ahol a vizsgálandó számok vannak (a tartomány elejét ne fixáld!).

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Fferi50

    őstag

    válasz bartucz911 #41001 üzenetére

    Szia!

    Segédoszlopokkal és sok képlettel valósítható meg, ha nem szeretnél makrózni, mivel előre nem lehet tudni, hogy hány számot kell megvizsgálni.
    Ha feltételezzük, hogy az A oszlopban vannak a számaid, a B oszlopba szeretnéd látni a lépésszámot, a C oszlopban (esetleg) az ismétlődő számot, akkor a segédoszlopok - hogy elkülönüljenek- kezdődjenek az E oszlopban.
    Az E2 cella képlete:=HAHIBA(HOL.VAN($A2;$A3:$A$62;0);1000)
    Az F2 cella képlete:
    =HA(DARABTELI($A$2:$A3;$A3)=1;HAHIBA(HOL.VAN($A3;$A4:$A$62;0)+OSZLOP()-5;1000);1000)
    A G2 cella képlete:
    =HA(DARABTELI($A$2:$A4;$A4)=1;HAHIBA(HOL.VAN($A4;$A5:$A$62;0)+OSZLOP()-5;1000);1000)
    A H2 cella képlete:
    =HA(DARABTELI($A$2:$A5;$A5)=1;HAHIBA(HOL.VAN($A5;$A6:$A$62;0)+OSZLOP()-5;1000);1000)
    és így tovább, annyi oszlopon keresztül, ahány számig szeretnéd az összehasonlítási lehetőséget, mindig egy-egy sorral lejjebb téve a vizsgálódás tárgyát. A keresendő tartomány végét, ami most $62, a te tartományod végére állítsd be. Az 1000 egy kellőképp nagy szám, legyen a magasabb, mint az utolsó értéket tartalmazó sor.
    A képletet húzhatod lefelé az oszlopokon, ameddig már nincs összehasonlítható szám.
    A B2 cella képlete:
    =MIN(E2:X2)
    A C2 cella képlete:
    =INDIREKT("A" & B2 +SOR() )
    Ez is húzható lefelé az oszlopban.
    Üdv.
    Ps. Persze ez elég bonyolult. A makró sokkal egyszerűbb megoldás.

    [ Szerkesztve ]

Új hozzászólás Aktív témák