Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Unikatsliste aus mehreren Spalten

Unikatsliste aus mehreren Spalten
15.12.2016 14:26:48
Chris
Hallo,
ich habe eine dynamische Anzahl von Spalten (bewegt sich im Bereich von 1 - 10). In diesen Spalten sollen jetzt alle Duplikate entfernt werden und in einer neuen Spalte daneben ausgegeben werden. Dabei soll aber nicht zeilenweise verglichen werden. Sondern wenn der Wert bspw. in Spalte A1 Zeile 23 vorkommt und in Spalte C Zeile 221, dann soll er eben nur einmal in der neuen Spalte ausgegeben werden.
Ich hab eine Beispielmappe angehängt. In Spalte D steht das Ergebnis.
Vielen Dank schon mal für (VBA)-Lösungsvorschläge.
https://www.herber.de/bbs/user/110055.xlsx
Grüße
Christoph

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 3 Spalteneinträge ohne Doppler
15.12.2016 14:47:36
Chris
Danke WF. Hab den Link schon gesehen. Würde aber deine VBA-Lösung bevorzugen, falls sich hier jemand dazu bereit erklärt :).
AW: 3 Spalteneinträge ohne Doppler
15.12.2016 14:48:42
Chris
Sry, Rechtschreibfehler. Sollte eine VBA-Lösung heißen.
mit VBA
15.12.2016 15:04:10
Michael
Hi,
hier zwei Varianten:
Option Explicit
Sub max()
Dim o As Object, r As Range, c As Range
Set r = Intersect(UsedRange, Range("A:C"))
If r Is Nothing Then MsgBox "nee": Exit Sub
Set o = CreateObject("scripting.dictionary")
For Each c In r: o(c.Value) = 1: Next
Range("D1").Resize(o.Count) = _
WorksheetFunction.Transpose(o.keys)
End Sub
Sub frisch()
Dim r As Range, c As Range, s&, z&, sI&, z0&
Set r = Intersect(UsedRange, Range("A:C"))
If r Is Nothing Then MsgBox "nee": Exit Sub
z = r.Rows.Count
s = r.Columns.Count
z0 = 1
For sI = 1 To s
r.Columns(sI).Copy Cells(z0, s + 1)
z0 = z0 + z
Next
Cells(1, s + 1).Resize(z0, 1).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Schöne Grüße,
Michael
Anzeige
AW: mit VBA
16.12.2016 09:02:50
Chris
Hallo Michael,
erstmal danke für deine Mühe!
In dieser Zeile kommt bei UsedRange "Variable nicht definiert".
Set r = Intersect(UsedRange, Range("A:C"))
Hab das jetzt so gelöst:
Set r = Intersect(Range("E:F"), Range("E:F"))
Also das Makro tut dann das, was ich von ihm erwarte ;).
AW: mit VBA
16.12.2016 09:03:45
Chris
Meinte natürlichSet r = Intersect(Range("A:C"), Range("A:C"))
AW: mit VBA
16.12.2016 14:07:51
Michael
Hi,
hast Du beim Kopieren vielleicht irgendwie die DIMs versaubeutelt?
Bei mir funktioniert's jedenfalls. Das intersect soll eben dafür sorgen, daß nicht alle Zellen der drei Spalten ausgewertet werden, sondern nur so viele, wie auch Daten vorhanden sind.
Allerdings hab ich grad beim Testen festgestellt, daß die "frische" Variante (manchmal) eine leere Zelle erzeugt, und das lag daran, daß z = r.Rows.Count plötzlich um die 17.000 Zeilen hatte: usedrange ist manchmal "seltsam".
Wenn Du weißt, wie groß der Datenbereich ist, nimm halt einfach set r=range("A1:C15") oder so, ansonsten ermittle die Anzahl der Zeilen mit
z=range("A" & rows.count).end(xlup).row
set r=range("A1:C1").resize(z)
dann bietet es sich auch an, gleich ein Array zu nehmen, das ist sowieso schneller.
Datei: https://www.herber.de/bbs/user/110073.xlsm
Schöne Grüße,
Michael
Anzeige
AW: mit VBA
16.12.2016 15:00:29
Chris
Thx für die Erklärung!
gerne, Gruß & over
16.12.2016 15:50:47
Michael
Trotz Bsp ist das etwas unklar, ...
16.12.2016 00:47:37
Luc:-?
…Christoph,
denn im Bsp sind ja alle mehrfach vorhanden. Was ist mit einzelnen Texten? Sollen alle Texte oder nur die mehrfachen 1× aufgeführt wdn? Ersteres wäre mit 2 UDFs aus dem Archiv ganz einfach:
 ABCD
1
ABCABCABCABCABCABCABCDEFABCDEFABCGHIGHIDEFABCKLMGHIDEFKLMXYZKLMDEFKLMRSTKLMDEFKLM KLMDEFXYZ KLMXYZXYZ KLMXYZXYZ KLMXYZXYZ RSTXYZXYZ ZellMatrixFml in D1:D5,D6: {=VSplit(VJoin(A1:C12;;-1);;;1)}
2
3
4
5
6
7
8
9
10
11
12
13

Bsp-Mappe mit VJoin und VSplit in letztpublizierter Version: https://www.herber.de/bbs/user/99024.xlsm
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Trotz Bsp ist das etwas unklar, ...
16.12.2016 08:46:34
Chris
Ja, es können Texte auch nur 1x vorkommen. Die sollten dann ebenfalls in Spalte D aufgelistet werden.
Vielen Dank für deinen Lösungsvorschlag, Luc.
@Luc:-?
16.12.2016 14:15:46
Michael
Hi,
die Datei habe ich mir gleich mal geschnappt!
Ich hänge grad an einer mathematischen Geschichte, die ich vielleicht poste, wenn's gar nicht anders geht.
Schöne Grüße,
Michael
Na, dann… Dass die Tabellen seit einiger Zeit …
16.12.2016 15:58:45
Luc:-?
…2teilig sind, hast Du ja sicher bemerkt; Michael,
aber ich bin damit nicht so recht zufrieden. Die Browser entfalten mir zuviel EigenInitiative…
Z.Z. kann ich aber Deinen diesbzgl Wünschen noch nicht entsprechen, weil im Pgm noch etliche UDFs eingebunden sind, die ich noch ersetzen bzw korrigieren will und außerdem noch'n paar Kleinigkeiten, die stören könnten. Bin ggw auch an etwas Bedeute­renderem und (möglicherweise für alle) Inter­essanterem dran, aber evtl schaffe ich's noch vor meiner diesjährigen (verordneten) Xmas/NewYear-Auszeit, Dir die neuesten Versionen der beiden UDFs zu schicken (muss dabei wohl erst noch mal nach'n paar Kleinig­keiten sehen!).
Gruß + schö4AdWE, Luc :-?
Anzeige
na da schau her
16.12.2016 19:29:19
Michael
Hallo Luc:-?,
nee, das ist mir völlig entgangen, sorry. Mein un-Browser tut aber brav...
Zwischenzeitlich habe ich doch gepostet, siehe oben unter "Appolonius" - falls Du Lust hast.
Ich muß einkaufen, bevor's mir vor der Nase zumachen.
Gruß & beste Wünsche zurück,
Michael
Du darfst gerne,
18.12.2016 20:13:25
Michael
Luc:-?,
das hatte ich bereits gesehen, wollte aber nicht groß drüber nachdenken, was ich antworten soll.
Ich bin eindeutig ein Gewohnheitstier, und nix nervt mich mehr, als mir neue Vorgehensweisen für was zu erarbeiten, was ich mit vorhandenen Mitteln im Griff bzw. "in den Fingern" habe: mich nervt schon, wenn bei Alternativ-Officen ^+/- bei ganzen Zeilen/Spalten nicht geht...
Die kürzlich auch mal von Dir (?) erwähnte umgekehrt Polnische geht mir auf Anhieb auch nicht rein.
Nee, besagte "Ungereimtheiten" sind mir, wie nervig sie auch immer wieder sein mögen, lieber als wieder von Vorne anzufangen.
Danke für die Affen und schöne Grüße,
Michael
Anzeige
Die Tragweite einer solchen Methode ist Dir ...
19.12.2016 01:44:05
Luc:-?
…aber schon klar, Michael…?!
Es soll ja nicht wenig Leute geben, die Probleme mit (klassischen) XlFmln haben…
Übrigens, die Affen entstammen einem Unicode-Erweiterungszeichensatz, der auch noch mehr putzige Figürchen enthält und den Zugriff durch die vbFktt ChrW und AscW verweigert (zu großer CodeWert!).
Morrn, Luc :-?
naja, immer die Abwärtskompatibilität...
20.12.2016 18:06:52
Michael
lieber Luc:-?,
wir sind ja alle "Freunde des wilden Fortschritts", äh, im Rahmen der bestehenden Möglichkeiten.
Oder hören wir, was Papa Goethe sagte:
"Jede Lösung eines Problems ist ein neues Problem."
"Einer neuen Wahrheit ist nichts schädlicher als ein alter Irrtum."
Ja, die Affen hab ich mir schon im HTML-Quellcode angesehen.
Was soll ich sagen? Es ist sicher spannend, sich Gedanken über ein "neues" Tool zu machen (und das eine oder andere hat OO/LO ja umgesetzt), aber ich weiß nicht, wo ich die Zeit hernehmen soll, mich damit (auch noch) zu beschäftigen - ich komme so schon nicht rum.
Vielleicht sollte ich Deine Anregung mit einer "Weihnachtspause" auch umsetzen.
Laß es Dir gutgehen.
Schöne Grüße,
Michael
Anzeige
Dito, mach mal... ;-) orT
20.12.2016 18:18:46
Luc:-?
Ich habe (hoffentlich noch) die Zeit, Michael… ;-]
FroWeihn! Luc :-?

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige