Avatar billede bjarke Nybegynder
15. september 2000 - 10:41 Der er 11 kommentarer og
1 løsning

Avanceret søgeformel(?)

Jeg har en (kæmpe) tabel. I første kolonne er der en række decimaltal. Jeg har brug for en formel (helst ikke makro), som kan finde det tal i kolonnen, som er nærmest et andet tal.

Ex:
Find tal nærmest (alternativt første tal, der er større end) 2.

1,23
1,77
2,67
3,54

Svar: 1,77 (alternativt 2,67)

Er det forståeligt?
Avatar billede frankgrevil Praktikant
15. september 2000 - 11:41 #1
Hvis dine data er sorteret stigende (og det synes de at være), vil følgende give dig NÆRMESTE LAVERE TAL end opslagsværdien:

=LOPSLAG(opslagsværdi;dataområde;1)

I dit eksempel vil det altså blive 1,77.

Jeg er klar over, at det ikke er præcis dét, du ville have, men herefter kan vi jo bygge flere narrestreger på.
Avatar billede bjarke Nybegynder
15. september 2000 - 11:50 #2
frank >> Det er helt klart noget af det rigtige. Problemet er, at jeg bruger formlen på et andet ark end tabellen. Hvad skal jeg så skrive i 3. parameter for kolonnenummer, når værdien skal tages fra 4. kolonne i tabel-arket?

Hvis du fixer den, så er pointene dine :-)
Avatar billede frankgrevil Praktikant
15. september 2000 - 11:53 #3
3. parameter er det relative søjlenummer i dataområdet. I eksemplet består dataområdet af én søjle, og derfor er værdien sat til 1. Ok?
Avatar billede frankgrevil Praktikant
15. september 2000 - 11:55 #4
I øvrigt vil følgende formel give det samme, HVIS du husker at afslutte indtastningen med Ctrl+Skift+Enter:

=MAKS(A1:A2000*(A1:A2000<opslagsværdi))

\"opslagsværdi\" er selvfølgelig en talværdi eller cellereference.
Avatar billede bjarke Nybegynder
15. september 2000 - 11:55 #5
Hmmm, jeg skal slå værdien op i kolonne 2 og bruge værdien fra kolonne 4.

Vil det sige, at begge kolonnerne skal være med i dataområdet? Søger lopslag() så ikke i begge kolonner?
Avatar billede bjarke Nybegynder
15. september 2000 - 12:11 #6
Smart det med maks. Mange tak for hjælpen. Jeg fandt ud af det sidste.
Avatar billede frankgrevil Praktikant
15. september 2000 - 12:42 #7
... og så skal der vist endda stå <= og ikke < i formlen.
Avatar billede bjarke Nybegynder
15. september 2000 - 12:42 #8
Naturligvis ;-)
Avatar billede frankgrevil Praktikant
15. september 2000 - 14:07 #9
Til din kommentar fra 11:55:47:

=LOPSLAG() slår op i første kolonne i dataområdet, men returnerer indholdet af en valgfri søjle i dataområdet. Søgningen sker altså kun på første kolonne.
Avatar billede frankgrevil Praktikant
15. september 2000 - 14:50 #10
Nu har jeg arbejdet lidt mere med problemet. Man behøver ikke sortere datasættet for at få følgende til at virke (stadig afsluttet med Ctrl+Skift+Enter):

Største tal mindre end opslagsværdi:
=MAKS(HVIS(A1:A2000<=opslagsværdi;A1:A2000;\"\"))

Mindste tal større end opslagsværdi:
=MIN(HVIS(A1:A2000>=opslagsværdi;A1:A2000;\"\"))
Avatar billede nerøs Nybegynder
17. september 2000 - 14:06 #11
For at bygge lidt videre på frankgrevils ide:

{=MIN(HVIS(ABS(A1:A2000-opslagsværdi)=MIN(ABS(A1:A2000-opslagsværdi));A1:A2000;\"\"))}

Denne formel finder nærmeste værdi i et hug

Eller:

{=INDEKS(A1:A2000;SAMMENLIGN(MIN(ABS(A1:A2000-opslagsværdi));ABS(A1:A2000-opslagsværdi);0))}

Her finder =sammenlign() nummeret på den række hvor ABS(a1:a2000-sammenlign)=MIN(ABS(a1:a2000-sammenlign)).
Herefter slår =INDEKS() dette rækkenummer op i matriksen A1:A2000

VH Nerøs

Avatar billede frankgrevil Praktikant
17. september 2000 - 15:02 #12
---> nerøs

Jeg er målløs. Glimrende gået!  ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester