Hirdetés

Keresés

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

  • Fferi50

    Topikgazda

    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.

  • Mutt

    senior 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

  • Mutt

    senior tag

    válasz bartucz911 #40935 üzenetére

    Szia,

    Lehet, hogy rosszul értelmezem a feladatot, mert a mintának megadott sorozatból nem jönnek ki az eredmények, de itt egy változat arra, hogy keressük meg hogy hány cellával később található meg ugyanazon szám.

    Ha Excel 2010-ed van legalább, akkor az ÖSSZESÍT (AGGREGATE) függvény tud segíteni, a képlet B2-ben:
    =HAHIBA(ÖSSZESÍT(15;6;SOR(szamok)/((szamok=A2)*(SOR(szamok)>=SOR()+1));1)-SOR();"")

    Ha régebbi, akkor egy tömb függvény:
    =HAHIBA(HOL.VAN(1;ELŐJEL((szamok=A2)*(SOR(szamok)>=SOR()+1)*SOR(szamok));0)-SOR()+1;"")

    A feladathoz létrehoztam a névkezelőben egy dinamikus tartományt "szamok" névvel, a képlete:
    =ELTOLÁS(Sheet1!$A$2;;;DARAB(Sheet1!$A:$A))

    Erre csak akkor van szükséged, ha nem tudod előre hány sorban lesz számok.

    A végén pedig cella formázással adom az eredményhez a "lépés" szöveget. A formázásnak ezt kell megadni:
    [>0]#" lépés";;;

    üdv

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