Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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 ausgeben bis zum letzten Strich

Text ausgeben bis zum letzten Strich
20.11.2023 13:57:50
der_toby
Hallo liebes Forum,

ich habe folgende Herausforderung:

Ich habe in Spalte B verschiedene Texte die alle Striche haben, ich würde jetzt gerne den Wert bis zum letzten Strich ausgeben.
Dazu habe ich auch schon ein bisschen gebastelt und mir folgende Formel dazu überlegt:
=VERWEIS(9^99;1*RECHTS(A1;ZEILE(A$1:INDEX(A:A;LÄNGE(A1)))))


Die spuckt aber eine Fehlermeldung aus, habt Ihr eine bessere Idee?

Danke und Gruß
Toby

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:02:33
der_toby
=LINKS(B6;LÄNGE(B6)-VERWEIS("-";FINDEN("-";B6;ZEILE(B:B))))

Diesen meinte ich sorry copy und paste Fehler. Kann man den ersten Beitrag irgendwie editieren?
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:12:35
Uduuh
Hallo,
z.B.
=LINKS(WECHSELN(A1;"-";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";"")));FINDEN("#";WECHSELN(A1;"-";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";""))))-1)

Profi?

Gruß aus'm Pott
Udo
AW: Text ausgeben bis zum letzten Strich
20.11.2023 15:51:07
daniel
Hi
noch zwei Varianten:
a) wenn die Textlängen überschaubar und kurz sind, kann man mit festen längen arbeiten, das Z100 muss halt länger sein, als der längste mögliche Text in Spalte B:
=LINKS(B1;AGGREGAT(14;6;ZEILE($Z$1:$Z$100)-1/(TEIL(B1&"-";ZEILE($Z$1:$Z$100);1)="-");1))

b) wenn man sich an die Textlänge anpassen möchte (würde ich aber nur bei langen Texten empfehlen)
=LINKS(B1;AGGREGAT(14;6;ZEILE($Z$1:INDEX($Z:$Z;LÄNGE(B1)+1))-1/(TEIL(B1&"-";ZEILE($Z$1:INDEX($Z:$Z;LÄNGE(B1)+1));1)="-");1))


beide Formeln sind so ausgelegt, dass sie den ganzen Text ausgeben, wenn im Text selbst kein Strich "-" vorhanden ist.

auch lässt sich hier relativ einfach über den letzten Parameter des Aggregats regeln, ob man den Text bis zum letzten Strich haben will, oder bis zum vorletzten, oder bis zum drittletzten.
wenn man die Striche nicht von hinten sondern von vorne zählen will, tauscht man einfach im ersten Parameter des Aggregats die 14 (größter) durch 15 (kleinster) Wert aus.

Gruß Daniel
Anzeige
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:21:46
RPP63
Was bin ich froh, dass es in Excel mittlerweile eine Entsprechung zu InStrRev() gibt ;-):
 AB
1jdhf-go-fksjd-i-cldjdhf-go-fksjd-i
2 jdhf-go-fksjd-i

ZelleFormel
B1=TEXTVOR(A1;"-";-1)
B2=LINKS(WECHSELN(A1;"-";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";"")));FINDEN("#";WECHSELN(A1;"-";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";""))))-1)
Anzeige
AW: zur TEXTVOR()-Formel festgestellt ...
20.11.2023 14:44:07
neopa C
Hallo Ralf,

... diese Formel ergibt in meiner alten XL-Version mit dem CSE-Tool von Flotter Feger als Ergebnis leider lediglich "i" :-(

Gruß Werner
.. , - ...
AW: zur TEXTVOR()-Formel festgestellt ...
20.11.2023 14:52:17
RPP63
Schwer zu beurteilen, Werner.
Ich habe zwar eine Ahnung, warum das so ist …
Ist der Quellcode des Add-Ins zugänglich oder geschützt?
AW: ja, ist offen ...
20.11.2023 15:29:34
neopa C
Hallo Ralf,

... allerdings funktion der Code bei mir nicht als Add-Ins sondern nur innerhalb einer XLSX-Datei (liegt wohl daran, dass meine XL-Versionen Home-Versionen sind)

Hier der Code:


Public Function TEXTVOR(ByVal Text As Variant, _
ByVal Trenner As String, _
Optional ByVal Element As Variant = 1, _
Optional ByVal match_mode As Boolean = 0, _
Optional ByVal match_end As Boolean = 0, _
Optional ByVal if_not_found) As Variant
Dim zStr As String
Dim erg As Variant
Dim i As Long

On Error GoTo Fehler

If TypeName(Text) = "Range" Then
If Text.Cells.Count > 1 Then TEXTVOR = CVErr(xlErrValue): Exit Function
zStr = Text.Text
Else
zStr = Text
End If

If InStr(1, zStr, Trenner) = 0 And Not match_end Then
TEXTVOR = CVErr(xlErrNA): Exit Function
ElseIf InStr(1, zStr, Trenner) = 0 And match_end Then
TEXTVOR = zStr: Exit Function
End If

If Not match_mode Then
erg = Split(mid(zStr, 1, WorksheetFunction.Find(Trenner, zStr, 1)), Trenner, , vbBinaryCompare)
i = GetDim(erg): If (i > -1 And i > 1) Then Err.Raise 1
End If

If Not IsMissing(Element) Then
If Trenner = "" And Element = 1 Then TEXTVOR = "": Exit Function
If Trenner = "" And Element 0 Then TEXTVOR = zStr: Exit Function
If match_mode Then
erg = Split(zStr, Trenner, , vbTextCompare)
Else
erg = Split(zStr, Trenner, , vbBinaryCompare)
End If
If Element 0 Then Element = UBound(erg) + Element + 1
Element = Element - 1
erg = erg(Element)
Else
With WorksheetFunction
If match_mode Then
erg = .Search(Trenner, zStr, 1)
Else
erg = .Find(Trenner, zStr, 1)
End If
erg = mid(zStr, 1, erg)
End With
End If

TEXTVOR = erg
Exit Function
Fehler:
If Not IsMissing(if_not_found) Then TEXTVOR = if_not_found Else TEXTVOR = CVErr(xlErrNA)
End Function


Gruß Werner
.. , - ...
Anzeige
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:52:17
der_toby
Moin RPP63,

unfassbar!

Gruß
Toby
AW: mit VERWEIS() kürzer ...
20.11.2023 14:23:58
neopa C
Hallo Udo,

... wenn Text in A1 steht so: =LINKS(A1;VERWEIS(9;1/(TEIL(A1;ZEILE(A1:INDEX(A:A;LÄNGE(A1)));1)="-");ZEILE(A:A))-1)

Die Frage bleibt, ob der TE das wirklich sucht.

Gruß Werner
.. , - ...
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:27:50
der_toby
Moin Udo,

das ging schnell und hat mir sehr geholfen, vielen Dank!

Ich will mal Profi werden ;-)

Gruß
Toby
AW: ohne (D)eine Beispieldatei nicht nachvollziehbar owT
20.11.2023 14:07:02
neopa C
Gruß Werner
.. , - ...
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:07:54
RPP63
Moin!
Eine kleine Beispieldatei mit Wunschergebnis könnte beim Helfen helfen.
(stimmt die Uralt-Excel-Version?)

Gruß Ralf
Anzeige
AW: Text ausgeben bis zum letzten Strich
20.11.2023 14:21:43
der_toby
Moin,

habe ich gerade hochgeladen.
Ich hoffe das hilft Euch!

Gruß
Toby
AW: den Link müsstest Du schon noch hier angeben owT
20.11.2023 14:25:16
neopa C
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige