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

Verschil tussen 2 kolommen

Status
Niet open voor verdere reacties.

riic0

Gebruiker
Lid geworden
8 aug 2009
Berichten
137
Hallo,

Ik heb 2 kollomen, kolom A met 1218 regels en kolom B met 1387 regels.
Kolom B is een update van Kolom A, dus alles wat in kolom A staat staat ook in B maar in B zijn nieuwe dingen toegevoegd maar dat is er gewoon tussen gezet.
Is er een manier dat je kan zien welke nieuwe regels er zijn toegevoegd aan kolom B ?


Groeten,

Ricardo
 
zijn er regels toegevoegd of veranderd?
Dus is kolom B langer dan A of niet?
Want als ze even lang zijn, dan kun je gewoon doen:
ifA1==B1 then C1 groen worden, else C1 rood worden

Mochten ze ongelijk zijn, dan is het natuurlijk de vraag, zijn er nou meerdere regels veranderd, of is er 1 tussen gevoegd en schuift de rest op. Dit is natuurlijk nooit te controleren.

vb:

Rij A Rij B
1 1
2 2
3 2
4 3
5 4
6 5

Nu kun je opvatten, dan rij B op plek 2 is geupdate en dat er een rij is tussengevoegd, of je kunt opvatten dat rij 2 t/m 6 allemaal van waarde zijn veranderd.

Beetje onduidelijke uitleg, voor een beetje onduidelijke vraag
Succes
 
Nu je geen voorbeeldbestandje hebt toevoegd, beperk ik met even tot tekst.

Met 2 aantal.als functies (1 per kolom) en deze met elkaar vergelijken, moet je dit volgens mij wel gaan lukken.
 
Sorry als de vraag onduidelijk was,

Ik bedoelde dat er een bestaande kolom is (kolom A), dat is een rij met allemaal serienummers. Aan die rij zijn een aantal serienummers toegevoegd.
Maar ik weet niet welke er zijn toegevoegd, dus nu heb ik kolom A met de oude serienummers en kolom B met daarin de de oude serienummers van kolom A plus nieuwe toegevoegde serienummers.
Ik zou graag willen weten of er een manier is dat ik kan zien welke serienummers er zijn toegevoegd.
 
’t Is helemaal niet zo moeilijk.
Als Kolom B dezelfde gegevens bevat Als kolom A plus extra gegevens.
Als de kolommen ook een koptekst hebben op de eerste rij.
Matrixformule in C2.
Code:
=ALS(ISFOUT(INDEX($B$1:$B$2000;KLEINSTE(ALS(AANTAL.ALS($A$2:$A$2000;$B$2:$B$2000)=0;RIJ($B$2:$B$2000);"");RIJ(B1))));"";INDEX($B$1:$B$2000;KLEINSTE(ALS(AANTAL.ALS($A$2:$A$2000;$B$2:$B$2000)=0;RIJ($B$2:$B$2000);"");RIJ(B1))))
 
’t Is helemaal niet zo moeilijk.
Als Kolom B dezelfde gegevens bevat Als kolom A plus extra gegevens.
Als de kolommen ook een koptekst hebben op de eerste rij.
Matrixformule in C2.
Code:
=ALS(ISFOUT(INDEX($B$1:$B$2000;KLEINSTE(ALS(AANTAL.ALS($A$2:$A$2000;$B$2:$B$2000)=0;RIJ($B$2:$B$2000);"");RIJ(B1))));"";INDEX($B$1:$B$2000;KLEINSTE(ALS(AANTAL.ALS($A$2:$A$2000;$B$2:$B$2000)=0;RIJ($B$2:$B$2000);"");RIJ(B1))))

Ik heb deze code geprobeerd maar ik krijg een error, ik denk dat ik deze error krijg omdat ik een engelse versie van excel gebruik.
Heb al geprobeerd om de nederlandse worden te vertalen naar het engels maar dan krijg ik nog steeds de zelfde foutmelding.
 
Je moet ook de puntkomma's vervangen door een komma;
Als je wil heb ik echter ook een VBA-oplossing klaar, dan heb je niet al die formules op je werkblad.
 
Code:
sub snb()
  sn=cells(1).currentregion
   
  for j=1 to ubound(sn)
    sn(j,2)=iif(iserror(application.match(sn(j,2),application.index(sn,0,1),0)),sn(j,2),"")
  next

  cells(1).currentregion=sn
End sub

Alleen de nieuwe items blijven in kolom B staan.
 
Laatst bewerkt:
Code:
sub snb()
  sn=cells(1).currentregion
   
  for j=1 to ubound(sn)
    sn(j,2)=iif(iserror(application.match(sn(j,2),application.index(sn,0,1),0)),sn(j,2),"")
  next

  cells(1).currentregion=sn
End sub

Alleen de nieuwe items blijven in kolom B staan.
Als ik die uitvoer dan krijg ik de foutmelding :
Compile error:
Sub or Function not defined
 
Verwijder bovenaan de regel Option Explicit of zet er een ' voor.
Onthoud wel dat alle nummers in kolom B verwijderd worden uitgezonderd de nieuwe.
Zo blijft alles behouden en krijg je de nieuwe onder elkaar in kolom C
Code:
Sub snb()
  sn = Cells(1).CurrentRegion
  i = 1
  For j = 1 To UBound(sn)
    sn(j, 2) = IIf(IsError(Application.Match(sn(j, 2), Application.Index(sn, 0, 1), 0)), sn(j, 2), "")
    If sn(j, 2) <> "" Then sq = sq & "|" & sn(j, 2): i = i + 1
  Next
  Range("C2").Resize(UBound(Split(sq, "|"))) = WorksheetFunction.Transpose(Split(Mid(sq, 2), "|"))
End Sub
 
Laatst bewerkt:
Het kan ook met:

Code:
Sub snb()
  sq = Filter([transpose(if(B1:B200="","|",iferror(rept("|",match(B1:B200,A1:A200,0)),B1:B200)))], "|", False)
  Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(sq) + 1) = Application.Transpose(sq)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan