Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmte Zeichenfolge finden
#1
Hallo in die Runde,

ich habe eine Liste mit mehreren tausend Einträgen. In einer Spalte befindet sich eine bestimmte Zeichenfolge "4 Ziffern | Unterstrich bzw. Minus | 5 Ziffern"  an einer beliebigen Stelle. Mit welcher Formel kann man diesen Teil extrahieren?

Hier einige Beispiele:
  • ZV7450-52223                    -> 7450-52223
  • ZV7297-9771401119056      -> 7297-97714
  • Text                                   -> ""
  • Z7104_09351                      -> 7104_09351
  • 7104_09351                        -> 7104_09351
  • I02DEF7456_54497(Text)     -> 7456_54497
  • I02ABC1659_7101_01796    -> 7101_01796
  • 103_7453_51381                -> 7453_51381
  • 2036_7453_12235              -> 7453_12235

Vielen Dank für Eure Hilfe!
Antworten Top
#2
B1: =WENNFEHLER(TEIL(A1;MIN(WENN(WENNFEHLER(TEIL(A1;ZEILE($1:$99);4)*ISTFEHLER(--TEIL(A1;ZEILE($1:$99)+4;1))*TEIL(A1;ZEILE($1:$99)+5;5););ZEILE($1:$99)));10);"")
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Dummy
Antworten Top
#3
Hi,

für so was würde ich VBA mit RegEx verwenden.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#4
(07.06.2023, 14:24)LCohen schrieb: B1: =WENNFEHLER(TEIL(A1;MIN(WENN(WENNFEHLER(TEIL(A1;ZEILE($1:$99);4)*ISTFEHLER(--TEIL(A1;ZEILE($1:$99)+4;1))*TEIL(A1;ZEILE($1:$99)+5;5););ZEILE($1:$99)));10);"")

Funktioniert Smile  Kann auch noch eingebaut werden, dass die erste Ziffer immer eine 7 sein muss?

(07.06.2023, 14:35)HKindler schrieb: Hi,

für so was würde ich VBA mit RegEx verwenden.

wenn ich es könnte, ich wahrscheinlich auch Wink
Antworten Top
#5
Hallo,

kannst du denn die Ziffern genauer definieren?
Fängt die erste 4-Ziffernfolge immer mit einer sieben an?

btw:
hat jemand in seiner Formelsammlung eine Funktion um nur Zahlen aus einer Zeichenkette zu extrahieren.
Im Buch "Excel-Das Zauberbuch" von Ignatz Schels hatte ich mal eine Funktion gelesen, die mit einer Potenz-Funktion kombiniert wurde.
Dabei war es dann egal wie die Zeichenreihenfolge war, es wurden immer nur die Zahlen extrahiert.
Antworten Top
#6
(07.06.2023, 15:00)el-rettev schrieb: Hallo,

kannst du denn die Ziffern genauer definieren?
Fängt die erste 4-Ziffernfolge immer mit einer sieben an?

btw:
hat jemand in seiner Formelsammlung eine Funktion um nur Zahlen aus einer Zeichenkette zu extrahieren.
Im Buch "Excel-Das Zauberbuch" von Ignatz Schels hatte ich mal eine Funktion gelesen, die mit einer Potenz-Funktion kombiniert wurde.
Dabei war es dann egal wie die Zeichenreihenfolge war, es wurden immer nur die Zahlen extrahiert.

ja die erste Ziffer ist immer eine 7
Antworten Top
#7
Hi,

will mal nicht so sein...
Code:
Function RegenEchse(Eingabe As String, Muster As String) As String
With CreateObject("VBScript.RegExp")
    .Pattern = Muster
    If .Test(Eingabe) Then
        RegenEchse = .Execute(Eingabe)(0)
    End If
End With
End Function
Dies kommt in ein allgemeines Modul.

Aufruf im Blatt:
=RegenEchse(A1;"\d{4}[-_]\d{5}")

Das Muster bedeutet:
4 Ziffern, dann - oder _ und 5 Ziffern
\d = Ziffer
{x} x-mal
[-_] irgendeines der Zeichen zwischen [] - ein Minus muss als erstes stehen, da es sonst bei z.B. [a-z] von a bis z heißt.

PS: wenn die erste Ziffer eine 7 sein soll, dann ist das Muster "7\d{3}[-_]\d{5}"
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 3 Nutzer sagen Danke an HKindler für diesen Beitrag:
  • Dummy, d'r Bastler, el-rettev
Antworten Top
#8
"Das Zauberbuch" ist von WF, JF, {B}. Bei Scheels habe ich "Kompendium ..." gefunden.

Statt  TEIL(A1;ZEILE($1:$99);4) könnte man (KÜRZEN(TEIL(A1;ZEILE($1:$99);4)/1000)=7) oder so.
Antworten Top
#9
Hallo,

vielleicht auch so:

=WENNFEHLER(TEIL(A1;SUCHEN("7?????????";A1);10);"")

Gruß Uwe
Antworten Top
#10
Hallo Kuwer, das versagt im 8. Bsp. bei 107_... statt 103_...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste