Anzeige
Archiv - Navigation
1788to1792
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

Text links und rechts abschneiden

Text links und rechts abschneiden
20.10.2020 18:07:57
Kisska
Hallo zusammen,
ich schaffe es leider nicht, einen Textteil zu extrahieren.
Bespiel: XX_YYY (YY)_ZZZ ZZZ Z_00_11_2222_333333
Ich brauche das Ergebnis 11.
Das Extrahieren sollte nach dieser Logik funktionieren:
Gebe einen String aus nach dem 4. Unterstrich von links und vor dem 2. Unterstrich von rechts.
Wenn so eine Zeichenkette nicht gefunden wird, wenn es bspw. nur 4 Unterstriche gibt, dann soll nichts ausgegeben werden.
Eine ähnliche Fragestellung habe ich hier gefunden:
https://www.clever-excel-forum.de/Thread-Zelle-ab-bestimmtem-mehrfachen-Zeichen-auslesen

Jedoch schaffe ich es nicht, auf mein Beispiel anzuwenden.
Kann bitte einer helfen?
VG, Kisska

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text links und rechts abschneiden
20.10.2020 18:29:36
Daniel
HI
wie sah denn dort der Lösungsvorschlag aus?
du kannst beispielsweise den 4. Unterstrich von links gezielt (also nur diesen) durch ein anderes Zeichen oder Zeichenfolge ersetzen (dazu beim Wechseln als 4. Parameter die 4 angeben, um anzugeben dass der 4. Unterstrich ausgetauscht werden soll), dann bestimmst du die Position dieses Zeichen und kannst damit trennen.
Hilft dir das weiter?
ansonsten schau mal hier:
https://www.herber.de/excelformeln/pages/Bestimmte_Worte_aus_einem_String_herauspicken.html
Gruß Daniel
Anzeige
AW: Text links und rechts abschneiden
20.10.2020 18:32:50
Nepumuk
Hallo Kisska,
ein Beispiel:
Public Sub Test()
    Const Bespiel As String = "XX_YYY (YY)_ZZZ ZZZ Z_00_11_2222_333333"
    Dim avntTemp As Variant
    avntTemp = Split(Bespiel, "_")
    If UBound(avntTemp) = 6 Then MsgBox avntTemp(4)
End Sub

Gruß
Nepumuk
Anzeige
AW: Text links und rechts abschneiden
20.10.2020 18:41:13
Nepumuk
Hallo Kisska,
oder als Formel:
 AB
1XX_YYY (YY)_ZZZ ZZZ Z_00_11_2222_33333311

ZelleFormel
B1=Extract(A1)

Mit dieser Funktion:
Option Explicit

Public Function Extract(ByRef probjRange As Range) As Variant
    Dim avntTemp As Variant
    avntTemp = Split(probjRange.Text, "_")
    If UBound(avntTemp) = 6 Then
        Extract = Val(avntTemp(4))
    Else
        Extract = ""
    End If
End Function

Gruß
Nepumuk
Anzeige
AW: mit dem Formelansatz von lupo ...
20.10.2020 18:38:35
lupo
Hallo Kisska,
... so: =GLÄTTEN(TEIL(WECHSELN(GLÄTTEN(A1);"_";WIEDERHOLEN(" ";199));5*199-198;199))+0
Gruß Werner
.. , - ...
perfekt ... Frage
20.10.2020 20:15:54
Kisska
Hallo Werner,
vielen Dank für diese Lösung! Genau das, was ich gesucht habe!
Ich habe 2 Fragen:
1) Ich habe manche Datensätze mit dem Ergebnis aus einer Zahl und einem Buchstaben, bspw. 1A. Dieses Ergebnis wird jedoch nicht ausgegeben und ich erhalte #Wert!
Lässt sich die Formel ohne viel Aufwand erweitern? Wenn doch zu viel Aufwand, dann werde ich manuell extrahieren.
2) Statt 11 habe ich manche Datensätze mit 00. Als Ergebnis kommt 0 ohne die führende Null. Könntest du mir einen Tipp geben, wie ich 00 anzeigen lasse? Geht es über benutzerdefiniertes Format?
VG, Kisska
Anzeige
AW: perfekt ... Frage
20.10.2020 20:37:59
Daniel
Lass einfach das "+0" weg.
Das dient nur dazu, aus dem Resttext eine Zahl zu machen, was für dich aber nicht notwendig ist.
Gruß Daniel
Danke!
20.10.2020 21:24:33
Kisska
Besten Dank, Daniel!
VG, Kisska
AW: Wenn Du schon eine alte Socke
21.10.2020 02:32:33
Sulprobil
aus Deinem Kleiderschrank präsentierst, dann wasch' und stopf' sie doch bitte.
SCNR,
Bernd
So steht sie im Archiv, nicht in meinen AddIns!
21.10.2020 02:53:54
Luc:?
Auf notwendige Korrekturen hatte ich deshalb verwiesen.
(Und ich mir das nicht…! :->)
Luc :-?
AW: Du zeigst hier eine alte müffelnde Socke
21.10.2020 07:51:43
Sulprobil
voller Löcher, aber in Deinem Kleiderschrank hast Du noch eine saubere ohne Löcher?
Toll.
Diese alte 'Socke' reicht ja aus und ...
21.10.2020 16:12:09
Luc:?
…gibt eine Möglichkeit an, die jenseits von Split liegt und außerdem schon lange im Archiv liegt. In meinen AddIns ist die natürlich auf korrigiertem Stand, den man auch erreichen kann, wenn man den Hinweisen im Archiv folgt. Und ihre Qualität ist kaum schlechter als das, was hier täglich so gepostet wird. Außerdem ist das eine von 2 abgespeckten Varianten einer UDF, die auf Grund ihrer Einbindung in ein ganzes System nicht einzeln publiziert wdn kann und noch leistungsfähiger ist. Sie und ihre Abkömmlinge orientieren sich nicht nur mit ihrem Namen an einer Fkt der Software QlikView von QlikTec, die ich in Xl auch haben wollte und dann noch ausgebaut hatte.
Was hattest du denn vor ca 17-18 Jahren so geschrieben…‽ Ich hatte mich schon vor mehr als 40 Jahren mit Textbe-/-verarbeitung befasst — noch für Großrechner…
Luc :-?
Anzeige
Fehlt da nicht etwas, ...
22.10.2020 03:44:25
Luc:?
…Bernd?
Wie wär's mit 'ner zur Aufgabe passenden Fml dazu‽ → =INDEX(sbSplit(A1;"_";6);5)
Im übrigen ist deine UDF nur eine simple Umsetzung der vbFkt Split, die eigentl nur pgmmierer-tauglich ist und sonst nichts bietet. Da hilft auch nicht, dass du sie neu aufgelegt hast; ihre Basis ist 20 Jahre alt — also aus der Mottenkiste… :->
Morhn, Luc :-?
AW: Guck genauer hin
22.10.2020 05:47:54
Sulprobil
Nun ja, Zeile 7 angepasst, aber sonst trifft ...
22.10.2020 20:09:13
Luc:?
…mein Geschriebenes zu, Bernd!
Auf INDEX kann bei UDF Splint verzichtet wdn: =Splint(A6;"_";5;5)
Basiert auch auf vbFkt Split!
Luc :-?
Anzeige
AW: Ein weiteres Loch
24.10.2020 11:46:36
Sulprobil

ReDim y(0 To l) As String 'Original code: ReDim y(l) As String does not work with Option Base 1

Toll, Option Base 1! Wer das verwendet, ...
24.10.2020 16:53:40
Luc:?
…hat selber schuld! Das muss man ja extra angeben, was ich grdsätzlich nicht tue, weil damit rationale Modulo(Mod*, auch in Xl)-/Remainder(Rem*, in VB[A] Mod)-Index-Berechnungen unnötig erschwert wdn.
* Prolog (ISO 1995)
Luc :-?
AW: Guter Programmierstil ist nicht so schwer
24.10.2020 18:15:54
Sulprobil
Aber offenbar für Dich, Luc.
Programmier' doch einfach einmal ordentlich, definiere Array-Unter- und Obergrenzen, und verwende keine Variable namens l (klein L), weil sie zu einfach mit 1 (Eins) verwechselt wird.
Anzeige
Was nutzt der beste Programmierstil, ...
25.10.2020 04:06:17
Luc:?
…Bernd,
wenn der sich nur auf Klein-Klein bezieht‽ Sind interessante Ansätze und Ideen dann nicht allemal mehr wert? Was treibt dich also wirklich um…?
Nebenbei, ich hätte bei diesen älteren UDFs ganz andere KritikPunkte resp Schwachstellen gesehen als du…
Und VerständnisAutomatismen, die µS seiner Erfindung VB/VBA und deren Compilern und Interpretern spendiert hat, sorgen auch dafür, dass Adapter-Compiler/Interpreter anderer Software damit Probleme haben. Außerdem ist in diesem speziellen Fall nicht einsehbar, warum das bei Option Base 1 derart eingeschränkt ist. Bei der Grundeinstellung kann ich ja auch ReDim y(0) schreiben! Und ich habe noch wesentlich Komplizierteres, das mit dieser Base wohl erst gar nicht fktionieren würde. Also ist das für mich ohnehin inakzeptabel und ich kann dann auch diese Deklarationsform verwenden, zumal sie VBA anbietet, während von der so beliebten []-Schreibweise statt Evaluate in der Hilfe ausdrücklich abgeraten wird.
Und mit Arrays kenne ich mich auch gut aus, wie demnächst hier wieder zu sehen sein wird. Mal sehen, ob du dich dann auch wieder zu Wort melden wirst…
Luc :-?
Anzeige
AW: Toll, Option Base 1! Wer das verwendet, ...
24.10.2020 18:34:43
Daniel
naja, echte universelle UDFs berücksichtigen alle Optionen, die der Anwender machen kann.
Von dir habe ich so etwas noch nie gesehen, ...
25.10.2020 03:39:59
Luc:?
…Daniel!
Und wenn es um bestimmte, zuvor festzulegende Optionen geht, verwende ich bedingte Kompilierung!
Luc :-?
Und wir sehen hier einen typischen Luc
25.10.2020 05:44:38
Daniel
Als Antwort auf ein sachliches Argument gibt es einen Angriff auf der persönlichen Ebene und ein Ablenkungsmanöver.
Hattest du ein sachliches Argument gebracht, ...
25.10.2020 19:17:33
Luc:?
…Daniel,
oder dich bloß angehängt, weil du mal wieder eine Gelegenheit gewittert hast, mir was am Zeug zu flicken? Weiß ja nicht, ob dir das B.P. honorieren wird…
Und was sachliche Argumente betrifft, auf dieser Ebene kann man diskutieren, aber bei dir ist das meist sinnlos, weil es typisch für dich ist, bald auf andere Ebenen abzugleiten.
Jedenfalls muss ich immer lachen, wenn irgendein Job-Anbieter Team-Fähigkeit erwartet. Die Erfahrung lehrt aber, dass Konkurrenz das TriebElement ist, was Ergebnis einer Individualisierung aller Glieder der Gesellschaft ist und worauf im Westen Deutschlands schon seit mindestens einem halben Jahrhdt hingearbeitet wird. Jeder will u/o muss der Größte sein und möglichst viele Konkurrenten wegbeißen, was manche so verinnerlicht haben, dass sie das auch noch machen, wenn's gar nicht darauf ankommt. Einfach nur krank!
Und rein sachlich ist Option Base 1 für VBA das, was für Xl Datumswerte 1904 sind — ein kleiner Vorteil wird gewonnen und dafür etliche Nachteile in Kauf genommen.
Luc :-?

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige