• 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.

Kolommen matchen

Status
Niet open voor verdere reacties.

erikdemeijer

Gebruiker
Lid geworden
27 aug 2009
Berichten
5
Beste,

Ik hoop dat jullie mij kunnen helpen met een vraag:

In excel heb ik twee kolommen.
1 kolom: artikelnummer
2 kolom: getelde voorraad in systeem

Het systeem is echter een flinke zooi.
Nu hebben we echter een telling gedaan en zijn er een stuk minder minder artikelnummers en dus ook voorraad.

Hier zijn twee kolommen naast geplaatst:
3e kolom: getelde artikelnummer
4e kolom: getelde (werkelijke) voorraad.

Nu willen we echter een formule/macro die de 3e kolom "matched" met de 1e kolom
, en daarna de werkelijke en getelde voorraad apart in twee kolommen er achter zet.

Artikelnummers die niet zijn gevonden moeten op 0 komen te staan...

in de bijlage heb ik het bestand geplaatst, het gaat om het tabblad MATCH.

Ik hoop dat er iemand is die mij hier in kan ondersteunen...

mvg
Erik de Meijer
 

Bijlagen

  • gereedschappen2.xls
    96 KB · Weergaven: 42
Ik heb via de functie VERT.ZOEKEN in kolom i de waarden gezet die in kolom B staan. Dus m.a.w. Kolom C opgezocht in tabelmatrix A:B en indien gevonden kolom B in kolom i gezet.
Indien #N/B dan heeft ie de waarde van kolom C niet gevonden in kolom A

Is dit wat je zoekt???
 

Bijlagen

  • gereedschappen2.rar
    20,6 KB · Weergaven: 35
In de C-kolom staan de bijbehorende werkelijke voorraad.

Met vriendelijke groet,


Roncancio
 

Bijlagen

  • gereedschappen2.zip
    29 KB · Weergaven: 32
Gebaseerd op jouw bestand.
Het resultaat wordt in de kolommen K en L gezet
Code:
Sub tst()
  sq = UsedRange.Columns("A:B")
  sn = WorksheetFunction.Transpose(UsedRange.Columns(4))
  sp = UsedRange.Columns(5)
    
  For j = 1 To UBound(sn)
    sn(j) = sp(j, 1) & "|" & sn(j)
  Next
    
  For j = 1 To UBound(sq)
    If UBound(Filter(sn, "|" & sq(j, 1))) = -1 Then
      sq(j, 2) = 0
    Else
      sq(j, 2) = Val(Join(Filter(sn, "|" & sq(j, 1)), ""))
    End If
  Next
  UsedRange.Columns("K:L") = sq
End Sub
 
Bedankt voor jullie snelle antwoord en moeite!

Helaas is dit nog niet helemaal wat ik zoek....

Ik zou graag de kolom uit het systeem (kolom A) willen behouden.
Is hij niet geteld dan moet er een 0 achter komen te staan.

Is hij wel geteld dan moet de getelde voorraad er komen te staan, niet het verschil!
adv een voorbeeld tabel probeer ik het te verduidelijken

systeem geteld nieuwe kolom(alle G-codes uit systeem)
G0160118 1,00 D9007000 1 ---> Nieuw --> KOLOM
G0514912 0,00 D9007000 4 G0514912 (niet geteld in lijst=0)
G0514913 1,00 G0160119 1 G0514913(geteld, getelde waarde=17)
G0514914 1,00 G0160120 1
G0514952 1,00 G0530133 1
G0514953 3,00 G0670871 1
G0514954 0,00 G3505030 8

Haha, ik vind het moeilijk om uit te leggen, maar ik hoop dat iemand het zo begrijpt!
alvast bedankt!
 
Gebaseerd op jouw bestand.
Het resultaat wordt in de kolommen K en L gezet
Code:
Sub tst()
  sq = UsedRange.Columns("A:B")
  sn = WorksheetFunction.Transpose(UsedRange.Columns(4))
  sp = UsedRange.Columns(5)
    
  For j = 1 To UBound(sn)
    sn(j) = sp(j, 1) & "|" & sn(j)
  Next
    
  For j = 1 To UBound(sq)
    If UBound(Filter(sn, "|" & sq(j, 1))) = -1 Then
      sq(j, 2) = 0
    Else
      sq(j, 2) = Val(Join(Filter(sn, "|" & sq(j, 1)), ""))
    End If
  Next
  UsedRange.Columns("K:L") = sq
End Sub

Hoe voeg ik dit in? EXCEL --> alt F11 --> en dan invoegen nieuwe module?
want als ik deze run dan krijg ik een foutmelding...
 
Alt-F11/ zet in de module van het werkblad. Voer uit in de VBEditor met F5.
Verwijder de regel Option Explicit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan