Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zahl in Text, Rechts neben einem Textteil austauschen

Forumthread: Zahl in Text, Rechts neben einem Textteil austauschen

Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 17:50:51
Steinwolf
Hallo,

Ich habe in Zellen einen Text und eine Nummerierung, die ich kopieren und mit der nächsten höheren Nummer ersetzt, nach unten einfügen will.
Der Text sieht so aus:
"Beschreibung irgendwas AUF 1 irgendwas", oder
"Beschreibung 15 irgendwas AUF 1", oder
"Beschreibung irgendwas AUF 254 irgendwas".
(AUF Steht für Auftrag 1, 2, 254,...)
Ich will die Zelle kopieren und unterhalb neu einfügen. Aussehen soll die Zelle dann so:
"Beschreibung irgendwas AUF 2 irgendwas", oder
"Beschreibung 15 irgendwas AUF 2", oder
"Beschreibung irgendwas AUF 255 irgendwas".

Auslesen in eine Variable habe ich schon, auch finde ich die Position der Zahl, indem ich nach "AUF" suche (Stelle = InStrRev(Variable, "AUF")). Dann würde ich mit "Mid" die nächsten Stellen auslesen und mit "If IsNumeric", langsam an die Zahlen herantasten und als neue Variable speichern. Könnte ja sonst sein, das ich schon Buchstaben oder andere Zeichen dabei habe, weil ja nicht gesagt ist, wieviele Stellen die Zahl hat. Diese würde ich dann mit "Replace" austauschen.
Nur das ist doch umständlich und ich bin mir sicher, dass das einfacher gehen muss.
Kann mir jemand den Befehl sagen? Bei "Replace" muss ich ja die genaue Zahl kennen und das auslesen bekomme ich nicht so einfach hin.

Mfg,
Steinwolf
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 18:08:11
velo
Hallo,

folgende ewig lange Formel (angenommen der Text mit dem Auftrag steht in A1 & es kommt auch sonst nie AUF (Groß-/Kleinschreibung wird beachtet) im Text vor):
=WECHSELN(A1;"AUF "&WERT(LINKS(TEIL(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1));FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))+1;LÄNGE(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))-FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1))));FINDEN(" ";TEIL(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1));FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))+1;LÄNGE(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))-FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))))-1))+1-1;"AUF "&WERT(LINKS(TEIL(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1));FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))+1;LÄNGE(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))-FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1))));FINDEN(" ";TEIL(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1));FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))+1;LÄNGE(TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))-FINDEN(" ";TEIL(A1;FINDEN("AUF";A1);LÄNGE(A1)-FINDEN("AUF";A1)))))-1))+1)


Vielleicht gibt es ja für Excel 365 eine bessere und vor allem schmalere Lösung, leider hinke ich mit meinem Excel 2016 noch etwas hinterher.

VG
velo
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 18:33:46
Steinwolf
Oh Mann, das ist ja eine Formel.
Ich habs getestet und es geht, aber nur, wenn die Zahl nicht ganz hinten steht - wie bei meinem zweiten Beispiel. Dann erhalte ich einen Wertfehler.
Danke trotzdem schonmal. Vielleicht kann ich mir damit eine Makro basteln.
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 19:27:35
BoskoBiati
Hi velo,

für 2016 reicht das:

=GLÄTTEN(WECHSELN(A1;LINKS(TEIL(A1;SUCHEN(" AUF ";A1)+5;99);SUCHEN(" ";TEIL(A1&" ";SUCHEN(" AUF ";A1)+5;99)));LINKS(TEIL(A1&" ";SUCHEN(" AUF ";A1)+5;99);SUCHEN(" ";TEIL(A1&" ";SUCHEN(" AUF ";A1)+5;99)))+1&" "))


Gruß

Edgar
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 20:10:37
velo
Hallo,

jo ist mir dann auch aufgefallen, dass die Formel unnötig kompliziert ist, war dann ehrlicherweise zu faul es "richtig" zu machen.

Danke für deinen Input!

VG
velo
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 18:10:41
{Boris}
Hi,

per Formel so:

=--TEXTVOR(TEXTNACH(A1&" ";"AUF ");" ")

Per VBA könnte man die Formeln evaluieren:

MsgBox Evaluate("--TEXTBEFORE(TEXTAFTER(A1&"" "",""AUF ""),"" "")")

Oder halt mit Instr/InstrRev und Konsorten.

VG, Boris
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 18:47:09
UweD
HAllo


bei deiner Version...

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1Beschreibung irgendwas AUF 1 irgendwasBeschreibung irgendwas 2 irgendwas
2Beschreibung 15 irgendwas AUF 1Beschreibung 15 irgendwas 2
3Beschreibung irgendwas AUF 254 irgendwas.Beschreibung irgendwas 255 irgendwas.

ZelleFormel
B1=LET(Tv;TEXTVOR(A1;"AUF ");Tn;TEXTNACH(A1& " ";"AUF ");Nr;TEXTVOR(Tn;" ");Tv&Nr+1&" "&TEXTNACH(Tn;" ") )




LG UweD
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 19:38:31
Oppawinni
Wenn deine Beispiele hinreichend sind, sollte das
=WERT(LINKS(RECHTS(A1;LÄNGE(A1)-FINDEN("AUF";A1)-3)&" ";FINDEN(" ";RECHTS(A1;LÄNGE(A1)-FINDEN("AUF";A1)-3)&" ")))
genügen.
Insbesondere wenn nach der Zahl ein Leerzeichen folgt, bzw. der String endet.
(Die Formel wertet die Zelle A1 aus)
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 20:11:11
Piet
Hallo Steinwolf

ich mache es in VBA üblicherwiese wie unten. Es könnte noch andere bessere Lösungen geben.

mfg Piet

Sub test()

Txt = ActiveCell & " " 'ggf. Space anhängen
Txt = Trim(Mid(Txt, InStrRev(Txt, "AUF") + 3))
Zahl = Trim(Left(Txt, InStr(Txt, " ")))
MsgBox Zahl
End Sub
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 22:48:03
GerdL
Moin,

die Möglichkeiten sind gewaltig. :-)
Public Function Zahl_AUF(Zelle As Range)

Zahl_AUF = Val(Split(Zelle.Text, "AUF ")(1))
End Function


Gruß Gerd
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 19:17:54
Steinwolf
Danke schön. Habs erledigt. Habe herausgefunden, dass ich "Textbefore und Textafter" nicht direkt als Makro anwenden kann aber verwende die InStr um danach bis zum nächsten Leerzeichen auszulesen. Damit hab ich nur die Zahlen.
Anzeige
AW: Zahl in Text, Rechts neben einem Textteil austauschen
17.04.2025 18:37:32
Steinwolf
"--TEXTBEFORE(TEXTAFTER(..." kannte ich nicht. Danke schön. Ich glaube damit bekomme ich es hin. Und die ist auch viel schlanker als die Formel von Velo 😅

Forumthreads zu verwandten Themen

Anzeige
Anzeige