Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Teil aus einem String lösen

Betrifft: Teil aus einem String lösen von: Sibylle Weber
Geschrieben am: 10.09.2014 17:20:13

Guten Tag,

Inhalte in verschiedenen Zellen besitzen mehrere Bindestriche.
Wie kann man den Teilstring zwischen dem 3. und 4. Bindestrich herauslösen?
Für Hilfen besten Dank im Voraus.
Gruß
Sibylle

  

Betrifft: AW: Teil aus einem String lösen von: Daniel
Geschrieben am: 10.09.2014 17:26:53

Hi
per Formel oder per VBA?
stehen die Werte in der selben Spalte oder sind sie über den Bildschirm verteilt?
soll das Ergebnis den Ausgangswert überschreiben oder soll das Ergebnis in einer anderen Zelle stehen oder willst du mit dem Ergebnis ganz was anderes machen?

Gruß Daniel


  

Betrifft: AW: Teil aus einem String lösen von: Sibylle Weber
Geschrieben am: 10.09.2014 17:47:19

Hallo Daniel,

die Aufgabe soll möglichst mit einer Formel gelöst werden.
Die Daten stehen in einer Spalte und das Ergebnis soll in einer Hilfsspalte erscheinen.
Ich freue mich auf eine Lösung.

Gruß
Sibylle


  

Betrifft: AW: Teil aus einem String lösen von: Hajo_Zi
Geschrieben am: 10.09.2014 17:54:07

Hallo Sibylle,

ich bin nicht der Formelmensch.

Tabelle7

 DE
608-8-9-12-5612
61tete-zizi-jljj-123-fkhfkh123

verwendete Formeln
Zelle Formel Bereich N/A
E60:E61=TEIL(D60;SUCHEN("-";D60;SUCHEN("-";D60;SUCHEN("-";D60;1)+1)+1)+1;SUCHEN("-";D60;SUCHEN("-";D60;SUCHEN("-";D60;SUCHEN("-";D60;1)+1)+1)+1)-SUCHEN("-";D60;SUCHEN("-";D60;SUCHEN("-";D60;1)+1)+1)-1)  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.14 einschl. 64 Bit



GrußformelHomepage


  

Betrifft: Unglaublich! von: Frank
Geschrieben am: 10.09.2014 18:07:17

Hallo Hajo,

ich hätte nicht gedacht, dass es möglich ist, die Aufgabenstellung wörtlich zu nehmen (die Aufgabe soll möglichst mit einer Formel gelöst werden) und eine Lösung zu finden. Ich habe dafür fünf Zellen gebraucht - vier für die Positionen der Bindestriche, eine für die TEIL-Funktion.

Bewundernde Grüsse,
Frank


  

Betrifft: AW: Unglaublich! von: Daniel
Geschrieben am: 10.09.2014 18:29:24

Hi
wenn du die Formeln aus jeder der 5 Zellen kopierst und sie in die anderen Zellen anstelle des Zellbezuges auf diese Zelle einfügst, so dass am Schluss nur ein Zellbezug auf die erste Zelle übrig bleibt, dann ist es nicht allzuschwer, alles in eine Formel zu packen.
es erfordert nur etwas konzentration (oder die Zuhilfenahme der Menüfunktion ERSETZEN)
mach ich öfters, wenn ich ein komplexes Problem zu lösen habe, aber in der Zieltabelle nur eine Formel verwendet werden soll.
Mit Hilfsspalten ist das Problem oft leichter zu lösen, der Rest ist dann eine Fleissaufgabe.

Gruß Daniel


  

Betrifft: AW: Teil aus einem String lösen von: Daniel
Geschrieben am: 10.09.2014 18:24:30

Hi
ohne Formel gehts einfach über DATEN - DATENTOOLS - TEXT IN SPALTEN mit folgenden Einstellungen:
Schritt 1:
- getrennt
Schritt 2:
- Strich als Trennzeichen
Schritt 3:
- als Zielbereich die Nachbarspalte auswählen
- alle Spalten ausser Spalte 4 anklicken und "nicht importieren" als Datenformat auswählen

als Formellösung würde ich folgendes verwenden:

=TEIL(A1;FINDEN("|";WECHSELN(A1;"-";"|";3))+1;FINDEN("|";WECHSELN(A1;"-";"|";4))-FINDEN("|"; WECHSELN(A1;"-";"|";3))-1) 

hier nutzt man aus, dass es mit WECHSELN nicht nur möglich ist alle "-" durch ein anderes Zeichen zu ersetzten, sondern auch gezielt nur ein bestimmtes (das 3. oder 4.)
Damit bringt man ein einmaliges Trennzeichen an die richtige Stelle im String, damit FINDEN dann die Postion von diesem ausgeben kann.

Gruß Daniel


  

Betrifft: AW: Teil aus einem String lösen von: Adis
Geschrieben am: 10.09.2014 18:26:00

Hallo

ich habe mal nur zur Demo den Anfragetext mit Bindestrich versehen und zerlegt.
Ergebnis ist: "Zellen, den, Dank". Makro in normales Modul laden und ausprobieren.

In Const stehen der Text Bereich wo der Text steht, bei mir Tabelle1, Range "C1:C3"
Und die ZielSpalte (Hilfsspalte) wo das Ergebnis gelistet werden soll. Bei mir Spalte "A"

Hier der Probetext den ich benutzt habe.
Inhalte - in - verschiedenen - Zellen - besitzen - mehrere - Bindestriche.
Wie - kann - man - den - Teilstring - zwischen - dem - 3. - und - 4. - Bindestrich - herauslösen?
Für - Hilfen - besten - Dank - im - Voraus.


Const TxtBereich = "C1:C3" 'Hier nach dem Tesxt ihren Daten Bereich angeben
Const ZielSpalte = "A" 'Jede beliebige Spalte als Zielspalte waehlbar

Sub String_mitBindestrich_zerlegen()
 Sheets("Tabelle1").Select
   For Each Txt In Range(TxtBereich)
      Label = Txt.Value   'Zell Variable laden + zerlegen
      Label = Trim(Right(Label, Len(Label) - InStr(Label, "-")))
      Label = Trim(Right(Label, Len(Label) - InStr(Label, "-")))
      Label = Trim(Right(Label, Len(Label) - InStr(Label, "-")))
      Label = Trim(Left(Label, InStr(Label, "-") - 1))
        'Ergebnis in Zielspalte laden
        Cells(i.Row, ZielSpalte) = Label
   Next Txt
End Sub
Gruss Adis


  

Betrifft: AW: Teil aus einem String lösen von: Daniel
Geschrieben am: 10.09.2014 18:32:27

Hi
warum so kompliziert?
in VBA einfach über die SPLIT-Funktion:

Label = Split(Txt.value, "-")(3)

Gruß Daniel


  

Betrifft: AW: Teil aus einem String lösen von: Adis
Geschrieben am: 10.09.2014 22:48:23

Hallo Daniel

danke für den Beitrag. An die Split Funktion habe ich aus alter Gewohnheit nicht gedacht.
Dabei ist mir noch ein Fehler aufgefallen. In der kürzeren Version habe ich ihn korrigiert.

For Each Txt In Range(Bereich)
Label = Split(Txt.Value, "-")(3)
Cells(Txt.Row, ZielSpalte) = Trim(Label)
Next Txt

Gruss Adis


  

Betrifft: Besten Dank für alle Lösungen von: Sibylle Weber
Geschrieben am: 10.09.2014 18:43:41

An alle Lösungsgeber,

herzlichen Dank für alle Lösungen, die ich erhalten durfte.
Ich freue mich, dass damit das Problem gelöst werden kann.
EInen schönen Abend.
Gruß
Sibylle


  

Betrifft: AW: Teil aus einem String lösen von: Rudi Maintaire
Geschrieben am: 11.09.2014 11:20:53

Hallo,
zur Vervollständigung per XL4-Makrofunktion in einem Namen:

AB
5xxx-yyy-zzz-123-qqq123

NameBezug
x=AUSWERTEN("{""" & WECHSELN(INDIREKT("ZS(-1)";0);"-";""";""") & """}")

ZelleFormel
B5=INDEX(x;4)


Gruß
Rudi


  

Betrifft: AW: Teil aus einem String lösen von: Luschi
Geschrieben am: 11.09.2014 18:09:14

Hallo Rudi,

wieder mal ein schlägkräftiger Beweis, wofür die "alten" Excel4Makro-Funktionen noch alles gut sind.
Leider war M$ schon damals sehr geizig mit Informationen und anwendungsbereiten Beispielen zum Befehl Auswerten/Evaluate. Mich hatte nur die Ersetzung von '-' zu ';' stutzig gemacht, da ich immer davon ausgegangen war, daß da ein '.' hin muß. Aber es klappt in beiden Fällen.
Wie würde wohl Hajos Formel aussehen, wenn das Ergebnis zwischen dem 23. u. 24. Trennstrich stehen würde?

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: xl4Makro-Funktionen haben auch ... von: Daniel
Geschrieben am: 11.09.2014 18:49:40

... kleine Nachteile.
bspw die Festlegung auf einen bestimmten Zellbezug.
Wenn ich jetzt in Spalte B den Text nach dem 3. "-" und in Spalte C nach dem 5. "-" anzeigen lassen will, dann brauch ich ja nen zweiten Namen.
Ausserdem kann bei Analyse oder Fehlersuche in komplexen Formelen die eigentliche Datenquelle nicht direkt aus der Formel erkennen.
Über das Thema Indirekt und Performance brauche ich hoffentlich nichts zu sagen.

Gruß Daniel


  

Betrifft: Ja, Luschi, "." steht im dt Xl f.den Spalten-, ... von: Luc:-?
Geschrieben am: 11.09.2014 19:18:24

…";" den ZeilenSeparator in einer MxKonst.
Übrigens arbeite ich häufig mit MxKonstt in TextForm, die dann natürlich evaluiert wdn müssen, was mit AUSWERTEN bzw einer vbFkt Evaluate basierten UDF geschehen kann, wobei Letztere idR US-Notation erfordert (Ausnahme: UDFs wie Explore, die .Formula der FmlStandortZelle auslesen und den relevanten Teil isolieren).
Eine in einem AddIn notierte UDF hat dabei den Vorteil, dass die anwendende Datei als .xlsx gespeichert wdn kann, was bei XLM-FktsAnwendung nicht der Fall ist. Eine solche (nicht-volatile) UDF könnte auch mit Adress-Platzhaltern arbeiten, wenn das im Pgm berücksichtigt wird, womit dann auch Daniels VolatilitätsArgument endgültig hinfällig wäre (hier eigentlich auch, wenn man sich direkt auf die Zelle bezieht, denn INDIREKT ist auch nur nötig, wenn man bestimmte AdressBereiche bilden will, was hier ja nicht erforderlich ist).
Wenn MS solche Fktt zV stellen würde, wären die XLM-Fktt weitgehend überflüssig.
Allerdings könnte hier auch mit einer vbFkt Split basierten UDF wie Splitt, Splint, Sprite bzw SplitVx gearbeitet wdn, wobei bei Splint sogar auf INDEX verzichtet wdn könnte: =Splint(A1;"-";4;4)
Gruß, Luc :-?

Besser informiert mit … (→ Unbedingt Video „Dirty Wars“ unter Folgelink im Gesamttext 1.BT vom 10.9.14 ansehen!)


  

Betrifft: AW: wie sieht es denn mit Udfs in AddIns aus von: Daniel
Geschrieben am: 11.09.2014 21:43:50

wenn ich diese Dateien an Personen weitergeben will, die dieses AddIn nicht haben?
Funktionieren die UDFs dann auch problemlos?

Gruß Daniel


  

Betrifft: In der Einführung meiner AddIn-Hilfe steht ... von: Luc:-?
Geschrieben am: 12.09.2014 01:55:22

…deshalb ja auch, dass Dateien, in denen diese Fktt angewendet wurden, zwingend als Daten ohne Fmln weitergegeben wdn müssen (was man ohnehin tun sollte und viele Firmen auch verlangen).
Deine (wadenbeißerischen) Schlaumeiereien kannst du dir übrigens gern verkneifen, sonst läuft das noch auf die scholastisch-theologische Diskussion über die „Anzahl der Engel, die auf einer Nadelspitze platz finden“ hinaus, Daniel…! :->
Luc :-?


  

Betrifft: AW: wo steht denn deine AddIn-Hilfe? von: Daniel
Geschrieben am: 12.09.2014 09:14:59




  

Betrifft: In einer .chm-Datei! Wie man so etwas erzeugt ... von: Luc:-?
Geschrieben am: 12.09.2014 14:31:43

…zeigt HWH im Prinzip unter dem Forums-Kopf-Button XL2CHM, Daniel;
habe ich aber komplexer gelöst.
Gruß, Luc :-?
PS@robert: Du hast einen Ausschnitt, aber ggf ohne die Einführung.


  

Betrifft: AW: Luc ich wollte von dir die Infos zu AddIns von: Daniel
Geschrieben am: 12.09.2014 14:43:01

Nicht zu chm-Dateien.

Danke, Danie


  

Betrifft: Und warum soll ich die ausgerechnet dir ... von: Luc:-?
Geschrieben am: 12.09.2014 16:15:23

…zV stellen, Daniel?
Die sind Bestandteil eines entsprd Tools. Außerdem ist ja das Wesentliche schon gesagt. Und wie man ein AddIn erzeugt bzw einbindet wirst du ja wohl auch selber wissen.
Luc :-?


  

Betrifft: AW: weil du von mir implizit erwartest... von: Daniel
Geschrieben am: 12.09.2014 16:43:16

...das ich deine Hilfe kenne und weiss, was du darnin geschrieben hast.

und falls du annimmst, ich würde micht mit Addins auskennen, dann irrst du, damit kenne ich mich überhaupt nicht aus.
Deswegen hatte ich ja auch gehofft, dass dein Dokument meine Wissenslücke diesbezüglich etwas schließen würde.

Gruß Daniel


  

Betrifft: Soso, im Dok steht aber nicht wie man ein AddIn... von: Luc:-?
Geschrieben am: 12.09.2014 19:14:57

…erzeugt und einbindet, Daniel,
das wurde schon verschiedentlich im Forum behandelt und ist per ArchivRecherche zu finden, sondern nur diverse allgemeine Hinweise zu bestimmten Xl/VBA-BegriffsKategorien und spezielle zum Tool bzw seiner Nutzung.
Selbstverständlich unterstelle ich dir nichts implizit außer diversen allgemeinen Xl/VBA-Kenntnissen, habe aber so einen gewissen (und begründeten) Verdacht, was die Motivation deines Fragen-Marathons betrifft… :->
Luc :-?


  

Betrifft: AW: Wenn du explizit auf... von: Daniel
Geschrieben am: 12.09.2014 19:42:21

... deine Hilfe verweist, dann ist es doch verständlich, wenn ich auch deine Hilfe lesen möchte und nicht irgendwas, was ich mir selbst zusammesuche.
Gruß Daniel


  

Betrifft: Langsam wird mir das zu dumm, ... von: Luc:-?
Geschrieben am: 12.09.2014 20:09:41

…Daniel,
denn du brauchst doch nur deine meiner expliziten Bemerkung vorausgehenden Bemerkungen und Fragen zu rekapitulieren, um zu wissen, weshalb ich das geschrieben habe. Dein Ansinnen hingegen läuft auf besser­wisserische Schul­meisterei hinaus, auf die ich mich, wie es wohl jeder Andere auch tun würde, mit Recht nicht einlasse.
Meine Intelligenz reicht durchaus dafür aus, zwischen d(ein)en Zeilen lesen zu können… :->>
Luc :-?


  

Betrifft: AW: Das Paradebeispiel für besserwisserische von: Daniel
Geschrieben am: 12.09.2014 20:23:17

Schulmeisterei ist für mich der Satz:
"Betrifft: In der Einführung meiner AddIn-Hilfe steht ..."
Gruß Daniel


  

Betrifft: Geradezu lächerlich! Bye-bye, Troll! owT von: Luc:-?
Geschrieben am: 12.09.2014 23:59:12

:-?


 

Beiträge aus den Excel-Beispielen zum Thema "Teil aus einem String lösen"