26. august 2008 - 07:52Der er
21 kommentarer og 1 løsning
Kan man med LOPSLAG få returneret værdi 2,3,4,5 osv
Hej, jeg har flg formel hvor den leder efter en værdi i en liste:
=LOPSLAG($F$2;A:K;1;"FALSK")
A 1 Æble 2 Pærer 3 Æblekage 4 Banan
Jeg skriver æble* i felt F2 og den leder nu i ovenstående liste for at returnere noget der svarer til min indtastníng. Den vil selfølgelig returnere den første værdi den finder, altså "æble". Men jeg vil gerne have returneret alt hvor der står "æble" i altså også "Æblekage". Kan man få den til at returnere værdi nr. 1,2,3,4 i forskellige celler eller hvordan?
Function Opslag(hvad, hvor, nr) Dim med(30): t = 1 Application.Volatile For Each c In hvor If InStr(1, c, hvad, vbTextCompare) > 0 Then med(t) = c: t = t + 1 Next If med(nr) <> 0 Then Opslag = med(nr) Else Opslag = "" End Function
i arket taster du fx. =opslag($F$2;$A$1:$B$100;1) hvor 1 er den første, udskift 1 med 2 for næste Du kan også taste =opslag($F$2;$A$1:$B$100;RÆKKE(1:1)) og så kopiere ned, så lister den alle som indeholde værdi i F2
Det var for at fp et arknavn ind i formlen. Jeg behøver dette da de emner der skal søges på ligger i forskellige ark og det ville være nemmere at ændre i en liste af "ark navne" i stedet for at ændre i formlerne hele tiden.
Men jeg kan umiddelbart ikke flette dette sammen med de formler du har lavet.
A B C 1 Æble Smager godt Om sommeren 2 Æblemost Smager bedre Hvis det er koldt 3 Pærer Er sunde Og grønne 4 Bananer Er Gule Og smaget også godt
Når jeg nu i felt E2 søger på "Æble" vil der kommer "æble" samt "æblemost" op i celle D1 og D2 hvis det er der jeg har placeret søge formlerne Altså:
A B C D E 1 Æble Smager godt Om sommeren "Æble" 2 Æblemost Smager bedre Hvis det er koldt "Æblemost" Æble 3 Pærer Er sunde Og grønne blank 4 Bananer Er Gule Og smaget også godt blank
Men er der nogen mulighed for at jeg i celle F1 kan få vist "Smager godt" og i celle G1 kan få vist "om sommeren" osv nedad?
LOPSLAG bruges med flg argumenter: 1) Den værdi du vil finde (A1) 2) Den matrix du gerne vil søge i ($A$1:$C$4) - jeg bruger dollartegn så du kan kopiere formlen rundt, og der stadig peges på samme område 3) Den kolonne i matricen hvor du gerne vil have resultatet fra, altså 2 hvis du gerne vil have "Smager godt" eller 3 hvis du gerne vil have "Om sommeren". 4) FALSK - for at være sikker på at der kun returneres resultater hvor din opslagsværdi faktisk findes.
Et alternativ er at tage udgangspunkt i det svar jeg gav tidligere, men i det her tilfælde passer LOPSLAG perfekt.
Udskift funktionen med denne så skal du blot tilføje hvilken kolonne du vil have Du skal altså anvende samme funktion (opslag) til at hente æbler =opslag(arkcelle;værdicelle;a1:a10;1;0) er godt =opslag(arkcelle;værdicelle;a1:a10;1;1) er godt =opslag(arkcelle;værdicelle;a1:a10;1;2) osv...
Function Opslag(ark, hvad, hvor As Range, nr, kol) Dim med(30, 6): t = 1
Application.Volatile
For Each c In Sheets(ActiveSheet.Range(ark.Address).Value).Range(hvor.Address) If InStr(1, c, hvad, vbTextCompare) > 0 Then med(t, 0) = c.Offset(0, 0) med(t, 1) = c.Offset(0, 1) med(t, 2) = c.Offset(0, 2) med(t, 3) = c.Offset(0, 3) med(t, 4) = c.Offset(0, 4) med(t, 5) = c.Offset(0, 5) t = t + 1 End If Next If med(nr, kol) <> 0 Then Opslag = med(nr, kol) Else Opslag = ""
tak for det Excenelt!! det har været helt perfekt!! 200 goe til dig!
Synes godt om
Ny brugerNybegynder
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.