• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Kolom met elkaar vergelijken

Status
Niet open voor verdere reacties.

hartjezomer

Gebruiker
Lid geworden
3 aug 2015
Berichten
6
Goedemiddag,

Ik heb een hoofdpijn dossier. Ik probeer al een week lang op verschillende manieren 3 kolommen met elkaar te vergelijken en aan de hand daarvan kolom B te vullen, maar het lukt mij maar niet.

Ik mijn file zie je 4 kolommen.

Kolom A is leidend. Dit zijn alle Id nummers die ik moet hebben. Deze Id nummers hebben allemaal zijn eigen uniek Item nummer (te vinden in kolom E).

Excel moet dus zoeken in kolom D (dit zijn dezelfde Id's uit kolom A maar dan 3000 id's extra) en het bijbehorende item in kolom B zetten.

Let op:
kolom A bevat soms dubbele Id nummers, maar je ziet dat de itemId's wel verschillend zijn.

De eerste 10 heb ik als voorbeeld zelf gevuld, zodat mijn tekst duidelijk is.

Kan iemand mij hier alsjeblieft bij helpen.

Vriendelijke groet,

Esther
 

Bijlagen

  • Voorbeeld List met Id's.xlsm
    327,8 KB · Weergaven: 30
Dit is behoorlijk simpel op te lossen in Access.
Ik heb er natuurlijk geen idee van hoe je volledige bestand er uit ziet... maar misschien is het wel een optie om 's in die richting te kijken?
 
Als ik naar de huidige structuur kijk zou dit het moeten doen:
Code:
Sub Aanvullen()
    For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
        Cells(i, 2) = Cells(i + 1, 5)
    Next i
End Sub
 
Laatst bewerkt:
Zonder hoofdpijn:

Code:
Sub M_snb()
    sn = Cells(1).CurrentRegion.Resize(, 2)
    sp = Cells(1, 4).CurrentRegion
    
    For j = 2 To UBound(sn)
       For jj = 2 To UBound(sp)
          If sn(j, 1) = sp(jj, 1) Then
            sn(j, 2) = sp(jj, 2)
            sp(jj, 1) = ""
            Exit For
           End If
       Next
    Next
    
    Cells(1, 7).Resize(UBound(sn), 2) = sn
End Sub
 
Het kan nog 'ietsje' sneller:

Code:
Sub M_snb()
    sn = Cells(1).CurrentRegion.Resize(, 2)
    sp = Cells(1, 4).CurrentRegion
    
    n = 2
    For j = 2 To UBound(sn)
       For jj = n To UBound(sp)
          If Val(sn(j, 1)) < (sp(jj, 1)) Then Exit For
          If sn(j, 1) = sp(jj, 1) Then
            sn(j, 2) = sp(jj, 2)
            n = jj + 1
            Exit For
           End If
       Next
    Next
    
    Cells(1, 7).Resize(UBound(sn), 2) = sn
End Sub
 
Laatst bewerkt:
Zonder hoofdpijn:

Code:
Sub M_snb()
    sn = Cells(1).CurrentRegion.Resize(, 2)
    sp = Cells(1, 4).CurrentRegion
    
    For j = 2 To UBound(sn)
       For jj = 2 To UBound(sp)
          If sn(j, 1) = sp(jj, 1) Then
            sn(j, 2) = sp(jj, 2)
            sp(jj, 1) = ""
            Exit For
           End If
       Next
    Next
    
    Cells(1, 7).Resize(UBound(sn), 2) = sn
End Sub





Nou.... heb ik een week verprutst van mijn tijd. Ik drukte op een knopje (had de gegevens als knop toegevoegd als Module) en het was klaar.
Je weet half niet hoe blij ik hier mee ben :thumb::thumb::thumb::thumb: :d hoera!
Duizend maal dank.
 
Ik zou de laatste versie gebruiken: veel sneller.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan