Avatar billede Daffodil Professor
11. maj 2017 - 08:28 Der er 3 kommentarer og
1 løsning

Flette data fra to excel ark

Jeg har to Excel ark i den samme Excel fil med data. Jeg har behov for at flytte alle data fra "Ark2" til "Ark1" ind på den rette linje.

Jeg har ca. 100.000 linjer i "Ark1" og ca. 40.000 linjer i "Ark2". Der er ingen dubletter og der er et match for alle data i "Ark2" ovre i "Ark1"

Data skal kopiere over da "Ark2" ikke må ændres/tømmes for indhold.

Der er overskrifter i begge ark og overskrifterne fra "Ark2" skal gerne med over.

I "Ark1" findes udsøgningskriteriet i kolonne "C" og i "Ark2" findes det i kolonne "E"

Jeg skal nu ved et match have datalinjen fra "Ark2" over på den rigtige linje i "Ark1". Datalinjen fra "Ark2" skal indsættes fra kolonne "J" i "Ark1".

Jeg har forsøgt at finde en løsning i tidligere svar her, men det eneste der syntes brugbart er ikke gengivet da data for løsningen skulle anvendes i et bachelorprojekt.
Avatar billede kabbak Professor
11. maj 2017 - 10:52 #1
kan du ikke " bare" bruge Lopslag
Avatar billede kim1a Ekspert
11. maj 2017 - 10:58 #2
Formlen vlookup kan bruges:

I Ark1: første ledige kolonne:
=vlookup(C2;ark2!E1:xx;2;false)

xx er så sidste celle i det du skal hive.
Hvis du skal bruge data før kolonne E er det nemmest at kopiere det efter kolonne E - eller lave en kopi af E i kolonne A som du så starter i.

Resultatet bliver at du det som står i kolonne F i ark2.

Der findes også index match løsninger som nok er mindre tunge ren regnemæssigt, så hvis du skal gøre det løbende vil jeg kigge nærmere på dette (google index match excel) så kommer der masser af gode vejledninger.
Avatar billede excelent Ekspert
12. maj 2017 - 17:34 #3
Denne henter værdierne i kolonne F,G og H i de rækker hvor der er en match


Sub xCopy()

Set sh1 = Sheets("Ark1")
Set sh2 = Sheets("Ark2")

For Each c In sh2.Range("E1:E40000")

If Application.CountIf(sh1.Range("C2:C100000"), c) Then
rk = sh1.Range("C2:C100000").Find(c, LookIn:=xlValues).Row
sh2.Range("F" & c.Row & ":H" & c.Row).Copy sh1.Range("J" & rk)
End If

Next

End Sub
Avatar billede Daffodil Professor
15. maj 2017 - 12:18 #4
Fornem løsning

Enkel og lige til.

Jeg har modificeret den lidt, da den skulle kopiere hele linjen fra Ark2 - men det var ikke nogen sag.

Takker
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