Opslag i interval mellem to kolonneværdier

  A B C
1 1200 1235 Køer
2 1278 1330 Heste
3 1400 1600 Høns
4 1651 1687 Grise
5 1912 2211 Får

I ovenstående eksempel skal man forestille sig at tallene i kolonne A og B er henholdsvis øverste og nederste grænse for et interval af numre, der repræsenterer dyrene i kolonne C. Alle dyr mellem 1278 og 1330 er således heste. Vi ønsker nu at kunne taste et givet tal, ogfå at vide, hvilket dyr, tallet repræsenterer. Havde numrene i kolonne A været fortløbende, kunne det have været løst med LOPSLAG(), men det går ikke, når der er "huller" i nummerrækkefølgen.

I stedet kan man bruge denne funktion:

Function FInterval(cel As Long, rn As Range, kol As Byte) As Variant
    For Each c In rn.Columns(1).Cells
        If cel >= c.Value And cel<= c.Offset(0, 1).Value Then
            FInterval = Format(c.Offset(0, kol - 1).Value, "dd-mm-yy")
            Exit Function
        End If
    Next c
    FInterval = CVErr(xlErrNA)
End Function


Brug den fx som =Finterval(D1;A1:C5;3)

hvor D1 er den celle, hvor man indtaster sin søgeværdi. A1:C5 er den matrix (område), man har sine værdier i og 3 er den kolonne i matricen, der indeholder værdien, her dyrets navn, som skal returneres. Findes tallet, man søger, ikke i matricens første kolonne, returneres #I/T!

Har man således tastet 1305 i D1 returner formlen Heste. Har man tastet 1610 returneres #I/T!

- Tilbage til makroer -
- Tilbage til Excel -