Avatar billede renea Nybegynder
06. januar 2009 - 19:14 Der er 4 kommentarer og
1 løsning

hente udvalgte rækkefelter til nyt ark med tekst som nøgle

Hej,
Excel 2007 dansk version. Jeg har aldrig prøvet VBA.

Har et ark1 med fortløbenden nr. i kolonne A, ca. 2300 personnavne (efternavn og fornavn) i kolonne B, fødselsdato i kolonne F og flere kolonner fra c:ai med både tal og tekst værdier.

I ark2 har jeg i a1 "Indtast navn nedenfor" (a2)
I ark2 har jeg i b1 "Indtast fødselsdato dd-mm-åååå" (b2)
I ark2 c2, d2, e2 osv vil jeg på baggrund af kombinationen indtastet navn+indtastet fødselsdato hente udvalgte rækkefelter (f.eks.rækkefelt kolonne c,f,g,ai) der hører til den unikke navn+fødselsdato kombination. Jeg kan også starte med en løsning kun på navn, men flere personer hedder det samme.

Problemet er at navnene indeholder æ,ø,å,ö,é osv og nogle af de simple formler jeg har fundet returnerer en fejl.
Avatar billede excelent Ekspert
07. januar 2009 - 00:05 #1
=INDEKS(Ark1!C1:C2300;SAMMENLIGN($A$2&$B$2;Ark1!$B$1:$B$2300&Ark1!$F$1:$F$2300;0))

afslut med ctrl+shift+enter
Avatar billede renea Nybegynder
07. januar 2009 - 17:03 #2
Det var godt nok hurtigt :-) Og det virker. Har selv ændret til de udvalgte kolonner jeg skal bruge i første område, f.eks.
=INDEKS(FNL!y1:y2388;SAMMENLIGN($A$2&$B$2;FNL!$B$1:$B$2388&FNL!$F$1:$F$2388;0))

Et supplerende spørgsmål hvis det er ok - jeg kan også oprette et nyt?

I ark2 med de udvalgte felter vil jeg i et nyt felt (f.eks. b10) hente en talværdi på baggrund af op til fire af de udvalgte felter.
Eks.
Hvis c2="a","b" eller "c") så gå til ark3, ark4 eller ark5 OG
d2="x" OG e2="xx" gå til celle m3 og tæl f2 trin nedad og returnér værdien
eller
d2="x" OG e2="yy" gå til celle m36 og tæl f2 trin nedad og returnér værdien
eller
d2="y" OG e2="xx" gå til celle i69 og tæl f2 trin nedad og returnér værdien
eller
d2="y" OG e2="yy" gå til celle i100 og tæl f2 trin nedad og returnér værdien til b10 ark2

x,y,xx,yy står i tabellerne i ark3, 4 og 5 hvis det er nogen hjælp

Det er et opslag i løntabeller i ark3, 4 og 5. Hver ark indeholder 4 tabeller, som identificeres ved kombinationen d2 OG e2. f2 (et tal) viser hvilket (trin)beløb i tabellen der skal hentes i forhold til startcellen.
Avatar billede excelent Ekspert
07. januar 2009 - 22:02 #3
Function Opslag2(ark As Range, værdi1 As Range, værdi2 As Range, rk As Range)

Set v1 = Range(værdi1.Address): Set v2 = Range(værdi2.Address)

Opslag2 = "Fejl"
If ark = "a" Then Set sh = Sheets("Ark3")
If ark = "b" Then Set sh = Sheets("Ark4")
If ark = "c" Then Set sh = Sheets("Ark5")

If v1 = "x" And v2 = "xx" Then Opslag2 = sh.Cells(3, "M").Offset(Range(rk.Address))
If v1 = "x" And v2 = "yy" Then Opslag2 = sh.Cells(36, "M").Offset(Range(rk.Address))
If v1 = "y" And v2 = "xx" Then Opslag2 = sh.Cells(69, "I").Offset(Range(rk.Address))
If v1 = "y" And v2 = "yy" Then Opslag2 = sh.Cells(100, "I").Offset(Range(rk.Address))

End Function

i arket taster du
=opslag2(c2;d2;e2;f2)
Avatar billede renea Nybegynder
07. januar 2009 - 22:30 #4
Jeg har selv fundet en løsning med en masse hvis og hvis, men din ser nu noget mere elegant ud...
=HVIS((OG($D$5="xxx";$C$5="xx";ELLER($E$5="yyy";$E$5="zzz";$E$5="vvv")));VOPSLAG('Salary 1'!$M$45;'Salary 1'!$M$45:$M$73;$K$5);HVIS(OG($D$5="xxx";$C$5="ww";ELLER($E$5="yyy";$E$5="zzz";$E$5="vvv"));VOPSLAG('Salary 1'!$M$4;'Salary 1'!$M$4:$M$33;$K$5);HVIS(OG($D$5="qqq";$C$5="xx";ELLER($E$5="yyy";$E$5="zzz";$E$5="vvv"));VOPSLAG('Salary 2'!$M$37;'Salary 2'!$M$37:$M$65;$K$5); osv osv

Har som skrevet ikke prøvet programmering før og er ikke helt sikker på hvor jeg skal skrive din kode?

Min egen amatør metode virker, så det er vel ved at være på tide med nogle point til dig? :-)
Avatar billede excelent Ekspert
08. januar 2009 - 16:43 #5
sig til hvis du skal have hjælp til Funktionen
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