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

String ausschneiden

String ausschneiden
29.08.2016 15:32:31
Eckhard
Hallo,
ich möchte eine E-Mailadresse aus Daten in der Spalte A ausschneiden. Sie steht jeweils zwischen dem vorletzen und dem letzten Komma. Danke für Hilfe.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String ausschneiden
29.08.2016 15:56:53
Rudi
Hallo,
=LINKS(TEIL(A1;FINDEN("|";WECHSELN(A1;",";"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";""))-1))+1;999); FINDEN("|";WECHSELN(TEIL(A1;FINDEN("|";WECHSELN(A1;",";"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";""))-1)) +1;999);",";"|"))-1)
Gruß
Rudi
AW: String ausschneiden
29.08.2016 17:27:01
Eckhard
Hallo Rudi, danke für die rasche Antwort. Wenn ich deine Formel kopiere und Einfüge wird mir die Formel zwar angezeigt, aber die Rechenoperation nicht ausgeführt. Mache ich etwas falsch?
Gruß Eckhard
Das kommt darauf an wie u.wo du die Fml ...
29.08.2016 18:06:02
Luc:-?
…einfügst, ob dein Text in A1 steht und ob die FmlZelle auch als Standard bzw nicht als Text formatiert ist, Eckhard.
Ansonsten nehme ich dein Problem mal zum Anlass, erneut festzustellen, wie mickrig Xl mit textver-/-bearbeitenden Fktt bestückt ist. Mit einer bestimmten UDF wäre die Fml schon mal kürzer, mit 2en noch kürzer und mit einer anderen am kürzesten:
=WECHSELN(WECHSELN(MaskOn(WECHSELN(WECHSELN(A1;",";"´";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";"")));",";"`";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";""))-1);"mrk`´");"`";"");"´";"")
=WECHSELN(WECHSELN(MaskOn(WECHSELN(WECHSELN(A1;",";"´";CountOn(A1;","));",";"`";CountOn(A1;",")-1); "mrk`´");"`";"");"´";"")
=TEIL(LINKS(A1;VLike(A1;"*,*";-1)-1);VLike(LINKS(A1;VLike(A1;"*,*";-1)-1);"*,*";-1)+1;99)
MaskOn (ZweitPosting 2014!) und VLike sind im Archiv per RECHERCHE zu finden.

Gruß, Luc :-?
Besser informiert mit …
Anzeige
Übrigens, ...
30.08.2016 01:16:55
Luc:-?
…Eckhard,
falls du dich lieber für eine UDF entscheiden willst, obwohl rUdis Fml ja prinzipiell fktioniert, empfehle ich eine allgemeine, die auch für andere ähnliche Aufgaben problemlos eingesetzt wdn kann, keine spezielle nach Pgmmierer­Standard(-Tradition, die sich oft schon durch den Namen mit vorgesetztem überfüssigen UN-Kürzel verrät)…
Luc :-?
Da gäbe es zB auch noch folgd Möglichkeiten, ...
30.08.2016 02:00:20
Luc:-?
…Eckhard:
=Splint(A1;",";CountOn(A1;","))
=INDEX(VSplit(A1;",");CountOn(A1;","))
=PickOn(A1;CountOn(A1;",");",")
Alle 4 UDFs sind im Archiv vorhanden!
Morrn, Luc :-?
AW: Da gäbe es zB auch noch folgd Möglichkeiten, ...
30.08.2016 11:45:09
Eckhard
Hallo Luc,
danke!
Eckhard
String auftrennen mit UDF...
29.08.2016 19:49:05
Case
Hallo Eckhard, :-)
vielleicht so? ;-)
 AB
1asdasasd, 234234234, xcyxcyxc, qweqwqwe, 234234234, sdfsafasdf, a@b.de, asdasdasda@b.de
2asdasasd, 234234234, qweqwqwe, 234234234, sdfsafasdf, b@c.de, asdasdasdb@c.de
3qweqwqwe, 234234234, sdfsafasdf, c@d.de, asdasdasdc@d.de
4asdasasd, 234234234, xcyxcyxc, qweqwqwe, asdasdasd, 234234234, sdfsafasdf, d@e.de, asdasdasdd@e.de

ZelleFormel
B1=fncBananenSplit(A1)
B2=fncBananenSplit(A2)
B3=fncBananenSplit(A3)
B4=fncBananenSplit(A4)

Mit folgender Funktion in einem allgemeinen Modul:
Option Explicit
Function fncBananenSplit(strTMP As String) As String
Dim strZ() As String
strZ = Split(strTMP, ",")
fncBananenSplit = Trim(strZ(UBound(strZ) - 1))
End Function
Servus
Case

Anzeige
Reguläre Ausdrücke - RegExp...
30.08.2016 10:07:18
Case
Hallo Eckhard, :-)
um sich nicht nach den Kommata richten zu müssen, könnte man auch mit Regulären Ausdrücken arbeiten - diese sind für solche Stringoperationen prädestiniert: ;-)
 AB
1asdasasd, 234234234, xcyxcyxc, qweqwqwe, 234234234, sdfsafasdf, a@b.de, asdasdasda@b.de
2asdasasd, 234234234, qweqwqwe, 234234234, sdfsafasdf, b@c.de, asdasdasdb@c.de
3qweqwqwe, 234234234, sdfsafasdf, c@d.de, asdasdasdc@d.de
4asdasasd, 234234234, xcyxcyxc, qweqwqwe, asdasdasd, 234234234, sdfsafasdf, d@e.com, asdasdasdd@e.com
5asdasasd, 234234234, xcyxcyxc, qweqwqwe, asdasdasd, 234234234, sdfsafasdf, e@f.de, asdasdasde@f.de

ZelleFormel
B1=fncWerReitetSoSpaetDurchNachtUndWind(A1)
B2=fncWerReitetSoSpaetDurchNachtUndWind(A2)
B3=fncWerReitetSoSpaetDurchNachtUndWind(A3)
B4=fncWerReitetSoSpaetDurchNachtUndWind(A4)
B5=fncWerReitetSoSpaetDurchNachtUndWind(A5)

Auch hier die Funktion in ein allgemeines Modul:
Option Explicit
Function fncWerReitetSoSpaetDurchNachtUndWind(strText As String) As String
Dim objRegExp As Object
Dim objMAtch As Object
On Error GoTo Fin
Set objRegExp = CreateObject("VbScript.Regexp")
With objRegExp
.Global = True
.Pattern = "[a-z0-9\-_]?[a-z0-9.\-_]+[a-z0-9\-_]?@[a-z.-]+\.[a-z]{2,}"
If .Test(strText) Then
Set objMatch = .Execute(strText)
fncWerReitetSoSpaetDurchNachtUndWind = objMAtch(0).Value
Else:
fncWerReitetSoSpaetDurchNachtUndWind = "Bitte Funktion überprüfen!"
End If
End With
Fin:
Set objMAtch = Nothing
Set objRegExp = Nothing
End Function
Das "Pattern" erschlägt sicher nicht alle Mailadressen, aber da wird man im Netz schnell fündig.
Servus
Case

Anzeige
AW: Reguläre Ausdrücke - RegExp...
30.08.2016 11:43:55
Eckhard
Hallo Case,
vielen Dank.
Eckhard
Deine UDF-Gestaltung ist immer noch ...
30.08.2016 13:55:05
Luc:-?
…typisch für Standard-ProfiPgmmierer, Case,
und erinnert eher an Access- als an Xl-Anwendung (in ZellFmln!):
1. „Typenreine“ Deklaration von FktsArgumenten ist in Xl oft eher hinderlich als nützlich;
2. dito Festlegung der UDF auf einen Ergebnis-Datentyp verhindert die Rückgabe spezifischer FehlerWerte (so kann die Xl-Steuerung allerhöchstens den Standard­Fehler #WERT! anbieten);
3. fncBananenSplit lässt vermissen, was schon die intern verwendete vbFkt Split mitbringt, ein 2.Argument für die variable Angabe eines (x-stelligen) TrennZeichens, das beim Original sogar optional ist und einen Default-Wert hat;
4. die Möglichkeit einer AuswahlBestimmung per weiterem Argument könnte hier sinnvoll sein, wäre aber nicht unbedingt erforderlich, da das Ergebnis auch als Argument in INDEX verwendbar wäre (so ist sie aber von vornherein festgelegt!);
5. Reguläre Ausdrücke (RegExp) sind eher etwas für Pgmmierer als für normale Xl-Nutzer, denn deren Formulierung kann ganz schön kompliziert sein (→ welcher NormalNutzer wird sich nebenbei damit befassen wollen?).
Im Übrigen habe ich den Eindruck gewonnen, dass Eckhard mit all dem (meine Anmerkungen eingeschlossen) ohnehin nichts anfangen kann bzw will. Er sollte überprüfen, was er beim Eintrag von Rudis Fml falsch gemacht hat, denn sie fktioniert prinzipiell!
Gruß, Luc :-?
Anzeige
Na ja...
02.09.2016 22:16:14
Case
Hallo Luc, :-)
... meine UDFs sind in der Regel Ergebnis-, Aufgaben- bzw. Lösungsorientiert. Mehr nicht. ;-)
Servus
Case

...Und damit Wegwerf-Ware! Ein Glück für ...
05.09.2016 12:19:23
Luc:-?
…uns, Case,
dass MS (früher) nicht auch so gedacht hat, sonst gäbe es wohl von Anfang an noch viel mehr FktsVarianten als neuerdings nur die paar mit Pkt wie bspw RANG.GLEICH (⇒RANG) und RANG.MITTELW! :-]
Aber schon deine FktsNamen deuten ja auf „Eintagsfliegen“ hin. Für so etwas wäre mir meine Zeit zu schade…!
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige