Find adresse på mindste/største celle

At finde adressen på en celle med et bestemt indhold er ikke noget problem, såfremt man kun skal undersøge en række eller en kolonne. så kan det gøres med en almindelige formel, med funktionen SAMMENLIGN() i kombination med andre funktioner. Skal man fx finde adressen på den celle, der indeholder den mindste værdi i området A1:A10, kan man bruge

=ADRESSE(SAMMENLIGN(MIN(A1:A10);A1:A10);1)

og for at finde adressen på den celle, der indeholder den største værdi i A1:J1 kan man bruge

=ADRESSE(1;SAMMENLIGN(MAKS(A1:J1);A1:J1))

Skal man derimod finde den mindste eller største værdi i området A1:J10, går det ikke helt så let. Det skyldes at SAMMENLIGN() ikke kan arbejde på to-dimensionelle områder. Det er muligt, ved hjælp af indtil fire navngivne områder, og formler med omkring 19-20 indbyggede funktioner, heraf op til 7 indlejringsniveauer, at lav e en formelløsninger, der gælder for kvadratiske celleområder, men ikke for rektangulære. I stedet kan man anvende nedenstående brugerdefinerede funktion.

Function MinMaksAdr(rn As Range, fnc As Byte) As String
    Dim Fct As Single
    Select Case fnc
        Case Is = 1
            Fct = Application.WorksheetFunction.Min(rn)
        Case Is = 2
            Fct = Application.WorksheetFunction.Max(rn)
    End Select
    For Each c In Range("B1:F11").Cells
        If c.Value = Fct Then
            FuncAdr = c.Address
            Exit Function
       End If
    Next
End Function

Den anvendes som alle andre funktioner, fx =MinMaksAdr(A1:J10;1). Tallet i det sidste argument, fortæller om den skal finde den største værdi eller den mindste. 1 finder adressen på cellen med mindste værdi, 2 den med største. Funktionen kan forholdsvis let udbygges med andre ting ved at indsætte nye Case Is linjer.

Ligesom de to indbyggede funktioner, vil denne funktion kun finde den første, hvis der er flere identiske største/mindste værdier. Da funktionen er baseret på For...Each...Nect er rækkefølgen at alle kolonner i første række gennemsøges, dernæst alle kolonner i næste række og så fremdeles. Står der derfor to ens  "mindste" værdier i  H1 og A2, vil den finde adressen på den værdi, der står i H1.

- Tilbage til makroer -
- Tilbage til Excel -