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

Erstes Numerisches Zeichen in Zeichenkette

Forumthread: Erstes Numerisches Zeichen in Zeichenkette

Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 17:46:18
Jambo
Hallo,
ich versuche das erste Numerische Zeichen in einer Zeichenkette (String) zu finden. Ich möchte wissen an welcher Stelle die erste Zahl steht.
Vielen Dank im voraus .................
J. Jambo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 18:14:17
Willie
Hallo Jamo
Hier habe ich dir eine Mappe hochgeladen! Wenn du den Button drückst kommt
eine Eingabebox hier kannst du z.B. eingeben H2O dann wir das Ergebnis sein
das 2. Zeichen ist numerisch!
https://www.herber.de/bbs/user/28288.xls
Gruß
Willie
Rückmeldung wäre nett auch im Sinne des Forums
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 18:17:04
Peter
Hallo Jambo,
mit dem nachfolgenden Makro werden deine Wünsche wahr.


Sub Zahl_finden()
Dim iZeichen  As Integer
Dim sText     As String
   sText = "die Hausnummer ist die 22"
   
   For iZeichen = 1 To Len(sText)
      If IsNumeric(Mid(sText, iZeichen, 1)) Then
         MsgBox "die erste Zahl ist die " & Mid(sText, iZeichen, 1) & Chr(10) & _
                "sie ist an Position " & iZeichen & " im Text.", _
            64, "   Zahl finden."
         Exit For
      End If
   Next iZeichen
End Sub


Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 18:37:47
Peter
Hallo Jambo,
du kannst die Spalte A beliebig erweitern, sprich weitere Einträge hinzufügen.
https://www.herber.de/bbs/user/28290.xls
klick einfach den Button in Tabelle1 an.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 20:03:29
Jambo
Hallo,
vielen Dank für die Beiträge, das funktioniert schon alles sehr gut.
Ich möchte das erste Numerische Zeichen (dessen Position) einer Stringvariabel
bekommen, wenn die Position bekannt ist möchte ich wissen ob die Zahl 1,2 oder dreistellig ist.
Beispiel ( Y 123 C 10.11.05 20:10:12 Jede Menge Text........)
Beispiel ( Y 3 R 10.11.05 20:15:12 Jede Menge Text........)
Beispiel ( Y 23 C 10.11.05 20:17:12 Jede Menge Text........)
Hier sieht man das sich der Inhalt, je nachdem wieviel Stellen die erste Zahl hat verschiebt und das macht es sehr schwer den String in seine Bestandteile zu zerlegen.
Ich benötige die erste Zahl den darauf folgenden Buchstaben das Datum und die Uhrzeit.
Ich hoffe ich habe mich verständlich Ausgedrückt und hoffe auf euere Beiträge.
Im voraus schon einmal viele Dank für die Hilfe.
J. Jambo
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 22:17:42
Peter
Hallo Jambo,
schau mal, ob du mit der beigefügten Mappe zurechtkommst.
https://www.herber.de/bbs/user/28294.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Erstes Numerisches Zeichen in Zeichenkette
10.11.2005 23:06:30
Jambo
Hallo,
vielen Dank für die Mühen, aber das funktioniert noch nicht richtig.
Die Zwischenräume sind nicht immer gleich groß, d.h. die Anzahl der Leerzeichen variiert. Das Beispiel etwas weiter vorn war auch so unförmig formatiert ist aber
scheinbar Zurechterückt worden.
Ich hoffe weiter auf euere Hilfe und verbleibe freudig wartend...........
J. Jambo
Anzeige
AW: Erstes Numerisches Zeichen in Zeichenkette
11.11.2005 08:37:41
Peter
Hallo Jambo,
schau mal, ob dies die Lösung deies Problems sein könnte.
https://www.herber.de/bbs/user/28299.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Korrektur
11.11.2005 09:03:05
Peter
Hallo Jambo,
eine kleine aber bedeutsame Korrektur
https://www.herber.de/bbs/user/28301.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Korrektur
11.11.2005 19:04:07
Jambo
Hallo,
einfach super was du da gezaubert hast, es funktioniert.
Jetzt muss ich das nur noch in mein Projekt einbinden und anpassen, wenn dann alles
funktioniert melde ich mich wieder.
Im Moment arbeite ich mit der Version von Aton und passe diese gerade an, das sieht schon alles sehr gut aus.
MfG
J. Jambo
Anzeige
Alternativ als Formel
ransi
Hallo Jambo
 
 AB
1abc12av4
Formeln der Tabelle
B1 : {=MIN(WENN(ISTZAHL(FINDEN(ZEILE(A1:A10)-1;A1));FINDEN(ZEILE(A1:A10)-1;A1)))}
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Die Formel mit strg+shift+enter abschliessen dann werden die {} automatisch erzeugt.
ransi
Anzeige
AW: Alternativ als Formel
10.11.2005 18:55:54
Her4mannZ
Hallo Jambo;
oder?
Beispiel;
Sonstiges
 ABCD
314    
315ABC 6675<< Position erste Ziffer von Links 
316568 AB4<< Position erste Ziffer von Rechts 
317ABC 667 GHK5<< Position erste Ziffer von Links 
318ABC 167 GH4<< Position erste Ziffer von Rechts 
319  Leerzeichen werden mitgezählt 
320    
321ABC 6676<< erste Zahl von Links 
322568 AB8<< erste zahl von rechts 
323ABC 567 GHK5<< erste Zahl von links 
324ABC 169 GH9<< erste Zahl von rechts 
325    
Formeln der Tabelle
B315 : {=FINDEN(LINKS(RECHTS(A315;SUMME(N(ISTZAHL(RECHTS(A315;SPALTE(1:1))*1)))-1);1);A315)}
B316 : {=FINDEN(LINKS(RECHTS(A316;SUMME(N(ISTZAHL(LINKS(A316;SPALTE(2:2))*1)))-1);1);A316)}
B317 : {=LÄNGE(A317)-LÄNGE(RECHTS(A317;MAX(ISTZAHL(TEIL(A317;SPALTE(2:2);1)*1)*SPALTE(2:2))))+1}
B318 : {=LÄNGE(A318)-LÄNGE(LINKS(A318;MAX(ISTZAHL(TEIL(A318;SPALTE(2:2);1)*1)*SPALTE(2:2))))+1}
B321 : {=LINKS(RECHTS(A321;SUMME(N(ISTZAHL(RECHTS(A321;SPALTE(7:7))*1)))-1);1)}
B322 : {=LINKS(RECHTS(A316;SUMME(N(ISTZAHL(LINKS(A316;SPALTE(2:2))*1))));1)}
B323 : {=LINKS(RECHTS(A323;MAX(ISTZAHL(TEIL(A323;SPALTE(2:2);1)*1)*SPALTE(2:2)));1)}
B324 : {=RECHTS(LINKS(A324;MAX(ISTZAHL(TEIL(A324;SPALTE(2:2);1)*1)*SPALTE(2:2)));1)}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß Hermann
Anzeige
AW: Text, Datum+Zeit Text trennen
10.11.2005 21:21:11
Jambo
Hallo Anton,
und natürlich alle anderen User.
Das ist der Knaller, ich denke das ist es schon fast.
Wenn man den Teil mir der Ziffernfolge am Anfang und den darauffolgenden
Buchstaben noch sepparieren könnte, wäre ich am Ziel.
Bitte um weitere Hilfe und verbleibe wartend
J. Jambo
Anzeige
AW: Text, Datum+Zeit Text trennen
10.11.2005 23:26:44
Jambo
Hallo Aton,
uns natürlich alle anderen User.
Vielen Dank für deine Tabelle, das funktioniert soweit großartig, leider bekomme ich Probleme wenn die Zwischenräume (Leerzeichen zwischen den Buchstaben, Zahlen usw.) unterschiedlich sind.
Ich hoffe Ihr habt dafür auch noch eine Lösung.
Ich Bedanke mich im vorraus und verbleibe wartend ............................
J. Jambo
Anzeige
AW: Text, Datum+Zeit Text trennen
10.11.2005 23:33:48
Aton
Hallo
Mehrere Leerstellen durch suchen ersetzen berichtigen
2 suchen 1 ersetzen, wiederhollen bis keine 2 mehr gefunden werden.
Oder mehr Beispielzeilen, kann nur das was ich seh bearbeiten.
Gruß Aton
AW: Text, Datum+Zeit Text trennen
10.11.2005 23:44:01
Jambo
Hallo Aton,
das ist auch wunderbar was du da gezaubert hast.
Die Beispiele die vorhin eingestellt habe waren Ursprünglich auch mit unterschiedlich vielen Leerzeichen versehen aber der Editor vom Forum hat das irgendwie geändert.
Was aber noch viel schlimmer ist ich habe es nicht gleich bemerkt, sorry.
Beispiel:
Y 178 C 17.12.04 09:43:00 TextTextText
Also ich kann machen was ich will der Editor schrumpft die Zeile zusammen.
Wie auch immer die Zwischenräume sind größer und nicht immer gleich.
Vielen Dank und nicht sauer sein ich konnte ncht dafür............
J. Jambo
Anzeige
AW: Text, Datum+Zeit Text trennen
10.11.2005 23:53:48
Aton
Hallo
Sollte es noch immer nicht gehn, lade ein paar zeilen hoch.
Aber zuvor die doppelte leerzeichen ersetzen.
Gruß Aton
AW: Text, Datum+Zeit Text trennen
11.11.2005 00:18:45
Jambo
Hallo,
ich habe mal ein Beispiel in eine Datei gepackt:
https://www.herber.de/bbs/user/28297.xls
So ist die Formatierung besser zu verstehen.
Gruß
J. Jambo
Anzeige
AW: Text, Datum+Zeit Text trennen
11.11.2005 00:29:39
Aton
Hallo
Wenn du die Zellen der Spalte A makierst,
Dann Menü Bearbeiten - Ersetzen anwählen.
Obere Zeile 2 Leerstellen eintippen
untere 1 leerstelle eintippen,
dann "alle ersetzen" ankliken bis keine mehr gefunden werden.
ca 4 mal alle ersetzen anklicken.
Makro starten.
Bei mir funkts dann
Gruß Aton
Anzeige
AW: Text, Datum+Zeit Text trennen
11.11.2005 00:43:59
Jambo
Hallo,
die Daten kommen Online bei mir an, Zeilenweise, und ich möchte die Daten während
bzw. nachdem sie in einer Mappe abgelegt, wurden weiterverarbeiten.
Ich zerlege die Zeile (String) in seine Bestandteile Zahlen, Buchstaben, Ziffern, Datum und Uhrzeit. Nur wenn das Format mal abweicht bekomme ich probleme und meine Vorgehensweise gerät ins straucheln.
Das was du in den Dateien programmiert hast ist schn genau das was mir Hilft, schön wäre es eben wenn ich nicht auf ein Format festgelegt wäre d.h. immer gleiche Abstände.
Also wenn du noch Ideen hast wie man die Trennung unabhängig der Leerzeichen machen kann wäre das die Lösung meines Problems.
MfG
J. Jambo
Anzeige
AW: Text, Datum+Zeit Text trennen
11.11.2005 00:45:01
Aton
Hallo
Koppiere das folgende makro für das alte ein.
Sub TextTrennen() For Ze = 2 To Cells(2, 1).End(xlDown).Row Do P1 = InStr(Cells(Ze, 1), " ") If P1 > 0 Then Cells(Ze, 1) = Mid(Cells(Ze, 1), 1, P1 - 1) & Mid(Cells(Ze, 1), P1 + 1) Else P1 = -1 Loop Until P1 = -1 Next Ze P2 = 1 For Ze = 2 To Cells(2, 1).End(xlDown).Row A = Cells(Ze, 1) Cells(Ze, 1).Select ' Zum sehn Welche Zelle bearbeitet wird. ' Mit Taste F8 kannst du in einzelschritten das makro ablaufen lasen. ' mit der maus kanst Cellen und Variablen wärend der Einzelschjritten abfragen. P2 = 1 Do P1 = InStr(P2, A, ".") If P1 > 0 Then B = Mid(A, P1 + 3, 1) & Mid(A, P1 + 6, 1) & Mid(A, P1 + 9, 1) & Mid(A, P1 + 12, 1) If Mid(A, P1 + 3, 1) = "." And Mid(A, P1 + 6, 1) = " " And Mid(A, P1 + 9, 1) = ":" And Mid(A, P1 + 12, 1) = ":" Then Cells(Ze, 5) = Mid(A, 1, P1 - 4) Cells(Ze, 6) = Mid(A, P1 - 2, 17) Cells(Ze, 7) = Mid(A, P1 + 16) Cells(Ze, 2) = Mid(A, 1, 1) Cells(Ze, 3) = Mid(A, 3, InStr(3, A, " ") - 3) Cells(Ze, 4) = Mid(A, InStr(3, A, " ") + 1, 1) P2 = -1 Else P2 = P1 + 1 End If End If Loop Until P2 = -1 Next Ze End Sub
Gruß Aton
Anzeige
AW: Text, Datum+Zeit Text trennen
11.11.2005 01:12:41
Jambo
Hallo Aton,
vielen Dank ich glaube das ist die Ideale Lösung, ich werde das morgen Testen und dann das Resultat posten.
Ich hoffe das ist in deinem Sinne.
Ich wünsche Dir eine gute Nacht und verbleibe mit freundlichen Grüßen.
J. Jambo
AW: Text, Datum+Zeit Text trennen
11.11.2005 19:15:49
Jambo
Hallo Aton,
ich habe heute deinen Code in mein Projekt eingebaut, sieht alles sehr gut aus.
Bin noch nicht ganz fertig und möchte auch die Version von Peter Feustel mal testen.
Wenn alles so funktioniert wie ich mir das vorstelle werde ich mich an dieser Stelle wieder melden.
Ich möchte mich noch einmal bei euch bedanken und ich finde es wunderbar wie ihr mir geholfen habt.
Euer
J. Jambo
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Erstes Numerisches Zeichen in Zeichenkette finden


Schritt-für-Schritt-Anleitung

Um das erste numerische Zeichen in einer Zeichenkette zu finden, kannst du folgendes VBA-Makro verwenden:

Sub Zahl_finden()
    Dim iZeichen As Integer
    Dim sText As String
    sText = "die Hausnummer ist die 22"

    For iZeichen = 1 To Len(sText)
        If IsNumeric(Mid(sText, iZeichen, 1)) Then
            MsgBox "Die erste Zahl ist die " & Mid(sText, iZeichen, 1) & _
                   " und sie ist an Position " & iZeichen & " im Text."
            Exit For
        End If
    Next iZeichen
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und führe das Makro aus (ALT + F8).

Dieses Makro sucht das erste numerische Zeichen in der Zeichenkette und zeigt die Position an.


Häufige Fehler und Lösungen

  • Problem: Es wird keine Zahl gefunden, obwohl eine vorhanden ist.

    • Lösung: Stelle sicher, dass die Zeichenkette korrekt eingegeben ist und keine unsichtbaren Zeichen enthält.
  • Problem: Das Makro funktioniert nicht in der aktuellen Excel-Version.

    • Lösung: Überprüfe, ob du die richtige Excel-Version verwendest, die Makros unterstützt. In der Regel funktionieren diese in Excel 2010 und höher.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du die Funktion FINDEN in Kombination mit WENN und ISTZAHL verwenden. Hier ein Beispiel:

=MIN(WENN(ISTZAHL(FINDEN(ZEILE(A1:A10)-1;A1));FINDEN(ZEILE(A1:A10)-1;A1)))
  1. Trage die Zeichenkette in Zelle A1 ein.
  2. Füge die Formel in eine andere Zelle ein und drücke STRG + SHIFT + ENTER, um sie als Matrixformel auszuführen.

Praktische Beispiele

  1. Beispiel 1:

    • Eingabe: Y 123 C 10.11.05 20:10:12
    • Ergebnis: Die erste Zahl ist 123 an Position 3.
  2. Beispiel 2:

    • Eingabe: Y 3 R 10.11.05
    • Ergebnis: Die erste Zahl ist 3 an Position 3.
  3. Beispiel 3:

    • Eingabe: Y 23 C 10.11.05
    • Ergebnis: Die erste Zahl ist 23 an Position 3.

Hierbei ist zu beachten, dass die Zeichenkette in ihre Bestandteile zerlegt werden muss, um die Zahlen und Buchstaben korrekt zu identifizieren.


Tipps für Profis

  • Nutze Mid um spezifische Teile der Zeichenkette zu extrahieren, wenn du die Position der ersten Zahl bereits kennst.
  • Achte darauf, dass Leerzeichen in der Zeichenkette die Suche beeinflussen können. Verwende die Funktion GLÄTTEN, um überflüssige Leerzeichen zu entfernen.

FAQ: Häufige Fragen

1. Wie kann ich die Position einer Zahl in einer komplexen Zeichenkette finden? Du kannst das oben genannte VBA-Makro verwenden oder die FINDEN Funktion mit einer Kombination von WENN und ISTZAHL in Excel.

2. Was mache ich, wenn die Zeichenkette unterschiedlich viele Leerzeichen hat? Verwende die Funktion GLÄTTEN in Excel, um überflüssige Leerzeichen zu entfernen, bevor du die Suche startest.

3. Kann ich das Makro anpassen, um mehrere Zahlen zu finden? Ja, du kannst eine Schleife verwenden, um alle numerischen Zeichen in der Zeichenkette zu finden und sie in einer Liste auszugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige