Registriert seit: 27.03.2026
Version(en): 2021
27.03.2026, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2026, 12:45 von Aze99.)
Hallo Zusammen,
ich hab schon viel versucht aber ich komme nicht weiter.
Ich habe eine Excel aus einem Warenwirtschaftssystem in dem ein Text mit einer Zahl steht (davor und danach sind leerzeichen die ich nicht ändern darf).
z.B. " Kabel auf 120 cm kürzen "
Jetzt muss ich aber alle Kabel um 20 cm kürzen, also muss der Text auf 100 cm geändert werden.
=> " Kabel auf 100 cm kürzen "
Ich kann zwar über Umwege die Zahl auslesen, aber da die Texte zum Teil variieren und nicht geändert werden dürfen müssen fürs System alle Leerzeichen/Texte identisch bleiben, aber die Zahl geändert werden.
Hat jemand ne Idee, wie ich das in Excel darstellen kann?
Danke für jede Idee
Grüße Aze
Registriert seit: 22.09.2024
Version(en): 2010, 2021
Hallo Aze,
da du nur einen Beispieltext vorgegeben hast und der Rest sehr vage ist, gibt es auch nur eine mögliche Lösung:
Suche die erste Ziffer in dem Text und dann gehe bis zum nächsten Leerzeichen weiter. Den extrahierten Text kannst du dann in eine Zahl umwandeln und dann damit rechnen.
Knobbi38
Registriert seit: 27.03.2026
Version(en): 2021
Hallo Knobbi,
die Zahl konnte ich auswerten und mir ihr weiterrechnen.
Ich muss aber den Text (der kann auch variieren) beibehalten und nur mit der Zahl rechnen ohne dass sich der Text ändert...
Registriert seit: 12.07.2025
Version(en): 2021
(27.03.2026, 12:45)Aze99 schrieb: Ich habe eine Excel aus einem Warenwirtschaftssystem in dem ein Text mit einer Zahl steht
Ich kann zwar über Umwege die Zahl auslesen Das ist kein Umweg sondern die entscheidende Frage woran man erkennen könnte welche Zahl in dem Text geändert werden soll... "Das 3. Kabel muss von 120 cm auf 100cm gekürzt werden und das Ende sollte 1 bis 1,5 cm absolviert werden." Wenn Du 100% sicher bist das IMMER nur EINE Zahl vorkommt, dann extrahiere einfach die Zahl und ersetze diese durch was anderes. Andreas. Code: Option Explicit
Sub Test() Dim S As String Dim Value As Variant S = " Kabel auf 120 cm kürzen " Debug.Print S Value = JustNumbers(S) S = Replace(S, Value, Value - 20) Debug.Print S End Sub
Private Function JustNumbers(ByVal What As String) As String 'Return only numbers from What (by Rick Rothstein) Dim i As Long, j As Long, Digit As String For i = 1 To Len(What) Digit = Mid$(What, i, 1) If Digit Like "#" Then j = j + 1 Mid$(What, j, 1) = Digit End If Next JustNumbers = Left$(What, j) End Function
Registriert seit: 27.03.2026
Version(en): 2021
ja es ist immer nur eine Zahl die vorkommt.
Ist das dann MAKRO ? Wie kann ich das einrichten, dass es genau die Felder bearbeitet die ich will?
DANKE
Registriert seit: 22.09.2024
Version(en): 2010, 2021
Hallo Aze,
kannst du mal genau beschreiben, was du eigentlich erreichen möchtest, anstatt hier immer nur neue kleine Details preiszugeben? Keiner der Helfer möchte jedesmal neu anfangen. Im Grunde ist es doch nur ein Suchen und Ersetzen.
Knobbi38
Registriert seit: 12.07.2025
Version(en): 2021
(27.03.2026, 13:33)Aze99 schrieb: Wie kann ich das einrichten, dass es genau die Felder bearbeitet die ich will? Tja, das ist die Frage der Fragen... Ich sag Dir mal was Du gesagt hast: Ich habe eine Excel aus einen Warenwirtschaftssystem.Also vermutlich hast Du eine Exceldatei die irgendwie mit Daten befüllt wurde die aus irgendeinem anderen Programm stammen. Und nun möchtest Du die Felder bearbeiten... tja, es gibt in Excel keine Felder (es gibt schon welche in Pivottabellen aber das schließe ich mal aus), es gibt z.B. Zellen. Wie die Felder in Deinem Warenwirtschaftssystem zu bearbeiten sind... wie sollen wir das wissen? Zellen gibt es in Excel leider sehr viele, ein Universalmakro was pauschal alle Zellen nach Zahlen durchsucht... läuft unter Umständen sehr lange und ich vermute mal generell alle Zellen willst Du auch nicht. Mach eine Beispieldatei, sag uns wo die Texte sind die verändert werden sollen, dann können wir Dir bestimmt, was Excel betrifft, weiterhelfen. Bei allem anderen nicht. Andreas.
Registriert seit: 02.12.2017
Version(en): Microsoft365 Insider 64Bit
27.03.2026, 15:12
(Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2026, 15:19 von EA1950.)
Hallo, da du Excel2021 hast, müsste auch folgende Formel funktionieren: Code: =LET( txt; B17; lg; LÄNGE(txt); id; SEQUENZ(1; lg); AnfPos; MIN(WENN(ISTZAHL(1 * TEIL(txt; id; 1)); id)); zl; VERWEIS(9 ^ 99; 1 * TEIL(txt; AnfPos; id)); zlneu; zl - 20; WECHSELN(txt; zl; zlneu) )
Diese Formel setzt voraus, dass der Text " Kabel auf 120 cm kürzen " in Zelle B17 steht. Die nächsten Formelzeilen extrahieren aus diesem Text die Zahl 120 und speichern sie in Variable "zl". Die Variable "zlneu" bekommt dann den Wert 100 (wegen: zl-20) und dieser Wert ersetzt dann die 120 des Originaltextes. Der Resultattext der Formel lautet dann: " Kabel auf 100 cm kürzen " In Excel365 würde das einfacher mit folgender Formel funktionieren: Code: =LET( txt; B17; zl; REGEXEXTRAHIEREN(txt; "(\d+)"; 1); zlneu; zl - 20; REGEXERSETZEN(txt; "(\d+)"; zlneu) )
Gruß Anton.
Windows 11 64bit Microsoft365 Insider 64bit
Registriert seit: 15.04.2018
Version(en): 2013
Hi was genau muss wie geändert werden? ist es immer die selbe Zahl, die verändert werden muss, also immer 120 auf 100, oder gibt es auch andere Zahlen, die um den selben Betrag verändert werden sollen, also 80 auf 60, 90 auf 70 usw.
Wenn es immer nur die selbe Zahl ist und diese bekannt ist, dann sollte das ganze einfach mit der Menüfunktion ERSETZEN oder der Formelfunktion WECHSELN gehen, beispielsweise =WECHSELN(A1;" 120 ";" 100 ") durch das "mitnehmen" der Zeichen vor und nach der Zahl reduzierst du das Risiko, die Werte auch an unerwünschter Stelle zu verändern, z.B. innerhalb einer Artikelnummer.
Wenn es verschiedene Zahlen sind, aber alle Zahlen gekürzt werden sollen, könntest du so vorgehen:
1. zerlege den Text mit DATEN - DATENTOOLS - TEXT IN SPALTEN in einzelne Spalte. Jedes Wort und jede Zahl sollte jetzt in einer eigenen Zelle stehen.
2. schreibe in eine freie Zelle den Reduktionsbetrag 20 und kopiere diese Zelle
3. markiere alle Zellen, die deine zerteilten Texte belegen und schränke die Auswahl auf Zellen mit Zahl ein (Start - Bearbeiten Suchen und Auswählen - Inhalte - Konstanten - Zahlen
4. führe jetzt die Funktion INAHLTE EINFÜGEN über das Kontextmenü aus und gehe dabei auf das unterste Untermenü (Inhalte einfügen - Inhalte einfügen) und aktiviere dabei den Vorgang: Subtrahieren
jetzt sollten alle Zahlenwerte in der Liste um den Betrag 20 kleiner sein.
mit Hilfe der Funktion TEXTVERKETTEN kannst du die Texte dann wieder zu einem Wert zusammensetzen.
wenn es deine Excelversion hergibt, kannst du den beschriebenen Vorgang auch mit einer Formel ausführen lassen:
=LET(a;A7;b;TEXTTEILEN(a;" ");c;WENN(ISTZAHL(--b);b-20;b);TEXTVERKETTEN(" ";1;c))
Gruß Daniel
Registriert seit: 26.09.2022
Version(en): 2019
Moin,
da der TE auch extra drauf hinweist, dass die Anzahl der Leerzeichen wichtig ist, könnte ich mir vorstellen, dass der Text eine fixe Länge hat und auch berücksichtigt werden muss, dass mit Leerzeichen aufgefüllt wird, wenn eine Zahl durch Subtraktion zweistellig wird.
Aber auch das kann nur der TE beantworten.
Viele Grüße derHoepp
|