Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1804to1808
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

Übereinstimmende Zeichen zählen

Übereinstimmende Zeichen zählen
14.01.2021 16:04:44
excelliebe
Hallo zusammen,
heute möchte ich in einen Wert mit den Werten aus einer Spalte abgleichen und mir die Werte mit der größten Übereinstimmung zurückgeben lassen.
Beispiel für gesuchten Wert: WC201 oder WKC (Anzahl Zeichen varriert)
Nun möchte ich, dass Excel jedes einzelne Zeichen mit den Werten in dieser Spalte abgleicht:
WKC201
WKC141 cushion
6005 MD
WKC17
8503
10606
9297
9279
8159
11200
9715
WKC85
5383
5383 S/2
GM-LBR-1501
Die, die die größte Übereinstimmung hat (haben), sollen zurückgegeben werden.
D.h. im Falle von WC201 der Wert WKC201
und im Falle von WKC die Werte WKC85, WKC201, WKC141 cushion und WKC17.
Ist das irgendwie möglich?
LG und Danke

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beispiel für WC201
14.01.2021 16:21:48
Fennek
Hallo,
Liste in Spalte A:

Sub Main
key = "WC201"
for i = 1 to 15
Tx = cells(i,1)
for b = 1 to len(key)
if instr(1, Tx, mid(key, b, 1)) > 0 then t = t + 1
next b
cells(i,2) = t
t = 0
next i
End Sub
Die Erweiterung für viele Begriffe ("key") sollte kein Problem sein.
mfg
AW: Beispiel für WC201
14.01.2021 16:43:55
excelliebe
Hallo,
vielen Dank für die schnelle Rückmeldung. Ich hatte eig. an eine Formel gedacht - ohne VBA.
Geht aber auch so, danke! Allerdings bräuchte ich dann noch etwas Hilfe.
Die Spalte, in der ich suche, ist im Tabellenblatt SKU Spalte F und der Wert, den ich suche, steht im Blatt Filter Zelle E2.
Die ausgegebenen Werte möchte ich im Blatt Filter in Spalte N ab Zeile 5 untereinander (wenn möglich).
Könntest du mir hier noch einmal helfen?
LG
Anzeige
AW: Beispiel für WC201
14.01.2021 17:18:53
Fennek

Sub Main
key = sheets("Filter").range("E2") ' "WC201"
with sheets("SKU")
for i = 1 to .cells(rows.count, 6).end(xlup).row
Tx = .cells(i,6)
for b = 1 to len(key)
if instr(1, Tx, mid(key, b, 1)) > 0 then t = t + 1
next b
.cells(i,7) = t
t = 0
next i
mx = worksheetfunction.max(.columns(7)
lr = worksheetfunction.match(mx, .columns(7), 0)
sheets("Filter").cells(5, 14) = .cells(lr, 6).value
end with
End Sub

AW: Beispiel für WC201
14.01.2021 17:31:34
excelliebe
Danke, das funktioniert schonmal :)
Allerdings erhalte ich immer nur ein Ergebnis. Ich hätte gerne mehrere Werte zurück.
z.B. bei
5383
5383 S/2
Wenn ich nach 5383 oder 538 suche, erscheint nur 5383.Ich hätte gerne beide Werte zurück.
Geht das?
LG und vielen Dank!
Anzeige
AW: Übereinstimmende Zeichen zählen
14.01.2021 17:47:17
Daniel
HI
ohne VBA:
schreibe den kurzen Text in eine Zelle, z.B. D1
schreibe diese Formel neben die Daten (Formel ist für B1):
=SUMMENPRODUKT(--ISTZAHL(SUCHEN(TEIL($D$1;ZEILE(BEREICH.VERSCHIEBEN($Z$1;0;0;LÄNGE($D$1);1));1);A1))) 

filtere dann mit dem Autofilter nach dem höchsten Wert.
sollte Groß/Kleinschreibung eine Rolle spielen, dann ersetze Suchen durch Finden.
die Anzahl, wie oft ein Buchstabe vorkommt, spielt keine Rolle.
Gruß Daniel
AW: Übereinstimmende Zeichen zählen
15.01.2021 10:01:00
excelliebe
Hi Daniel!
Vielen Dank - auf eine solche Lösung für mein Problem habe ich gar nicht gedacht.
Kannst du mir bei Gelegenheit Schritt für Schritt erklären, was genau hier passiert? Rein aus Interesse :)
LG
Anzeige
AW: Übereinstimmende Zeichen zählen
15.01.2021 10:33:44
Daniel
HI
naja, es wird in einer Schleife geprüft, ob jedes Zeichen aus D1 in A1 vorhanden ist.
Suchen erzeugt eine Zahl oder einen Fehler, je nachdem ob das Zeichen drin ist oder nicht.
IstZahl macht daraus WAHR und FALSCH
-- macht aus WAHR und FALSCH 1 und 0
die Ergebnisse aus der Schleife werden dann vom Summenprodukt aufsummiert.
Eine Schleife erzeugt man dadurch, dass man an einer Stelle, an welcher ein Einzelwert erwartet wird, einen Zellbezug auf mehrere Zellen einstellt (oder eine Matrixkonstante {…} )
Excel erzeugt dann die Schleife (Matrixformel).
das Bereich.Verschieben ist dann hier notwendig, um diesen Zellbereich an die Länge des Textes anzupassen.
bei einem fixen Text könnte die Formel so aussehen, ist vielleicht etwas sprechender:
=SUMMENPRODUKT(--ISTZAHL(SUCHEN(TEIL("abc";{1;2;3};1);A1)))
Gruß Daniel
Anzeige
AW: Übereinstimmende Zeichen zählen
15.01.2021 10:39:22
excelliebe
Mega - vielen Dank für die ausführliche Erklärung :)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige