Excel: Enthält Ein Text einen Inhalt aus Liste dann gib diesen wieder
#1
Hallo,

Ich habe folgendes Problem: Ich habe in einer Spalte verschiedene Codes stehen, die alle unterschiedlich lang sind. In diesen Codes sind verschiedene Mengenangaben vorhanden (10ml, 250mg,..).
Diese würde ich mir gerne in einer separaten Spalte anzeigen lassen.
Das heißt die Mengenenangaben, sollen in dem Code gesucht werden und in der Zeile nebendran ausgespuckt werden. 

Spalte A: 

Kabkfl250mg_kfl
Kenmz10ml_kgl
Jdntl15g_lgbh
Kfllhb250kg+8ml_krl

Ich habe schon eine Liste angelegt mit allen vorhandenen Mengenangaben. Nun ist meine Frage: Kennt ihr eine Formel mit der ich die Mengenangaben aus meiner Liste in Spalte A suchen kann und diese dann separat in Spalte B wiedergeben kann?

Vielen Dank!
Top
#2
Hallo,

vielleicht so?
Code:
Sub prcCEF()
   Dim objReg As Object, objM As Object
   Dim lngC As Long
  
   Set objReg = CreateObject("vbscript.regexp")
   objReg.Pattern = "\d+[a-z]+"
   For lngC = 1 To 4
      Set objM = objReg.Execute(Cells(lngC, 1))
      If objM.Count > 0 Then Cells(lngC, 2) = objM(0)
   Next lngC
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • dobo1809
Top
#3
Hallo, :19:

so etwa? :21:
[attachment=34096]
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • dobo1809
Top
#4
Ja genau so - vielen, vielen Dank! :)

Könnten Sie mir die Formel evtl. kurz erklären, so dass ich diese auf mein Excel Sheet anwenden kann?
Top
#5
Hallo, :19:

wer soll erklären? Stefan oder ich? :21:
Top
#6
Hallo Case,

ich denke: Du. Weil ich bin am Thema vorbei, der TE suchte eine Funktion.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • dobo1809
Top
#7
Wäre super, wenn Case das machen könnte. 
Vielleicht kannst Du es mir auch bei den neuen Abkürzungen in der Liste erklären?


Angehängte Dateien
.xlsb   REGEXP_Mengenangaben_auslesen (3).xlsb (Größe: 14,99 KB / Downloads: 4)
Top
#8
Hallo, :19:

dann so: :21:
[attachment=34107]
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • dobo1809
Top
#9
Danke Case! Könntest du mir noch sagen wie du vorgegangen bist und wie man diese Formel schreibt? Ich kenne mich leider mit den Array Formeln gar nicht aus.
Top
#10
Hallo, :19:

das ist eine UDF. Mit RegExp kannst du Strings manipulieren bzw. abändern oder auslesen. Ich teste alle meine Pattern hier. Im großen Fenster kopierst du deinen Suchstring rein und im oberen Fenster dein Pattern um den String entsprechend zu bearbeiten.

Du muss also in deiner Datei im VBA Editor eine Modul hinzufügen und die Funktion hineinkopieren, dann kannst du sie als Formel im Tabellenblatt nutzen. Die Datei muss dann als "*.xlsm" oder "*.xlsb" gespeichert werden.

Der Code mal etwas auskommentiert: :21:
[attachment=34115]
Top


Gehe zu:


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