Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1776to1780
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

Werte finden für gleiches Suchergebnis

Werte finden für gleiches Suchergebnis
19.08.2020 17:13:44
Daniel
Hi
Ich hab ein neues Problem, dass mit einer Formel schon funktioniert, dass ich aber gern mit VBA gelöst hätte:
Ich habe eine Tabelle mit 2 Spalten:
A und B
In A stehen Werte die mit einem Buchstaben aus B verglichen werden sollen.
Wenn jetzt in Spalte B 18x "a" steht - dann sollen in der Spalte D ab Zeile 2 alle Treffer in jeweils eigenen Zellen aufgelistet werden.
"Treffer" sind die Werte in Spalte A.
Ich hoffe ich konnte es gut erklären...
MfG
Daniel

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte finden für gleiches Suchergebnis
19.08.2020 17:27:26
ralf_b
könntest du das so gemeint haben? da die Formel wohl unbekannt bleiben soll, habe ich mal den 1:1 Vergleich angenommen.

sub test()
dim x as range , zeileD as long
zeileD = 2
for each x in Columns(1)
if x.value = x.offset(0,1).value then
Cells(zeilD, "D") = x.value
zeilD = zeilD +1
End If
if isempty(x) then exit for
next
end sub

AW: Werte finden für gleiches Suchergebnis
19.08.2020 17:31:51
Daniel
Hallo Ralf,
entschuldige - die Formel hab ich nicht eingetragen, weil das ja nur eine Index-Formel mit KGROESSTE ist...was besseres bekomme ich nicht hin 🙈
Ich hab vergessen zu sagen, dass in Zelle C2 ein Buchstabe steht - und nach dem soll gefiltert werden.
MfG
Daniel
Anzeige
versteckte Kamera? Spalte B oder C ..... ?
19.08.2020 17:35:14
ralf_b
vielleicht erklärst du das mal etwas genauer.
AW: versteckte Kamera? Spalte B oder C ..... ?
19.08.2020 17:50:22
Daniel
Hallo Ralf,
in Spalte "B" stehen die Werte.
In Spalte "C" steht dann der Suchbegriff - also z.B. "a".
Wenn da "a" steht, dann sollen in Spalte "D" alle Treffer aus Spalte "A" eingetragen werden.
Ich hab mal eine Beispieldatei erstellt damit es evtl. leichter zu verstehen ist.
https://www.herber.de/bbs/user/139712.xlsx
AW: versteckte Kamera? Spalte B oder C ..... ?
19.08.2020 18:50:56
Daniel
Oh wow
Das ist der Hammer!
Ich danke dir!
Anzeige
AW: versteckte Kamera? Spalte B oder C ..... ?
19.08.2020 18:08:02
Werner
Hallo,
da ich jetzt auch schon was "gebastelt" habe, meine Lösung auch noch. Ich benutze den Autofilter.
Public Sub Filtern()
Dim loLetzte As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
If WorksheetFunction.CountIf(.Columns(2), .Range("C2")) > 0 Then
.Columns("D").ClearContents
.Range("D1") = "Ergebnis"
loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
.Columns("A:B").AutoFilter
.Range("$A$1:$B$" & loLetzte).AutoFilter Field:=2, Criteria1:=.Range("C2")
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns(1).Copy .Range("D2")
End With
.Columns("A:B").AutoFilter
Else
MsgBox "Fehler: Der Filterbegriff " & .Range("C2") & " ist in Spalte B nicht vorhanden." _
End If
End With
End Sub
Gruß Werner
Anzeige
immer diese PremiumProgrammierer. ;) owt
19.08.2020 18:16:39
ralf_b
AW: versteckte Kamera? Spalte B oder C ..... ?
19.08.2020 18:51:56
Daniel
Hallo Werner
Danke dir!
Das ist der Hammer!
Und entschuldige nochmal wegen letztens - aber ich hatte kein Internet mehr bis gestern :-(
Gerne u. Danke für die Rückmeldung. o.w.T.
19.08.2020 19:11:38
Werner
Dann sieht die Tabelle so aus wie bereits ...
19.08.2020 18:57:53
Luc:?
…von mir angenommen, Daniel,
aber es erhebt sich die Frage, warum du dann nicht einfach einen Filter auf B setzt. Das würde sowohl C2 als auch D sparen. Mit den Ergebnissen könntest du auch weiterrechnen, wenn du dazu TEILERGEBNIS u/o AGGREGAT mit Bezug auf A benutzt.
Falls aber nicht mit dem Filter gearbeitet wdn kann oder soll, käme in D eine plurale MatrixFml infrage, da die Vereinzelung auf EinzelWerte (und -Zellen) mit INDEX Probleme erzeugt, falls so ausgewählte Werte aus A mehrfach auftreten und wie in deinem Bsp sortiert wdn sollen. Um das zu vermeiden müsste man nämlich die ZeilenNr als letzte Dezimalen anfügen und nach der Sortierung wieder entfernen. Das macht die Fml komplizierter. Als plurale MatrixFml sieht das dann für 20 Zeilen ab Zeile 2 so aus:
{=AGGREGAT(15;4;WENN(B2:B21=C2;A2:A21);ZEILE(1:20))}
Mit UDFs in der Variante ohne AGGREGAT dann so:
{=KKLEINSTE(DataSet(NoErrRange(A2:A21;;B2:B21=C2);"");ZEILE(1:20))}
* NoErrRange verwendet nur die Zeilen, deren B-Wert die Bedingung erfüllt. Dadurch entsteht ein diskontinuierlicher Bereich, der mit DataSet in ein zusammenhängendes Datenfeld umgewandelt wird.
Will man den #ZAHL!-Fehler vermeiden, der nach dem Ende der gefilterten Werte erscheint, muss man noch WENNFEHLER anwenden:
{=WENNFEHLER(AGGREGAT(15;4;WENN(B2:B21=C2;A2:A21);ZEILE(1:20));"")}
{=WENNFEHLER(KKLEINSTE(DataSet(NoErrRange(A2:A21;;B2:B21=C2);"");ZEILE(1:20));"")}
Unsortiert klappt es bei den UDF-Fmln auch mit NormalFml und WertVereinzelung per INDEX (über den Bereich ziehen!):
D2[:D21]: =INDEX(DataSet(NoErrRange($A$2:$A$21;;$B$2:$B$21=$C$2);"");ZEILE(D1))
(ArchivLinks zu den UDFs in dieser Fml enthalten → UDF-Namen maussensitiv!)
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige