Avatar billede krohn Praktikant
09. september 2006 - 18:13 Der er 24 kommentarer og
1 løsning

Hjælp til LOOKUP

Jeg har et regneark, med 52 ark et for hver uge. I de ark er der på samme pladser nogle data jeg gerne ville kunne slå op til et nyt ark. F.eks er der i kolonne A celle 10,13,16,19,22,25,28 datoer og i kolone C  celle 10,13,16,19,22,25,28 er et time antal.

Jeg ville gerne hvis jeg på et nyt ark indtaster en given dato, at den så selv kan finde den dato, og hente time antalet. Jeg kan ikke få det til da datoerne jo vil sprede sig over flere ark (1 uge på ark.
Kan godt lave en alm lookup, men kan som sagt ikke se hvordan jeg gør på flere ark.

Senere skal jeg have lavet en userform der henter værdien fra det nye ark, men det tror jeg nok jeg er ved at have lidt styr på (fundet hjælp herinde)
Avatar billede krohn Praktikant
09. september 2006 - 18:17 #1
For at forklare lidt, så er det nogle pumper hvor der skrives timer de har kørt ind, jeg vil så gerne kunne slå op hvormange timer de har gået på en given dato, så når der laves inspection på dem kan man også se timer den dag de blev inspiceret, og derved se hvormange timer siden sidste insp.

"gav det nogen mening, eller skrev jeg det dødt?
Avatar billede excelent Ekspert
09. september 2006 - 19:10 #2
Indsæt denne kode i et alm. modul

Function findtal(dato As Date)
Dim ws As Worksheet
Dim selle, værdi
Application.Volatile
For Each ws In ActiveWorkbook.Worksheets
  For Each selle In ws.Range("A10:A28")
    If selle.Value = dato Then værdi = selle.Offset(0, 1)
  Next
Next
findtal = værdi
End Function

herefter kan timetal findes med:

=findtal("24-12-2005")
Avatar billede excelent Ekspert
09. september 2006 - 19:21 #3
der skal stå 2 i stedet for 1 i denne linie

If selle.Value = dato Then værdi = selle.Offset(0, 1)
Avatar billede kabbak Professor
09. september 2006 - 22:33 #4
excelent > du skal nok hoppe over hans samle ark
Avatar billede excelent Ekspert
09. september 2006 - 22:58 #5
ja tænkte godt nok på det kabbak, men var i tvivl
Avatar billede excelent Ekspert
09. september 2006 - 23:18 #6
Function findtal(dato As Date)
Dim ws As Worksheet
Dim selle, værdi
Application.Volatile
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> ActiveSheet.Name Then
  For Each selle In ws.Range("A10:A28")
    If selle.Value = dato Then værdi = selle.Offset(0, 2)
  Next
End If
Next
findtal = værdi
End Function
Avatar billede mrjh Novice
10. september 2006 - 00:39 #7
Kan faktisk klares med en Vlookup
Jeg ved ikke lige hvad de hedder i engelsk version men her er den danske formel, som forudsætter at du har navngivet dine ark som ugenumre (1, 2, 3 osv) og at ugen går fra mandag til søndag, med opslagsværdi i A1 i dit samleark.

=LOPSLAG(A1;INDIREKTE(HVIS(UGEDAG(A1;2)=7;UGE.NR(A1;1)-1;UGE.NR(A1;1))&"!a10:c28");3;0)
Avatar billede excelent Ekspert
10. september 2006 - 01:01 #8
godt tænkt mrjh,- virker fint her :-)
Avatar billede mrjh Novice
10. september 2006 - 01:16 #9
Hva Søren excelent - er du også oppe så sent. Ja hvad skal man ellers lave en lørdag nat, end at være på eksperten :-) Jamen tak for det, din makro fungerer skam også til UG og slange, så det er så bare et temperamentsspm. om hvad man vil bruge.

Har i øvrigt surfet lidt omkring de engelske funktioner og oversat formlen til engelsk:

=Vlookup(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!a10:c28");3;0)

Go'nat derude c",)
Avatar billede mrjh Novice
10. september 2006 - 01:18 #10
Lige til info: Weeknum funktionen ligger i Analysis Toolpak
Avatar billede krohn Praktikant
10. september 2006 - 08:45 #11
Jeg har indsat denne: =VLOOKUP(A1;INDIRECT(IF(WEEKDAY(A1;2)=7;WEEKNUM(A1;1)-1;WEEKNUM(A1;1))&"!a8:c28");3;0)
Den virker ok, men henter værdier fra forkerte celler.
Den henter fra C 8,11,14,17,20,23,26. Den skulle hente fra C10,13,16,19,22,25,28,,, da den første celle range indeholder, kun halvdelen af den total jeg skal bruge fra C10,13,16,19,22,25,28
Ellers er det lige sådan en formel jeg kiggede efter.
Avatar billede excelent Ekspert
10. september 2006 - 09:17 #12
pist... ret a8:c28 til a10:c28 som i mrjh's formel
Avatar billede krohn Praktikant
10. september 2006 - 10:28 #13
Hvis jeg ændre det, så kommer der en #NA når jeg taster datoen for dag 1
Dato feltet for dag 1 er i A8
Avatar billede krohn Praktikant
10. september 2006 - 10:30 #14
Jeg uploader lige arket, kommer
Avatar billede mrjh Novice
10. september 2006 - 10:50 #15
Så er du nok nødt til at bruge en anden formel. prøv denne:

=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!c1:c100");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!a1:a100");0)+2;)
Avatar billede mrjh Novice
10. september 2006 - 10:51 #16
Og så lige med absolutte ref.

=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!$c$1:$c$100");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!$a$1:$a$100");0)+2;)
Avatar billede mrjh Novice
10. september 2006 - 11:07 #17
Næh det behøver du egentlig ikke.

=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!C:C");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!A:A");0)+2;)
Avatar billede krohn Praktikant
10. september 2006 - 12:02 #18
Men vil den ikke se i hele kolonne A? Problemet ved det er at jeg gentager datoerne for pumpe 1 A8,11,14,17,20,23,26 pumpe 2 A54,57,60,63,66,69,72 pumpe 3 A98,101,104,107,110,113,116.
Formlen skal "kun" se efter datoer for f.eks pumpe 1

Prøver lige den du kom med
Avatar billede mrjh Novice
10. september 2006 - 12:10 #19
Ok, jamen så skal du bruge 3 forskellige.

Pumpe1:
=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!c:c");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!$a$8:$a$28");0)+2;)

Pumpe2:
=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!c:c");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!$a$54:$a$74");0)+2;)

Pumpe3:
=Index(Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!c:c");match(A1;Indirect(if(weekday(A1;2)=7;weeknum(A1;1)-1;weeknum(A1;1))&"!$a$98:$a$118");0)+2;)
Avatar billede krohn Praktikant
10. september 2006 - 12:36 #20
=INDEX(INDIRECT(IF(WEEKDAY(B2;2)=7;WEEKNUM(B2;1)-1;WEEKNUM(B2;1))&"!C8:C28");MATCH(B2;INDIRECT(IF(WEEKDAY(B2;2)=7;WEEKNUM(B2;1)-1;WEEKNUM(B2;1))&"!A8:A26");0)+2;)
Hed den da
Avatar billede krohn Praktikant
10. september 2006 - 12:44 #21
Havde lige glemt dette.. UPS
Er der mulighed for at den kan lægge værdien af en celle C7 til fra det ark den finder udfra datoen?
Og hvis jeg skal have en værdi C30 over for sig selv, men også fra det ark den finder ud fra datoen
Så tror jeg ikke jeg skal forstyre dig mere:)
Avatar billede mrjh Novice
10. september 2006 - 12:54 #22
Ja det er muligt
I din nuværende formel + INDIRECT(IF(WEEKDAY(B2;2)=7;WEEKNUM(B2;1)-1;WEEKNUM(B2;1))&"!C7")
Og en ny Formel:
=INDIRECT(IF(WEEKDAY(B2;2)=7;WEEKNUM(B2;1)-1;WEEKNUM(B2;1))&"!C30")
Avatar billede krohn Praktikant
10. september 2006 - 12:55 #23
Super, prøver straks
Avatar billede krohn Praktikant
10. september 2006 - 16:23 #24
Det virker super. lægger du et svar.
JEg opretter lige et nyt, da jeg har et par ang. userform input/skriv
Avatar billede mrjh Novice
10. september 2006 - 17:02 #25
Svar :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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