26. oktober 2007 - 16:52Der er
22 kommentarer og 1 løsning
LOPSLAG med VENSTRE funktion
Hej!
Hvordan opretter jeg følgende funktion:? I ark A har jeg en tekststreng på 11 karakterer, der skal slås op i ark B, som er et ark, hvor den sidste del af tekststrengen kan ændre sig og med meget lange tekststrenge. De første 11 karakterer ændrer sig ikke. Funktionen skal derefter slå værdien op i næste celle (tal), og returnere dette tal i ark A.
Function Hent(Selle, rng, kol) Application.Volatile For Each c In rng If Left(c, 11) Like Selle Then x = c.Offset(0, kol).Value: Exit For Next Hent = x End Function
i arket skriver du : =hent(A2;B!A2:A100;1)
hvor A2 er celle med tekststreng på 11 og B!A2:A100 er ark og område med dine lange tekststrenge og 1 er 1 kolonne til højre hvor værdi hentes
Undskyld jeg ikke er kommet tilbage noget før, men vores server har været nede hele dagen. Til dig 'be nice' kan jeg desværre ikke sætte en ekstra kolonne ind i ark B, da det helt skal importeres helt uden ændringer.
Excelent - jeg kan godt få din funktion til at virke, men har problemer med funktionen FORSKYDNING, og det er den jeg helst vil have til at virke, da der er folk, der skal bruge det, som intet ved om VBA. Jeg har følgende: =FORSKYDNING(Ark2!A1;SAMMENLIGN(A1;VENSTRE(list;11);0);1)ud kommer resultatet #VÆRDI! Hvad gør jeg forkert?
Hov, min Ctrl+SHIFT+ENTER var forsvundet igen. Nu kom det rigtige resultat frem. Det er jo "Excellent".....Den tager bare resultatet fra rækken nedenunder. Skal jeg gøre noget specielt for at tage resultatet fra samme række?
Kan ikke helt få det til at virke, men din funktion i VBA virker perfekt. Du skal derfor have mange tak for hjælpen. Smid lige dine points :o) Gnalling1
Hvad hedder arket værdi skal hentes fra ? Hvilken celle er din søgeværdi (er det A1)? Hvilken kolonne skal der søges i? Hvilken kolonne skal værdi hentes fra
hmm , kunne man ikke bare lave en =lopslag(venstre("ARK1!Celle med langstreng;11);'Ark2'!$a$1:$z$100;falsk) så kan man altid lave en =hvis(er.fejl(lopslag som ovenstående....)=SAND;"Værdien findes ikke";lopslag som ovenstående)
hehe.. var nu et forslag.. bruger den selv til lignende problematik.. var dog ikke lige sikker på 'erne og kan da se der mangler en kolonne reference... lavede lige et hurtig =LOPSLAG(VENSTRE(A2;6);Ark2!$A$1:$A$3;2;FALSK)
I kolonne A (ark1) står der fx. i celle A2: hansen_230734_et_eller_andet (da hansen er delen jeg vil slå op med 6 karakterer, ergo venstre(A2;6) Mit data jeg slår op i, er på ark2 - data der slås op i er i første kolonne (vigtigt) fx ark2: celle A3 , står der hansen, celle B3 står der Mit navn er hansen.
lopslaget slår nu Ark1 celle A2 med de første 6 karakter fra venstre op i data på ark2 (HUSK fast reference med $ (tryk F4 når du har markeret dataområdet). Lopslaget når den finder den første reference , så tager den kolonne 2 i data og viser det.. hvis den ikke kan finde det, så viser den I/T# (derfor hvis(er.fejl(...)=sand, ), så viser den en lidt pænere fejlbesked..
Hej Komputerdk! Er selv startet med dit forslag men gik i stå, da jeg ikke kunne få det til at virke, da det jo er i LOPSLAGET der skal laves en VENSTRE-funktion og ikke i A1 i ark1. Håber jeg gør mig selv forståelig....
Hej excelent! Nu virker funktionen på mit første opslag. Til gengæld synes jeg, at jeg får problemer, når jeg kopierer funktionen til næste celle, så får jeg resultatet #I/T. Et andet spørgsmål kan man gøre noget for ikke at skulle huske at taste CTRL+SHIFT+ENTER, hver gang jeg ændrer funktionen? Denne afslutning kopieres heller ikke umiddelbart med, når jeg kopierer. Er det korrekt?
Jeg havde allerede lavet absolutte referencer, og med dem går det godt i celle A34, som den første celle hedder, hvor der skal kigges i, men i celle A35 får jeg resultatet #I/T - starter med at kigge i A3 hvor det første tal fremkommer. =FORSKYDNING(Ark2!$A$3;SAMMENLIGN(A35;VENSTRE(list;11);0);4;-2)
Hej Excelent! Jeg har lidt svært ved at sende arket, da det indeholder fortrolige oplysninger fra mit firma, men du skal have mange tak for dit tilbud. Kunne du evt. sende din test til mig på annettepigen@hotmail.com (ja, undskyld opfindsomheden...)? Så kan jeg måske bruge dit som udgangspunkt?
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.