Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
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
instr Suche in einer Spalte
25.05.2021 17:51:36
Tim
Hallo zusammen,
ich komme gerade nicht weiter und benötige bitte eure Hilfe.
Ich habe eine Tabelle, die in Spalte "C" verschiedene Nummern hat, die durch ein Komma getrennt sind.
In Spalte "B" ist die jeweilige Bezeichnung zu den verschiedenen Nummern, die ich anschließend benötige.
Jetzt möchte ich gern verschiedene Nummern aus der Spalte "D" in Spalte "C" via instr durchsuchen und bei einem Treffer, die dazugehörige Bezeichnung aus Spalte "B" in Spalte "E" übernehmen, jedoch funktioniert das nicht.
Die Grundlage dazu habe ich im Netz gefunden, jedoch scheitere ich an der entsprechenden Anpassung:
https://www.herber.de/bbs/user/146364.xlsm

Private Sub CommandButton1_Click()
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim lngZZmax As Long
Dim VarDat As Variant
Dim i As Integer
With Tabelle1
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
lngZZmax = .Range("C" & .Rows.Count).End(xlUp).Row
VarDat = .Range("D2:D" & lngZeileMax)
For lngZeile = 2 To lngZeileMax
For i = 1 To UBound(VarDat)
If InStr(LCase(.Range("C" & lngZeile).Value), LCase(VarDat(i, 1))) > 0 Then
.Range("E" & lngZeile).Value = .Range("B" & lngZeile).Value
MsgBox lngZeile
Exit For
End If
Next i
Next lngZeile
End With
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: instr Suche in einer Spalte
25.05.2021 18:03:56
onur
Und was genau soll der Code wo genau suchen?
AW: instr Suche in einer Spalte
25.05.2021 18:34:51
Tim
Hallo onur,,
der Code soll für jeden Zeileneintrag in Spalte D, die Spalte C auf einen Treffer durchsuchen. Hat er einen Treffer, benötige ich aus Spalte B den Eintrag dazu.
AW: instr Suche in einer Spalte
25.05.2021 18:40:18
onur
!benötige ich aus Spalte B den Eintrag dazu."?
Als Msg-Box-Ausgabe ?
AW: instr Suche in einer Spalte
25.05.2021 19:57:15
Tim
Nein, das Ergebnis soll bitte als Eintrag hinter den Suchwert geschrieben werden. Die MsgBox war nur für einen Test, um ggf. selbst auf die Lösung zu kommen.
AW: instr Suche in einer Spalte
25.05.2021 19:58:42
onur
Unmd wenn MEHRERE Einträge gefunden werden?
AW: instr Suche in einer Spalte
25.05.2021 20:04:54
Tim
Dann bitte nur den ersten Treffer.
AW: instr Suche in einer Spalte
25.05.2021 20:29:04
onur
In deiner Datei kann man nix finden, da keiner der Suchwerte irgendwo in Spalte C zu finden sind.
Anzeige
AW: instr Suche in einer Spalte
25.05.2021 20:57:24
Tim
Perfekt, vielen Dank!
Gerne !
25.05.2021 20:58:22
onur
AW: instr Suche in einer Spalte
25.05.2021 20:58:44
Yal
Hallo Tim,
Onur arbeitet bestimmt schon an einer Lösung, und ich möchte ihn den Vorrang nicht wegnehmen, aber einen Workaround vorschlagen:
Wenn die Enträge in Spalte C untereinander anstatt einzellig Komma-getrennt und die Spalte C vor der Spalte B wäre, dann bräuchtest Du nur noch einen Sverweis.
Diese beide Schritten gehen mit Power Query (PQ) relativ leicht.
Zuerst eine "Tabelle" erzeugen und PQ-Abfrage anstossen:
_ Die Tabelle in Spalte B und C als "Tabelle" (Reiter "Einfügen", "Tabelle" oder Strg+t) deklarieren. Mit Überschrift. Vielleicht geht es leichter, wenn zwischen Spalte C und D eine leere Spalte vorher eingefügt wird. Spalte A kann dabei sein, stört nicht.
_ auf diese "Tabelle", im Reiter "Daten", Block "Abrufen und transformieren", Schlatfläche "Aus Tabelle" anklicken
Dann bist Du im PQ-Editor.
Dort:
_ die Spalte "weitere Typen" auswählen
_ im Reiter "Start" die Funktion "Spalten teilen" anklicken,
_ nach Komma teilen und unter "Erweiterte Optionen", "Aufteilen in Zeilen" auswählen
_ den letzten angewendetem Schritt "geänderte Typ" löschen (es versucht daraus ein Zahl zu machen. Wir wollen, dass es Text bleibt, sonst verschwinden die führenden Nullen)
_ Spalte "erweiterte Typen" vor der Spalte "Bezeichnung" verschieben
_ zweck Übersicht, die Abfrage in "Ergebnis" umbenennen (rechts in Abfrage-Eigenschaften)
_ Schliessen und laden (Reiter "Start")
Es öffnet sich eine neue Blatt "Tabelle2", wo alle Einträge wie im PQ gezeigt aufgelistet werden (bei neuen Einträge in der Ursprungsliste, Rechtklick auf "aktualisieren" * )
Darauf eine Sverweis auf dem "Erweiterte Typen", das ungefähr so aussehen wird:

=SVERWEIS(TEXT(D3;"0");Ergebnis[[#Alle];[weitere Typen]:[Bezeichnung]];2;0)
Die Umwandlung in Text ist notwendig sonst suchst Du Zahlen innerhald von Texte.
*: Das wirst Du schnell brauchen, weil keines den von Dir gelieferten Beispiele hat ein Treffer. Also irgendeinen Wert aus der Spalte D kopieren, mit einer Komma am Ende eines "weitere Typen" einfügen und die neue Liste wie beschrieben aktualisieren. Dann gibt es einen Treffer (der auch noch dazu leicht zu prüfen ist)
VG
Yal
Anzeige
AW: instr Suche in einer Spalte
25.05.2021 21:21:00
Yal
Die Lösung von Onur ist tatsächlich schlänker als ich dachte.
Zum Spass: als User-Defined-Function, so ein Art von "Sverweis für die andere Seite" (wenn RelativeSpalte = -1):

Public Function MeinVerweis(Was, Wo, RelativeSpalte As Integer)
Dim Z As Range
Dim R As Range
Set R = Wo.EntireColumn
Set Z = R.Find(What:=Was, After:=R.Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
MeinVerweis = IIf(Z Is Nothing, "", Z.Offset(0, RelativeSpalte).Value)
End Function
Es wird einfach so gerufen:

=MeinVerweis(D2;$C$1:$C$17;-1)
VG
Yal
Anzeige
AW: instr Suche in einer Spalte
25.05.2021 20:43:32
Tim
Dann bitte nur den ersten Treffer.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige