Avatar billede Jahape Juniormester
07. oktober 2017 - 11:01 Der er 5 kommentarer og
1 løsning

Lopslag over alle ark

Hej, en der kan hjælpe med hvordan jeg kan lave en lopslag der slog op i alle ark i mappen?

f.eks:
Ark1 A1 skriver jeg Jens
Ark1 B2 skal den skrive hvad der står i en at arkende i E4 ud fra om der står Jens i D1 i samme ark.

Det samme skal den så kunne A2, A3 og så videre.

Har ca. 50 ark den skal slå op i og der kan komme flere til!

Håber det er til at forslå.
Avatar billede kim1a Ekspert
07. oktober 2017 - 11:16 #1
Du kan evt. lave en liste over arkene og så lave en D1 reference foran hver af de ark.

Så bruger du en indirekte formel til at skrive opslagets "hente" sted.

Noget a la (jeg skriver på Eng): =indirect(vlookup([B2;[din nye liste jeg foreslog];2;false)&"!E4
Avatar billede Dan Elgaard Ekspert
07. oktober 2017 - 14:18 #2
INDIREKTE() er en mulighed, men ved større regnearksfiler, har funktionen en kedelig tendens til at gøre regnearkene tunge og langsomme...
...og, det tyder på, at du har ganske store regneark (> 50 ark i filen).

Grundideen fra #1 er god nok: Lav en reference celle, og arbejd ud fra denne...
...men, benyt FORSKYDNING() i stedet, til at læse de rette celler - meget, meget hurtigere (og, efter min mening, langt lettere, at forstå og rette i, hvis det skulle vise sig nødvendigt).
Avatar billede excelent Ekspert
07. oktober 2017 - 16:44 #3
Eller en vba function indsat i et alm. modul

Function testE4(værdi As Range)

Dim sh As Worksheet
Application.Volatile
For Each sh In ThisWorkbook.Sheets
If sh.Range("D1") = værdi Then testE4 = sh.Range("E4"): Exit Function
Next

End Function

I arket skriver du =testE4(A1)
Avatar billede Jahape Juniormester
09. oktober 2017 - 15:41 #4
Kan se det er gået lidt hurtigt med at skrive..

så prøver lige igen:

Skiver i kolonne A skal have svar i B

I de andre ark har jeg data hvor opslaget står i D med svaret i E

Feks:
Ark1:
A1 Jens  B1: =lopsalg(A1;(i alle 50+ ark)D:E;2;FALSK)
A2 Peter  B1: =lopsalg(A1;(i alle 50+ ark)D:E;2;FALSK)
A3 Mads B1: =lopsalg(A1;(i alle 50+ ark)D:E;2;FALSK)

Mit problemer er derfor at få lopslag til at kigge i alle 50+ ark og ikke kun i et?

Jeg har ikke mulighed for at samle data i et ark da det heletiden kan komme flere ark til..
Avatar billede excelent Ekspert
09. oktober 2017 - 23:31 #5
Function testE4(værdi As Range)

max_rk = 1000 '<-- OBS !!! Ret til maksimal antal rækker der skal slås op i

Dim sh As Worksheet
Application.Volatile

For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Ark1" Then '<-- OBS !!! Ret "Ark1" til første ark-navn
If Application.CountIf(sh.Range("D1:D" & max_rk), værdi) > 0 Then
testE4 = sh.Cells(sh.Range("D1:D" & max_rk).Find(værdi, LookIn:=xlValues).Row, "E")
Exit Function
End If
End If
Next

End Function
Avatar billede Jahape Juniormester
10. oktober 2017 - 10:14 #6
Det virkede tak for hjælpen.
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

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