Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalteninhalte ohne doppelte in neue Spalte

Spalteninhalte ohne doppelte in neue Spalte
Jean-Pierre
Hallo zusammen,
ich möchte gerne aus Spalte B (beginnend B2) alle Inhalte exklusive der doppelten in Spalte C (beginnend C2 nach unten) aufgeführt haben.
Ich habe diesen Code hier gefunden https://www.herber.de/forum/archiv/1232to1236/t1232278.htm
von Josef Ehrensberger der gefällt mir soweit ganz gut aber ist halt nicht auf meine Situation angepasst.
Ich bin leider nicht so erfahren was VBA betrifft, hab da noch keine Lektüre gefunden die es Neulingen wie mir verständlich macht :)
Könnte mir da vielleicht jemand behilflich sein und den Code anpassen das eben alles aus B kopiert wird und ohne doppelte in C eingefügt wird?
Ich bedanke mich schon mal jetzt für's drüber schauen.
Gruß aus dem Frankenland
Jean-Pierre
Anzeige
AW: Spalteninhalte ohne doppelte in neue Spalte
24.11.2011 21:58:10
firmus
Hallo Jean-Pierre,
mit VBA=nein würde ich jetzt auch nicht damit anfangen. Übe erst mal mit Tutorials.
Zu Deinem Problem.
1. sortiere nach Spalte B
2. setze in Spalte C, beginnend mit C2 die formel: =wenn(b2=b1;c2=c1+1;1)
(die werte in spalte B werden für jeden Wert numeriert.)
3. Filtere die Spalte C auf den Wert "1".
(Damit bekommst Du pro Wert in Spalte B einen eindeutigen Wert
4. Kopiere diese gefilterten Werte
Falls Du in die gleiche Tabelle kopierst stimmt die logische Struktur nicht mehr.
(Was sollen die Spalten und Zeilen jeweils darstellen? - dann wären 2 logische Überlegungen in einem
Blatt - immer schlecht für xls-logische Verarbeitung.
Viel Erfolg,
Gruß aus Schwaben,
Firmus
Anzeige
AW: Spalteninhalte ohne doppelte in neue Spalte
24.11.2011 22:20:54
Jean-Pierre
@ Firmus
ich möchte das schon gerne mit VBA lösen und anhand von meinen Beispielen auch lernen bzw. verstehen aber ich danke Dir für Deine Rücksichtnahme - nicht selbstverständlich in unserer Welt :)
Werte ohne Redundanzen in neue Spalte kopieren
24.11.2011 22:04:02
NoNet
Hallo Jean-Pierre,
SeppsCode kopiert nicht, sondern löscht die redundanten Zellen, daher ist er für Dein anliegen wohl nicht ganz geeignet.
Hier mein Codevorschlag : Es werden alle Zellen der Spalte B überprüft. Wenn der Wert der aktuellen Zelle aus Spalte B noch nicht in Spalte C vorhanden ist (überprüft mit ZÄHLENWENN() - bzw. VBA-Anweisung : Application.CountIf()), dann wird der Wert in die nächste freie Zelle der Spalte C eingetragen.
Sub Werte_ohne_Redundanzen_Kopieren()
'Kopiert alle Werte der Spalte B EINMALIG nach Spalte C - ohne Redundanzen
'24.11.2011, NoNet - www.excelei.de
Dim lngZQ As Long, lngZZ As Long 'Zeilen-Variablen für Quelle/Ziel
Dim lngSQ As Long, lngSZ As Long 'Spalten-Variablen für Quelle/Ziel
lngSQ = 2 'Werte aus Quell-Spalte 2 = Spalte B
lngSZ = 3 'Werte nach Ziel-Spalte 3 = Spalte C
Columns(lngSZ).ClearContents 'Zielspalte zuvor löschen !
For lngZQ = 2 To Cells(Rows.Count, lngSQ).End(xlUp).Row
'Per ZÄHLENWENN() prüfen, ob Wert bereits in ZIEL-Spalte vorhanden ist :
If Application.CountIf(Columns(lngSZ), Cells(lngZQ, lngSQ)) = 0 Then
'Wenn der Wert noch NICHT in der ZIEL-Spalte vorhanden ist :
lngZZ = Cells(Rows.Count, lngSZ).End(xlUp).Row + 1
Cells(lngZZ, lngSZ) = Cells(lngZQ, lngSQ)
End If
Next
End Sub
Gruß, NoNet
Anzeige
Alternative ohne VBA: Spezialfilter ohne Duplikate
24.11.2011 22:07:17
NoNet
Hallo Jean-Pierre,
wenn Du das evtl. auch ohne VBA lösen möchtest, dann empfehle ich dir den "Spezialfilter ohne Duplikate" - bei "Excel gut" gehe ich davon aus, dass Du diesen kennst !?!?
Gruß, NoNet
AW: Alternative ohne VBA: Spezialfilter ohne Duplikate
24.11.2011 22:21:41
Jean-Pierre
@ NoNet
Danke, den Code werde ich ausprobieren, muss ich den in ein Modul einbinden?
Und den Sortieren Filter kenne ich natürlich möchte das nur gerne automatisch gemacht haben, da ich in einem Tab Daten reinkopiere und der rest von selbst abgearbeitet wird.
Dieses Excelsheet ist im grunde ein Tool was aus "unreinem" Text einen importfähigen "sauberen" Text macht.
Gruß Jean-Pierre
Anzeige
Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 22:33:15
NoNet
Hallo J.P.,
Und den Sortieren Filter kenne ich natürlich 

Da kennst Du mehr als ich, denn den Sortieren-Filter habe ich nie erwähnt... ;-))
Zu Deiner Frage : Ja, der gesamte Code gehört in ein allgemeines Modul im VBA-Editor :
- Kopiere den gesamten Code von SUB... bis End Sub
- Wechsle mit Alt+F11 in den VBA-Editor
- wähle im Menü "Einfügen - Modul"
- füge den zuvor kopierten Code in das Modulfenster auf der rechten Seite ein
Den VBA-Editor kannst Du nun wieder schließen. Wenn Du die Mappe speicherst (XLS bis Excel 2003 oder XLSM ab Excel 2007), wird der VBA-Code mitgespeichert.
Den Code kannst Du im VBA-Editor per F5 ausführen oder aus dem Tabellenblatt per Alt+F8 (bzw. Menü "Extras - Makros - Makro").
Gruß, NoNet
Anzeige
AW: Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 22:45:13
Jean-Pierre
Hehe...Filter dann Spezialfilter war von mir gemeint :)
Danke - Gestestet und funktioniert hervorragend!
Vielen Dank :)
Gruß Jean-Pierre
AW: Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 23:17:46
Jean-Pierre
Habe noch eine Frage NoNet,
wie/wo füge ich diesen Code ein das ich in einem anderen Tabellenblatt diesen mittels Button ausführen kann?
Habe bis jetzt eine Befehlsschaltfläche in Tab 1 erstellt (Die Sortierung Dank Deinem Code findet in einem anderen Tab statt.
Unter Code habe ich diesen eingefügt, jedoch erfolgt bei Klick auf Button das Einfügen exkl. doppelter nicht.
Ich vermute, es liegt daran das in dem Code der eindeutige Verweis zu dem Tab fehlt oder?
Gruß Jean-Pierre
Anzeige
Code in anderem Tabellenblatt ausführen
25.11.2011 00:38:17
NoNet
Hallo J.P.,
Du hast mit Deiner Vermutung Recht, dass der "Verweis" zum anderen Tabellenblatt angegeben werden muss, falls das Makro nicht im aktuellen Blatt ausgeführt werden soll.
Das macht man in VBA mit dem Konstrukt :
 'Tabelle2 ist das Blatt, auf dem die Aktionen durchgeführt werden sollen
With Sheets("Tabelle2")
'...hier der Code
End With

Die Zell-/Bereichsangaben, die sich auf dieses Blatt beziehen müssen dann zur Kennzeichnung mit einem vorangestellten Punkt . beginnen :
Also z.B. .Cells(...,....) anstatt nur Cells(...,....)
Genauer gesagt ist das eine Kurzschreibweise für die exakte Objektbezeichnung Sheets("Tabelle2").Cells(...,....)
Schau dir doch mal das angehängte Beispiel an : Button in "Tabelle1", Daten in "Tabelle2" :
https://www.herber.de/bbs/user/77661.xls
Gruß und gute Nacht, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spalteninhalte ohne doppelte in neue Spalte auflisten


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und stelle sicher, dass die Daten in Spalte B beginnen, z.B. ab Zelle B2.
  2. Verwende die Formel: Um die Liste ohne Duplikate zu erstellen, kannst du in Zelle C2 folgende Formel eingeben:
    =WENN(ZÄHLENWENN($B$2:B2;B2)=1;B2;"")

    Diese Formel prüft, ob der Wert in Spalte B bereits in der Liste steht und gibt ihn nur einmal aus.

  3. Ziehen die Formel nach unten: Klicke auf die untere rechte Ecke von C2 und ziehe die Formel nach unten, um sie auf die restlichen Zellen anzuwenden.
  4. Filtern: Du kannst die Zellen in Spalte C filtern, um nur die einzigartigen Werte anzuzeigen.

Häufige Fehler und Lösungen

  • Formel zeigt Fehler an: Stelle sicher, dass die Formel korrekt eingegeben ist und die richtigen Zellreferenzen verwendet werden.
  • Doppelte Werte werden angezeigt: Überprüfe, ob die Zellen in Spalte B tatsächlich identisch sind. Manchmal können unsichtbare Zeichen oder Leerzeichen zu Duplikaten führen.
  • Formel funktioniert nicht: Stelle sicher, dass du die Formel in Excel korrekt eingegeben hast, und dass deine Excel-Version die Funktion ZÄHLENWENN unterstützt.

Alternative Methoden

Wenn du keine Formeln nutzen möchtest, gibt es auch die Möglichkeit, die Spezialfilter-Funktion in Excel zu verwenden:

  1. Markiere deine Liste in Spalte B.
  2. Gehe zu Daten > Erweitert.
  3. Wähle Kopieren an einen anderen Speicherort aus.
  4. Setze das Häkchen bei Keine Duplikate.
  5. Wähle den Zielbereich (z.B. C2) aus und klicke auf OK.

Diese Methode ermöglicht es dir, eine Excel-Liste ohne Duplikate sehr schnell zu erstellen.


Praktische Beispiele

Hier ist ein Beispiel für einen VBA-Code, der die Werte aus Spalte B ohne Duplikate in Spalte C kopiert:

Sub Werte_ohne_Redundanzen_Kopieren()
    Dim lngZQ As Long, lngZZ As Long
    Dim lngSQ As Long, lngSZ As Long
    lngSQ = 2 ' Spalte B
    lngSZ = 3 ' Spalte C
    Columns(lngSZ).ClearContents ' Zielspalte leeren
    For lngZQ = 2 To Cells(Rows.Count, lngSQ).End(xlUp).Row
        If Application.CountIf(Columns(lngSZ), Cells(lngZQ, lngSQ)) = 0 Then
            lngZZ = Cells(Rows.Count, lngSZ).End(xlUp).Row + 1
            Cells(lngZZ, lngSZ) = Cells(lngZQ, lngSQ)
        End If
    Next
End Sub

Dieser Code kopiert alle Werte der Spalte B einmalig nach Spalte C und entfernt somit alle doppelten Werte.


Tipps für Profis

  • Benutze Named Ranges: Anstatt Zellreferenzen zu verwenden, kannst du benannte Bereiche verwenden, um deine Formeln einfacher zu gestalten.
  • Automatisiere mit VBA: Wenn du regelmäßig die Liste ohne Duplikate benötigst, erstelle ein Makro, das diesen Prozess automatisch durchführt.
  • Vermeide manuelle Eingaben: Nutze Datenvalidierung, um sicherzustellen, dass nur einzigartige Werte in Spalte B eingegeben werden.

FAQ: Häufige Fragen

1. Wie kann ich in Excel eine Liste ohne Duplikate erstellen?
Du kannst die WENN- und ZÄHLENWENN-Formel verwenden oder die Spezialfilter-Funktion nutzen.

2. Funktioniert das auch in Excel 365?
Ja, alle beschriebenen Methoden sind in Excel 365 verfügbar.

3. Kann ich die Liste ohne Duplikate auch in ein anderes Tabellenblatt kopieren?
Ja, du kannst die Zielzelle in einem anderen Tabellenblatt angeben, indem du den Tabellennamen in der Formel oder im VBA-Code referenzierst.

4. Wie kann ich doppelte Werte in einer neuen Spalte anzeigen?
Du kannst die WENN-Formel anpassen, um doppelte Werte zu markieren oder zu zählen.

5. Gibt es eine schnelle Methode, um Excel-Werte aufzulisten ohne doppelte?
Ja, die Spezialfilter-Funktion ist eine der schnellsten Methoden, um eine Liste ohne Duplikate zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige