Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

(Spezial-) Formel für dyn. Liste ohne Duplikate

(Spezial-) Formel für dyn. Liste ohne Duplikate
Reinhard
Hallo Wissende,
Auf http://excelformeln.de/formeln.html?welcher=194 steht zwar der Satz:
"Es gibt Array-Formeln ohne Hilfsspalte für überschaubare Bereiche."
Der nützt mir aber nix, bräuchte ich dies Arrayformeln, wobei die vielleicht nicht ausreichen weil mein Anliegen ist spezieller.
Es liegt vor, ca. 40 Spalten.
Zeile1: N1 N2 N3 N7 nix nix null nix nix N2 N3 N9
Zeile2: N2 N6 nix nix null N1 nix nix N18
Zeile3: N21 nix nix null N8 N2
Ergebnis soll dann sein
Zeile1: N1 N2 N3 N7 N9
Zeile2: N6 N18
Zeile3: N21 N8
Also nicht nur in Zeile1 alle Doppelten rauswerfen samt 0 und Leer, sondern in Zeile2 das Gleiche, dazu noch die rauswerfen die schon in Zeile1 stehen. Usw. für Zeile3...
Ich hoffe mein Beispiel war verständlich. In der nachfolgenden Mappe geht es um Tabelle3!H2:BD6.
Die Ergebnisse sollten dann in Tabelle3!H10:X14 erscheinen (X heißt soviel Spalten wie nötig).

Die Datei https://www.herber.de/bbs/user/65084.xls wurde aus Datenschutzgründen gelöscht


Danke ^ Gruß
Reinhard

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: (Spezial-) Formel für dyn. Liste ohne Duplikate
14.10.2009 23:08:51
Worti
Hallo Reinhard,
wenn es nicht unbedingt eine Formel sein muss, geht es mit folgendem Makro:
Sub AllesNurEinmal()
Dim lngZeile As Long, lngSpalte As Long
Dim lngZielZeile As Long
Dim lngZielSpalte As Long
Dim objSDic
Set objSDic = CreateObject("scripting.dictionary")
For lngZeile = 2 To 6
lngZielZeile = lngZeile + 8
lngZielSpalte = 8
For lngSpalte = 8 To 56
If Cells(lngZeile, lngSpalte).Value  "" And _
Cells(lngZeile, lngSpalte).Value  0 Then
If Not (objSDic.Exists(Cells(lngZeile, lngSpalte).Value)) Then
objSDic.Add Cells(lngZeile, lngSpalte).Value, Cells(lngZeile, lngSpalte). _
Value
Cells(lngZielZeile, lngZielSpalte).Value = _
Cells(lngZeile, lngSpalte).Value
lngZielSpalte = lngZielSpalte + 1
End If
End If
Next lngSpalte
Next lngZeile
Set objSDic = Nothing
End Sub

Anzeige
AW: (Spezial-) Formel für dyn. Liste ohne Duplikate
14.10.2009 23:21:18
Reinhard
Hallo Worti,
es tut mir sehr leid für deine Mühen, verzeih :-(
Ich habe vergessen "kein Vba" zu sagen.
Gruß
reinhard
Ok, dann muss ich passen oT.
14.10.2009 23:36:51
Worti
AW: (Spezial-) Formel für dyn. Liste ohne Duplikate
15.10.2009 08:01:23
fcs
Hallo reinhard,
per Formel kann man das nach meiner Einschätzung nur in mehreren Stufen mit Hilfsberechnungen lösen.
Gruß
Franz
https://www.herber.de/bbs/user/65095.xls
Franz hat recht,...
18.10.2009 03:09:19
Luc:-?
...Reinhard,
allerdings muss man auch fragen, ob die Anzahl der DS groß und ihr Aufbau gleichförmig genug ist, um bspw auch die folgende Lösung zu rechtfertigen...
Userbild
Um die Fmln nicht ins Uferlose wachsen zu lassen, habe ich sich wiederholende Teilbereiche in benannte Fmln ausgelagert und in der HptFml nur ihre Namen benutzt. Eigentl wäre für die letzte Zeile noch eine 3.Runde erforderlich, wenn hier auch Begriffe aus der 2., die nicht in der 1.Zeile auftreten, vorkommen würden. Auch muss in diesem Bsp die Leerzeilenanzahl so wie gezeigt bleiben. Für eine 3.Runde wäre es dann je nach Weiterbenutzung von inZWert eine mehr. Wenn man das ändern will, müssen neue Namen mit entsprechenden Adressbezügen definiert wdn.
Aber wie gesagt, eigentlich ist das viel zu „erfindungs"-zeitaufwendig, wenn man kein FmlSpezi ist. Da wäre VBA bzw ggf Handarbeit wirklich angebrachter...
Gruß Luc :-?
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige