Discussion:
Suchen einer bestimmten Zeichenfolge in einer ganzen Spalte
(zu alt für eine Antwort)
nordlaender
2007-09-11 09:05:56 UTC
Permalink
Hallo und Gruß in die Runde,

ich möchte eine bestimmte Zeichenfolge aus Spalte A innerhalb der
ganzen Spalte B suchen lassen (2000 Datensätze). Zeichenfolge A ist
ein Bestandteil von Zeichenfolge B (A= 23_50; B=55_23_50_2)
Beide Spalten sind Textformatiert.
Immer wenn ich die ganze Spalte als Suchbereich angebe, erhalte ich
eine Fehlermeldung.

Wenn der richtige Datensatz gefunden wurde, sollen die ersten beiden
Zeichen (hier: 55) in Spalte C ausgegeben werden.

Hat dafür jemand eine Lösung?

Danke schon jetzt.


Gruß

nordlaender
Claus Busch
2007-09-11 10:06:15 UTC
Permalink
Hallo Nordlaender,

wir reden uns hier gerne mit Realnamen an.
Post by nordlaender
ich möchte eine bestimmte Zeichenfolge aus Spalte A innerhalb der
ganzen Spalte B suchen lassen (2000 Datensätze). Zeichenfolge A ist
ein Bestandteil von Zeichenfolge B (A= 23_50; B=55_23_50_2)
Beide Spalten sind Textformatiert.
Immer wenn ich die ganze Spalte als Suchbereich angebe, erhalte ich
eine Fehlermeldung.
Wenn der richtige Datensatz gefunden wurde, sollen die ersten beiden
Zeichen (hier: 55) in Spalte C ausgegeben werden.
In C1 (eventuelle deine Bezüge anpassen):
=WENN(IDENTISCH(TEIL(B1;4;5);$A$1);LINKS(B1;2);"")


Mit freundlichen Grüssen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate
Alexander Wolff
2007-09-11 10:31:25 UTC
Permalink
Wenn ich das richtig verstanden habe (ich brauche die Eigenschaft von B:B
also nicht weiter zu prüfen), dann so:

=LINKS(SVERWEIS(A1;A:B;2;);2) - wobei Du in A1: 23_50 eingibst.
--
Moin+Gruss Alexander - MVP für MS Excel - www.xxcl.de - mso2000sp3 --7-2
Eberhard Funke
2007-09-11 11:18:43 UTC
Permalink
Post by nordlaender
ich möchte eine bestimmte Zeichenfolge aus Spalte A innerhalb der
ganzen Spalte B suchen lassen (2000 Datensätze). Zeichenfolge A ist
ein Bestandteil von Zeichenfolge B (A= 23_50; B=55_23_50_2)
Beide Spalten sind Textformatiert.
Immer wenn ich die ganze Spalte als Suchbereich angebe, erhalte ich
eine Fehlermeldung.
Wenn der richtige Datensatz gefunden wurde, sollen die ersten beiden
Zeichen (hier: 55) in Spalte C ausgegeben werden.
Hallo nordlaender,

ich gehe davon aus, dass die "55" in der Zeile ausgegeben werden soll, in
der der A-Wert steht (also: A3= 23_50, B12= 55_23_50_2 --> C3= 55)

C1:
=LINKS(INDEX(B:B;VERGLEICH(WAHR;ISTZAHL(SUCHEN(A1;INDIREKT("B1:B"&MAX(ZEILEN(B:B)-1));1));0));2)
Als Matrixformel mit der Tastenkombination Shift+Strg+Enter einzugeben.

Zwei Schönheitsfehler:
1. Wenn der A-Wert nicht in Spalte B enthalten ist, wird #NV ausgegeben.
2. Bei leeren A-Zellen wird die Spalte B nach Werten durchsucht, die eine 0
(Null) enthalten, und es kommt zu fehlerhaften Asugaben in Spalte C. Das
lässt sich nicht durch Einbau in eine Wenn-Formel =wenn(A1="";"";Formel)
bzw. =wenn(A1=0;"";Formel) beheben --> Fehler.
Dasselbe ist bei 1. #NV zu erwarten, habe ich daher nicht ausprobiert.
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
nordlaender
2007-09-11 11:48:33 UTC
Permalink
Post by Eberhard Funke
Post by nordlaender
ich möchte eine bestimmte Zeichenfolge aus Spalte A innerhalb der
ganzen Spalte B suchen lassen (2000 Datensätze). Zeichenfolge A ist
ein Bestandteil von Zeichenfolge B (A= 23_50; B=55_23_50_2)
Beide Spalten sind Textformatiert.
Immer wenn ich die ganze Spalte als Suchbereich angebe, erhalte ich
eine Fehlermeldung.
Wenn der richtige Datensatz gefunden wurde, sollen die ersten beiden
Zeichen (hier: 55) in Spalte C ausgegeben werden.
Hallo nordlaender,
ich gehe davon aus, dass die "55" in der Zeile ausgegeben werden soll, in
der der A-Wert steht (also: A3= 23_50, B12= 55_23_50_2 --> C3= 55)
=LINKS(INDEX(B:B;VERGLEICH(WAHR;ISTZAHL(SUCHEN(A1;INDIREKT("B1:B"&MAX(ZEILEN(B:B)-1));1));0));2)
Als Matrixformel mit der Tastenkombination Shift+Strg+Enter einzugeben.
1. Wenn der A-Wert nicht in Spalte B enthalten ist, wird #NV ausgegeben.
2. Bei leeren A-Zellen wird die Spalte B nach Werten durchsucht, die eine 0
(Null) enthalten, und es kommt zu fehlerhaften Asugaben in Spalte C. Das
lässt sich nicht durch Einbau in eine Wenn-Formel =wenn(A1="";"";Formel)
bzw. =wenn(A1=0;"";Formel) beheben --> Fehler.
Dasselbe ist bei 1. #NV zu erwarten, habe ich daher nicht ausprobiert.
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
Hallo,

ich danke für die schnellen Tipps, die ich jetzt austesten werde.

Bis später mal.

Tschüß und Gruß

nordlaender
Eberhard Funke
2007-09-11 15:05:54 UTC
Permalink
Post by Eberhard Funke
ich gehe davon aus, dass die "55" in der Zeile ausgegeben werden soll, in
der der A-Wert steht (also: A3= 23_50, B12= 55_23_50_2 --> C3= 55)
=LINKS(INDEX(B:B;VERGLEICH(WAHR;ISTZAHL(SUCHEN(A1;INDIREKT("B1:B"&MAX(ZEILEN(B:B)-1));1));0));2)
[%<]


Hallo nordlaender,

besser sollte es mit dieser Funktion gehen:

Public Function Extrakt(A_Wert As Range) As String
Dim rngFound As Range
Set rngFound = Columns("B").Find _
(what:=A_Wert, lookat:=xlPart)
If Not rngFound Is Nothing Then
Extrakt = Left(A_Wert.Offset(0, 1).Value, 2)
End If
End Function

Funktionsaufruf in C1: =Extrakt(A1)
und runterkopieren.

Ungetestet, da infolge eines Bugs bei XL2000 die Find-Methode innerhalb
einer Funktion nicht funktioniert :-(


Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Loading...