Endnu mere om opslag

I de tidligere artikler om opslag, har målet altid være, at finde det, der søges efter i en liste. Her handler det om, at finde noget, der er større eller mindre, end det jeg leder efter.

Har vi fx følgende liste

  A B
1 0 Dårligt
2 10 Mindre godt
3 20 Acceptabel
4 30 Godt
5 40 Meget godt

kan vi betragte 0, 10, 20 osv. som intervalgrænser. De skal læses som "mellem 0 og 9 point er dårligt". Ved hjælp af LOPSLAG kan vi finde ud af, hvilken bedømmelse et givent antal point skal have: =LOPSLAG(C1;A1:B5;2;SAND). I de øvrige varianter af LOPSLAG i andre artikler, har jeg hele tiden haft FALSK i det sidste argument. FALSK betyder, at såfremt værdien, der søges efter, ikke findes eksakt i matricen, returneres en fejlværdi: #I/T!. Kun hvis værdien findes eksakt, returneres en værdi fra kolonne 2. Indtastes således 11 returneres altså #I/T!.

I dette som i de øvrige eksempler, er C1, den celle, hvor den ønskede opslagsværdi indtastes.

SAND kræver at matricens første kolonne er sorteret i stigende orden som vist. (FALSK kræver ingen sortering). Indtastes et tal, som ikke står på listen, fx 11vil formlen returnere værdien, fra den opslagsværdi, der er lige over, den søgte værdi. Lige over 11 står der 10, og der returneres derfor "Mindre godt". Lige over 66 står der 40, og der returneres derfor "Meget godt". Der returneres med andre ord, den værdi, der står ud for den umiddelbart mindre opslagsværdi. Værdier mindre en 0 returnerer #I/T!.

 

Men hvad så, hvis man har brug for at finde værdien, der står ud for den umiddelbart højere opslagsværdi? Desværre kan man ikke bare sortere i omvendt rækkefølge. så returneret formelen en fejl (#/I/T!). Dette skyldes at LOPSLAG() med SAND i sidste argument, altid kræver sortering i faldende orden. I stedet kan man bruge en anden metode. Den forudsætter at matricens første kolonne er sorteret i faldende orden:

  A B
1 49 Meget godt
2 39 Godt
3 29 Acceptabel
4 19 Mindre godt
5 9 Dårligt

Formlen skal så være =INDEKS(A1:B5;SAMMENLIGN(C1;A1:A5;-1);2)

Formlen skal læses som følger: A1:B5 er matricen, der indeholder opslagsværdi og returværdi. Opslagsværdien i første kolonne, og returværdien i anden. C1, er igen cellen, hvor den søgte opslagsværdi indtastes. A1:A5 er de celler, hvor der skal ledes efter den ønskede opslagsværdi. -1 er en værdi, som netop for SAMMENLIGN til at returnere placeringen af den nærmeste højere værdi, hvis den søgte værdi ikke findes. 2-tallet indikerer hvilken kolonne i matricen, der indeholder returværdien.

Et indtastet 11 i C1 vil returnere "Mindre god", da 19 er den nærmeste højere værdi i forhold til 11.

INDEKS() kræver en matrice, et rækkenummer og et kolonnenummer. Kolonnenummeret er kendt (2), og rækkenummeret er det, der findes ved hjælp af SAMMENLIGN().

 

Funktionen kan også bruges i stedet for VOPSLAG() med SAND. I så fald er det "bare" rækkenummeret, der skal være kendt, og kolonnenummeret, der findes med SAMMENLIGN(), fx

=INDEKS(A2:H3;2;SAMMENLIGN(C1;A2:H2;-1)).

- Til Top -
- Retur til Excel -