Avatar billede pippi99 Nybegynder
11. august 2008 - 14:18 Der er 4 kommentarer

forbinde flere ark med hinanden ved hjælp af primærnøgle

Jeg kan trække data ud af database til excel. Jeg har et entydigt nummer i alle ark, men det er ikke alle, der står på alle ark. Altså:
Ark 1: Nr. 1 har kode iey
Nr. 2 har kode eyi
Ark 2: Nr. 1 har kode ipe
Nr. 2 har kode vni
Ark 3: Nr. 1 har kode 970
Nr. 2 er slet ikke med
Jeg vil gerne have samlet på en linie, at
Nr. 1 har kode iey - næste kollone: ipe - næste kollone: 970
Nr. 2 har kode eyi - næste kollone: vni - næste kollone: Blank
Hvordan gør jeg det?
Avatar billede staal84 Nybegynder
12. august 2008 - 21:31 #1
Jeg forstår ikke helt...
Nr. 1 og Nr. 2 er det rækker nedad du mener?
Og skal det forstås således, at du ikke har nogen primærnøgle (fælles værdi) som er den samme på alle tre ark? Eller er det bare række nummeret du vil bruge som nøgle?

Hvis det nr. 1 og 2 er rækker og du bare vil have samlet kolonne A fra 3 ark til 3 kolonner på 1 ark, kan du gøre det på følgende måde:

Ark 4
Kolonne A: =Ark1!A1
Kolonne B: =Ark2!A1
Kolonne C: =Ark3!A1

Og så trække formlen ned...eller har jeg helt misforstået dig?
Avatar billede pippi99 Nybegynder
13. august 2008 - 10:06 #2
Jo jeg har en primærnøgle - ex:
Ark 1:
A1: Medlemsnummer - B1: Navn - C1: Kode
A2: 948309 - B2: Anders And - C2: y09
A3: 394697 - B3: Bent Bentsen - C3: ie4

Ark 2:
A1: Medlemsnummer - B1: Navn - C1: Kode
A2: 948309 - B2: Anders And - C2: we3
A3: 394697 - B3: Bent Bentsen - C3: oi8

Ark 3:
A1: Medlemsnummer - B1: Navn - C1: Kode
A2: 394697 - B2: Bent Bentsen - C2: rr1

Så vil jeg gerne samle Anders på en linie med kode 1 og kode 2 og Bent på næste linie med kode 1, kode 2 og kode 3
Avatar billede staal84 Nybegynder
13. august 2008 - 19:08 #3
Har du mulighed for at hente en fuld liste med alle medlemsnummre og navne ind i et ark fra databasen?

For så kan følgende bruges:

Kode fra ark 1:
=HVIS(ER.FEJL(LOPSLAG(A2;Ark1!$A$2:$C$10;3;FALSK));"";LOPSLAG(A2;Ark1!$A$2:$C$10;3;FALSK))

Kode fra ark 2:
=HVIS(ER.FEJL(LOPSLAG(A2;Ark2!$A$2:$C$10;3;FALSK));"";LOPSLAG(A2;Ark2!$A$2:$C$10;3;FALSK))

Kode fra ark 3:
=HVIS(ER.FEJL(LOPSLAG(A2;Ark3!$A$2:$C$10;3;FALSK));"";LOPSLAG(A2;Ark3!$A$2:$C$10;3;FALSK))

Jeg har også leget lidt med noget VBA (makro), men ved ikke om du er interesseret i sådan en løsning?
Avatar billede staal84 Nybegynder
13. august 2008 - 19:16 #4
Du får lige makro-løsningen også....
Den kan sikkert gøres smartere, men så god er jeg ikke....:-/

ark4
A1 = Medlemsnummer
B1 = Navn
C1 = Kode
D1 = Kode
E1 = Kode

Tryk Alt+F11 (Visual Basic)
Tryk Ctrl + R (Project Explorer)

Højreklik på ThisWorkbook
- Insert
- Module

Indsæt nedenstående kode:

Sub allenøgler()

Ark1.Activate
a1 = Range("A1").End(xlDown).Row
Range("A2:B" & a1).Copy

Ark4.Activate
    If Range("A2").Value = "" Then
        Range("A2").Activate
    Else
        Range("A2").CurrentRegion.Select
        ActiveCell.Offset(Selection.Rows.Count, 0).Activate
    End If
ActiveSheet.Paste

Ark2.Activate
a2 = Range("A1").End(xlDown).Row
Range("A2:B" & a2).Copy

Ark4.Activate
    If Range("A2").Value = "" Then
        Range("A2").Activate
    Else
        Range("A2").CurrentRegion.Select
        ActiveCell.Offset(Selection.Rows.Count, 0).Activate
    End If
ActiveSheet.Paste

Ark3.Activate
a3 = Range("A1").End(xlDown).Row
Range("A2:B" & a3).Copy

Ark4.Activate
    If Range("A2").Value = "" Then
        Range("A2").Activate
    Else
        Range("A2").CurrentRegion.Select
        ActiveCell.Offset(Selection.Rows.Count, 0).Activate
    End If
ActiveSheet.Paste

Ark4.Activate
a4 = Range("A1").End(xlDown).Row

Columns("A:A").Select
    Selection.Insert shift:=xlToRight
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(R2C2:RC[1],RC[1])"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & a4), Type:=xlFillDefault
    Range("A2:A" & a4).Select
   
Dim slut, i As Integer

slut = Range("A65000").End(xlUp).Row

For i = slut To 2 Step -1
Cells(i, 1).Select
    If ActiveCell.Value <> 1 Then
            ActiveCell.EntireRow.Delete shift:=xlUp
    End If
Next
   
    Columns("A:A").Select
    Selection.Delete shift:=xlToLeft
   
Ark4.Activate
a5 = Range("A1").End(xlDown).Row
   
    Range("C2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-2],Ark1!R2C1:R100C3,3,FALSE)),"""",VLOOKUP(RC[-2],Ark1!R2C1:R100C3,3,FALSE))"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-3],Ark2!R2C1:R100C3,3,FALSE)),"""",VLOOKUP(RC[-3],Ark2!R2C1:R100C3,3,FALSE))"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-4],Ark3!R2C1:R100C3,3,FALSE)),"""",VLOOKUP(RC[-4],Ark3!R2C1:R100C3,3,FALSE))"
    Range("E3").Select
   
    Range("C2:E2").Select
    Selection.AutoFill Destination:=Range("C2:E" & a5), Type:=xlFillDefault
    Range("C2:E" & a5).Select
   
    Range("a1").Select

End Sub
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