Alleen laatste transport datum overhouden per serienummer

Status
Niet open voor verdere reacties.

1965Peter

Gebruiker
Lid geworden
20 jun 2016
Berichten
197
Hallo,

Ik kom het volgende tegen.
Wij hebben een transportlijst waarin objecten met een serienummer (meerdere keren kunnen) worden vervoerd.

Ik zou graag per serienummer (kolom D) alleen de laatste datum (kolom A) over willen houden.
Rest van de regels mogen worden delete, zodat er maar 1 serienummer overblijft met de laatste datum.

Het bestand is variabel. count op kolom A.

Wie kan mij hiermee helpen? alvast bedankt weer.
 

Bijlagen

met VBA of met excel-365 formules ?
 

Bijlagen

Laatst bewerkt:
In F2
Code:
=INDEX($A$2:$A$65535;VERGELIJKEN(2;1/($D$2:$D$65535=D2)))
Afsluiten met CTRL+SHIFT+ENTER (matrixformule excel2007nl)
Laatste datum per serienummer, je hoeft dan alleen maar een lijst te maken met unieke combinaties
 
Laatst bewerkt:
Cow18 & alpamax, misschien niet handig geweest, maar ik heb een aantal kolommen t/m O weggelaten omdat dat (dacht ik) niet relevant was.
Ik had gehoopt dat met de voorwaardes de andere regels verwijderd werden, ik weet ook niet of dit kan?
Alles gebeurt in VBA, deze brengt diverse bestanden samen.
In het bestand zouden de rode regels verwijderd moeten zijn en de groene overgebleven.
 

Bijlagen

Als er twee dezelfde data zijn, welke van de twee moet dan overblijven?

Voorbeeld: waarom op rij 21 en 22 (9-2-2023 met nummer 5740) de rode weg en waarom niet de groene?
Wordt het dan afhankelijk van kolom C?
 
Hallo Harry, in dit voorbeeld van 5740 hebben ze op de een of andere manier een ander nr gebruikt. dit is niet gebruikelijk.
Echte doel is van elk serienr (C) de laatste datum(A) overhouden en andere regels verwijderen.
Ik vermoed dat dit misschien niet eens kan.
Als dit niet kan, gebruik ik de code van Cow18 waarbij ik serienr & transportdatum samenvoeg, dan creeer ik een unieke sleutel en zal dan de andere velden dmv x-zoeken weer koppelen.
 
Alternatief:

Code:
Sub M_snb()
  Blad4.UsedRange.Sort Blad4.Cells(1, 4), , Blad4.Cells(1, 1), , 2, , , 1

  sn = Cells(1).CurrentRegion

  c00 = sn(2, 4)
  For j = 3 To UBound(sn)
    If sn(j, 4) = c00 Then
      sn(j, 1) = ""
    Else
      c00 = sn(j, 4)
    End If
  Next
  
  Sheet1.Cells(1).Resize(UBound(sn), UBound(sn, 2)) = sn
  Sheet1.Cells(1).CurrentRegion.Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
 
Hallo Snb,

Jammer genoeg op het bestand loopt de code vast op de een na laatste regel:
Sheet1.cells(1). resize.......
 
Je had natuurlijk wel gezien dat ik een extra werkblad had toegevoegd met de codename 'sheet1'
 
Eerlijk gezegd heb/had ik dat niet gezien, maar er wordt ook geen blad4 aangemaakt. Heb het handmatig ook nog geprobeerd, maar mocht niet baten.
 
Jouw voorbeeldbestand bevat Blad4.
Voeg aan dat bestand een nieuw werkblad toe en gebruik die naam (Blad1 of Sheet1) in de macro.
 
Ik dacht meer aan:
Code:
Sub hsv()
With Sheets("transportdata").UsedRange
  .Sort Cells(1, 4), , Cells(1), , 2, , , 1
  .RemoveDuplicates 4
End With
End Sub
 
Ja harry, hij doet het, super.
snb ik heb blad4 nog vervangen voor "transportdata" maar mocht niet baten.
Beide bedankt weer natuurlijk voor jullie input.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan