Excel duplicaten verwijderen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 1269774

Topicstarter
Ik zit met volgend probleem:

Binnen een kolom staan verschillende getallen waarvan sommige dezelfde zijn.

Kan er ik ervoor zorgen dat deze kolom doorlopen wordt van boven naar beneden en indien het cijfer reeds voorgekomen is de cel leeg wordt gemaakt (de rij mag niet verwijderd worden). Vb
1
3
4
3
2

De 1 zou nu leeg moeten worden gemaakt zoals hieronder

1
3
4
--> dit moet dus een lege cel zijn omdat 3 reeds voor kwam.
2
Weet iemand of dit kan?

Alvast bedankt!

Beste antwoord (via Anoniem: 1269774 op 30-10-2019 09:13)


  • cat_byte
  • Registratie: Augustus 2010
  • Niet online
Een workaround die je kunt toepassen, afhankelijk van wat nu precies de bedoeling is:

Als je zoals in mijn eerdere voorbeeld een extra kolom toevoegt, kun je in de bovenste cel daarvan deze formule zetten:
=ALS(AANTAL.ALS(B$2:B2;B2)>1;"";B2)
Die 'sleep' je vervolgens naar beneden.
Bij het slepen zal het begin van het bereik hetzelfde blijven (vandaar het dollarteken), maar het einde van het bereik meegaan. Hierdoor zal bij dubbele waarden de eerste keer dat een waarde voorkomt, weergegeven worden. De keren erna niet meer.

Wat doet deze formule:
Aantal.als: telt het aantal keer dat de waarde van B2 voorkomt in het bereik (kolom B ).
Als "aantal.als" meer dan 1x voorkomt, is er sprake van dubbele waardes, en vult Excel niets in: ""
Als aantal.als niet meer dan 1x voorkomt, dan blijft de (derhalve unieke) waarde van B2 staan.

formule unieke waarden excel

Evt kun je de waardes vervolgens weer kopiëren en plakken in de oorspronkelijke kolom, maar eea is toch afhankelijk van wat voor data je precies hebt. Heb je veel kolommen dan ligt een VBA-oplossing meer voor de hand. (Kan ik je niet mee helpen)

[ Voor 0% gewijzigd door cat_byte op 29-10-2019 20:30 . Reden: er werd zomaar een smiley gemaakt van kolom B ) B) ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • cat_byte
  • Registratie: Augustus 2010
  • Niet online
Gegevens -> dubbele waarden verwijderen.
Deze al geprobeerd? Zo ja, wat begrijp je niet?

https://support.office.co...6a-4d5d-b28e-66a552dc138d

[ Voor 40% gewijzigd door cat_byte op 29-10-2019 18:05 . Reden: url toegevoegd ]


Acties:
  • 0 Henk 'm!

Anoniem: 1269774

Topicstarter
cat_byte schreef op dinsdag 29 oktober 2019 @ 18:03:
Gegevens -> dubbele waarden verwijderen.
Deze al geprobeerd? Zo ja, wat begrijp je niet?

https://support.office.co...6a-4d5d-b28e-66a552dc138d
Het probleem is dan dat de hele rij verwijderd wordt ,er moet een lege cel overblijven.
Vb:
kolom1 | kolom 2
Artikel | verkochte artikels
Geel | 3
rood | 4
bruin | 2
paars |4


Deze tabel zou moeten omgezet worden in :

kolom1 | kolom 2
Artikel | verkochte artikels
Geel | 3
rood | 4
bruin | 2
paars | Hier komt nu een lege cel te staan i.p.v 4

Acties:
  • 0 Henk 'm!

  • cat_byte
  • Registratie: Augustus 2010
  • Niet online
Je kunt gewoon je bereik opgeven. Selecteer kolom 2, laat excel zijn werk doen op die kolom en dan is de uitkomst exact zoals je voorbeeld.

Er wordt hier overigens wel iets meer inzet van de vrager verwacht. Leesvoer: Het algemeen beleid #topicplaatsen

Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 15:03

Reptile209

- gers -

Je zou in een hulpkolom met AANTAL.ALS (SUMIF) kunnen tellen hoe vaak de betreffende waarde in de cellen erboven al voorkomt. Als dat 0 is, toon je de waarde en anders een lege cel. Dan heb je in de hulpkolom het resultaat dat je zoekt.

Zo scherp als een voetbal!


Acties:
  • +1 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 17:25

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

cat_byte schreef op dinsdag 29 oktober 2019 @ 18:17:
Er wordt hier overigens wel iets meer inzet van de vrager verwacht. Leesvoer: Het algemeen beleid #topicplaatsen
Zegt degene die de startpost niet gelezen had en met oplossingen blijft komen die niet werken omdat ze hele rijen cellen verwijderen. Laat het modden a.u.b. aan de crew over, maak een TR als je vindt dat de topicstart niet aan de regels voldoet.

Er is geen manier om met de standaard "remove duplicates" cellen leeg te maken, in plaats van ze te verwijderen. Als je remove duplicates toepast op alleen de rechterkolom dan schuift die hele kolom in elkaar.

Je zult dus of met een VB macro aan de slag moeten, of met hulpkolommen waarin je zelf bijhoudt of een waarde dubbel is en dus niet getoond moet worden zoals Reptile209 in "Excel duplicaten verwijderen" noemt.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • cat_byte
  • Registratie: Augustus 2010
  • Niet online
Orion84 schreef op dinsdag 29 oktober 2019 @ 18:52:
[...]
Zegt degene die de startpost niet gelezen had en met oplossingen blijft komen die niet werken omdat ze hele rijen verwijderen.[/b]
Zowel de info op de pagina van Microsoft als mijn uitleg laten zien dat je niet een hele rij hoeft te verwijderen, zoals TS beoogt. Deze reactie snap ik dan ook niet zo goed...
1. Selecteer het cellenbereik met de dubbele waarden die u wilt verwijderen.
en
Je kunt gewoon je bereik opgeven. Selecteer kolom 2, laat excel zijn werk doen op die kolom en dan is de uitkomst exact zoals je voorbeeld.
Ter verduidelijking, plaatje voor plaatje, met gegevens die TS geeft.
Selecteer de kolom en klik op "dubbele waarden verwijderen", en dan krijg je dit:
dubbele waarden verwijderen1

Vervolgens kun je binnen je selectie nog kolommen selecteren:
dubbele waarden verwijderen2

Tot slot is dit het resultaat van de actie: de cel achter "paars" is verwijderd.
dubbele waarden verwijderen3

De cellen worden inderdaad verwijderd (en niet de rij), dus formules verdwijnen er wel mee. Het is mij niet duidelijk of TS werkelijk leegmaken bedoelt (waarmee formules dus behouden blijven) of dat het ook ok is, als de cel verwijderd wordt zoals in bovenstaande afbeeldingen en er dus geen formules in hoeven te blijven. Als de eerste en tweede kolom gegevens bevatten die in dezelfde rij moeten blijven staan, schiet dit inderdaad ook niet op, omdat de cellen onder de verwijderde weer naar boven geschoven worden. Dat bedoel je ws. met het in elkaar schuiven van de kolom @Orion84 ?


Verder: ik had geen idee dat je andere forumgebruikers niet mag wijzen op het feit dat op Tweakers wat meer wordt verwacht van een openingspost. Ik heb het met de beste bedoeling gepost. Het het is zeker niet mijn bedoeling om te modden en ik zal de volgende keer een TR aanmaken.

[ Voor 6% gewijzigd door cat_byte op 29-10-2019 19:36 . Reden: toevoeging over verwijderde cellen/doorschuiven ]


Acties:
  • +1 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 17:25

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

cat_byte schreef op dinsdag 29 oktober 2019 @ 19:31:
[...]

Zowel de info op de pagina van Microsoft als mijn uitleg laten zien dat je niet een hele rij hoeft te verwijderen, zoals TS beoogt. Deze reactie snap ik dan ook niet zo goed...
Geen hele rij nee, dat schreef ik niet helemaal correct, maar het verwijdert wel de cel. Dat is dus wat anders dan een cel leegmaken wat de TS vroeg, want de cellen eronder schuiven dan dus naar boven.
Ter verduidelijking, plaatje voor plaatje, met gegevens die TS geeft.
[...] Als de eerste en tweede kolom gegevens bevatten die in dezelfde rij moeten blijven staan, schiet dit inderdaad ook niet op, omdat de cellen onder de verwijderde weer naar boven geschoven worden. Dat bedoel je ws. met het in elkaar schuiven van de kolom @Orion84 ?
Dat ja. Het voorbeeld van de topicstarter waarbij het duplicaat in de laatste rij staat is wat ongelukkig, omdat het daarbij niet zo opvalt, maar over het algemeen is het in spreadsheets niet echt de bedoeling als een kolom in elkaar schuift en dingen daardoor op een andere rij terechtkomen. TS geeft ook duidelijk aan in de topicstart dat hij lege cellen midden in de kolom verwacht en dan is cellen verwijderen dus geen oplossing.
Verder: ik had geen idee dat je andere forumgebruikers niet mag wijzen op het feit dat op Tweakers wat meer wordt verwacht van een openingspost. Ik heb het met de beste bedoeling gepost. Het het is zeker niet mijn bedoeling om te modden en ik zal de volgende keer een TR aanmaken.
d:)b

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • cat_byte
  • Registratie: Augustus 2010
  • Niet online
Een workaround die je kunt toepassen, afhankelijk van wat nu precies de bedoeling is:

Als je zoals in mijn eerdere voorbeeld een extra kolom toevoegt, kun je in de bovenste cel daarvan deze formule zetten:
=ALS(AANTAL.ALS(B$2:B2;B2)>1;"";B2)
Die 'sleep' je vervolgens naar beneden.
Bij het slepen zal het begin van het bereik hetzelfde blijven (vandaar het dollarteken), maar het einde van het bereik meegaan. Hierdoor zal bij dubbele waarden de eerste keer dat een waarde voorkomt, weergegeven worden. De keren erna niet meer.

Wat doet deze formule:
Aantal.als: telt het aantal keer dat de waarde van B2 voorkomt in het bereik (kolom B ).
Als "aantal.als" meer dan 1x voorkomt, is er sprake van dubbele waardes, en vult Excel niets in: ""
Als aantal.als niet meer dan 1x voorkomt, dan blijft de (derhalve unieke) waarde van B2 staan.

formule unieke waarden excel

Evt kun je de waardes vervolgens weer kopiëren en plakken in de oorspronkelijke kolom, maar eea is toch afhankelijk van wat voor data je precies hebt. Heb je veel kolommen dan ligt een VBA-oplossing meer voor de hand. (Kan ik je niet mee helpen)

[ Voor 0% gewijzigd door cat_byte op 29-10-2019 20:30 . Reden: er werd zomaar een smiley gemaakt van kolom B ) B) ]


Acties:
  • +2 Henk 'm!

Anoniem: 1269774

Topicstarter
Hartelijk dank! Het probleeem is hierbij opgelost.
Mijn excuses voor de ietwat verwarrende omschrijving, zal hier in het vervolg meer opletten!

Acties:
  • 0 Henk 'm!

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:32
En zo met VBA, werkt soms net zo makkelijk.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
sub dublicates()
dim lastrow as long, i as long
'Bepaal de laatst gebruikte cel
With ActiveSheet
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
' Loop door de hele kolom B en kijk of het aantal x uitkomst in de hele kolom groter is aan het aantal keer tot nu toe. Als dat zo is, leeg de cel
For i = 2 to lastrow
    if application.worksheetfunction.countif(.Range("B:B"),.Cells(i,2).value) > application.worksheetfunction.countif(.Range('B2:B" & i), .Cells(i,2).value) Then
        .Cells(i,2).value = ''
    End If
Next i
End With
end sub

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Paultje3181 schreef op woensdag 30 oktober 2019 @ 13:27:
En zo met VBA, werkt soms net zo makkelijk (....)
Die macro werkt niet want in deze voorwaarde:
code:
1
2
3
if application.worksheetfunction.countif(.Range("B:B"),.Cells(i,2).value) > application.worksheetfunction.countif(.Range('B2:B" & i), .Cells(i,2).value) Then
 .Cells(i,2).value = ''
End If
gebruik je enkele aanhalingstekens waar het dubbele moeten zijn.
En als je het laatste in gebruik zijn de rijnummer hebt berekend voor kolom A, dan kun je m.i. die kolom best ook in Countif gebruiken. Ik zou de voorwaarde wijzigen als volgt:
code:
1
2
3
If Application.WorksheetFunction.CountIf(.Range("A$1:A" & i), .Range("A" & i).Value) > 1 Then
.Range("A" & i).ClearContents
End If

Acties:
  • 0 Henk 'm!

Anoniem: 1269774

Topicstarter
cat_byte schreef op dinsdag 29 oktober 2019 @ 20:24:
Een workaround die je kunt toepassen, afhankelijk van wat nu precies de bedoeling is:

Als je zoals in mijn eerdere voorbeeld een extra kolom toevoegt, kun je in de bovenste cel daarvan deze formule zetten:
=ALS(AANTAL.ALS(B$2:B2;B2)>1;"";B2)
Die 'sleep' je vervolgens naar beneden.
Bij het slepen zal het begin van het bereik hetzelfde blijven (vandaar het dollarteken), maar het einde van het bereik meegaan. Hierdoor zal bij dubbele waarden de eerste keer dat een waarde voorkomt, weergegeven worden. De keren erna niet meer.

Wat doet deze formule:
Aantal.als: telt het aantal keer dat de waarde van B2 voorkomt in het bereik (kolom B ).
Als "aantal.als" meer dan 1x voorkomt, is er sprake van dubbele waardes, en vult Excel niets in: ""
Als aantal.als niet meer dan 1x voorkomt, dan blijft de (derhalve unieke) waarde van B2 staan.

[Afbeelding: formule unieke waarden excel]

Evt kun je de waardes vervolgens weer kopiëren en plakken in de oorspronkelijke kolom, maar eea is toch afhankelijk van wat voor data je precies hebt. Heb je veel kolommen dan ligt een VBA-oplossing meer voor de hand. (Kan ik je niet mee helpen)
Is het mogelijk om aan deze formule nog een extra voorwaarde toe te voegen zodat hij ook rekening houdt met het artikel? Stel bijvoorbeeld dat artikel bruin 2 klachten heeft en artikel blauw heeft toevallig ook 2 klachten, in dergelijke situatie zou de cel toch niet leeg mogen worden gemaakt. Nu gebeurt dat wel. Is dit mogelijk door een EN voorwaarde toe te voegen? Of gaat dit toch niet?

Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 15:03

Reptile209

- gers -

Huh, dan hou je toch gewoon alle waarden over die je had? Want dat was nu net de voorwaarde waar je op wilde filteren? Geef eens een concreet voorbeeld van wat je hebt en wat je verwacht.

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Anoniem: 1269774 schreef op maandag 4 november 2019 @ 22:42:Is het mogelijk om aan deze formule nog een extra voorwaarde toe te voegen zodat hij ook rekening houdt met het artikel? Stel bijvoorbeeld dat artikel bruin 2 klachten heeft en artikel blauw heeft toevallig ook 2 klachten, in dergelijke situatie zou de cel toch niet leeg mogen worden gemaakt. Nu gebeurt dat wel. Is dit mogelijk door een EN voorwaarde toe te voegen? Of gaat dit toch niet?
Ja, dat kan. Maar dan moet je aangeven hoe je tabel er uitziet. De aantallen die je in je eerste bericht vermeld hebt, wát geven die weer? Is dat al het aantal klachten waarover je in je laatste bericht spreekt, of betekenen ze wat anders? Is het laatste het geval (wat anders), dan moet een kolom worden toegevoegd met het aantal klachten.
Pagina: 1