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

Forumthread: Stelle der ersten Zahl in String ermitteln

Stelle der ersten Zahl in String ermitteln
22.02.2007 13:57:03
Peter
Hallo
Kann ich mit einer Formel die Stelle der ersten Zahl in einem String ermitteln?
Beispiel
BBBB1.2% = 5. Stelle
abcd 13 = 6. Stelle
Danke für eine Rückmeldung.
Peter Kann ich mit einer Formel die Stelle der ersten Zahl in einem String ermitteln?
Beispiel
BBBB1.2% = 5. Stelle
abcd 13 = 6. Stelle
Danke für eine Rückmeldung.
Peter
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Stelle der ersten Zahl in String ermitteln
22.02.2007 14:52:34
pefeu
Hallo Peter,
als UDF - in ein Standard-Modul kopieren - und z. B. mit =ErsteZahl(A1) aufrufen
Public

Function ErsteZahl(Wert As String) As Integer
Dim iStelle  As Integer
For iStelle = 1 To Len(Wert)
If IsNumeric(Mid(Wert, iStelle, 1)) Then
ErsteZahl = iStelle
Exit For
End If
Next iStelle
End Function

Gruß Peter
Anzeige
AW: Stelle der ersten Zahl in String ermitteln
22.02.2007 15:00:38
Peter
Hallo Peter
Vielen Dank. Es funktioniert.
Was muss ich machen, damit es in irgendeinem Workbook auch funktioniert, wenn der Code in der Persönlichen Makrovorlage ist? (und was heisst eigentlich UDF)?
Beste Grüsse
Peter
AW: Stelle der ersten Zahl in String ermitteln
22.02.2007 15:17:03
pefeu
Hallo Peter,
UDF = User Defined Function
Deine erste Frage muss jemand anderes beantworten, deshalb lasse ich den Thread offen.
Gruß Peter
Anzeige
ohne VBA
22.02.2007 15:16:00
Bertram
Hallo Peter,
ohne VBA:
{=VERGLEICH(1;(ISTZAHL(WERT(TEIL(A26;ZEILE(INDIREKT("1:"&LÄNGE(A26)));1)))*1);0)}
Geschweifte Klammern nicht eingeben, Formel mit Umschalt+Strg+Enter abschließen.
Gruß
Bertram
AW: ohne VBA
22.02.2007 15:30:03
Peter
Hallo Bertram
Vielen Dank für diese komplexe Formel.
Könntest du mir noch kurz erläutern, wie die Logik dahinter ist?
Danke, Peter
Anzeige
AW: ohne VBA
22.02.2007 15:40:00
Bertram
Hallo Peter,
TEIL...: dein String wird in ein Array aufgeteilt. Je Position ein Zeichen.
WERT..: die einzelnen Zeichen werden in Werte umgewandelt
ISTZAHL...: ergibt je nach dem WAHR oder FALSCH
*1: aus WAHR und FALSCH wird 1 und 0
VERGLEICH...: findet die 1 und gibt die Position im Array zurück.
In deinem Fall ist die erste vorkommende 1 gleichbedeutend wie die Position der ersten Zahl in deinem String.
Hoffe das ist einigermaßen verständlich:-)
Gruß
Bertram
Anzeige
AW: ohne VBA
22.02.2007 15:43:06
Peter
Hallo Betram
Sehr verständlich und hilfreich. Vielen Dank!
Peter
Gerne oT
22.02.2007 16:11:00
Bertram
AW: ohne VBA
22.02.2007 15:44:00
Bertram
Hallo nochmal,
die obige Formel hab ich mir übungshalber selber zusammengestrickt, aber hier findest du noch mehr solcher schnuckeliger Sachen:-)
http://www.excelformeln.de/formeln.html?gruppe=2
Gruß
Bertram
Anzeige
AW: ohne VBA
22.02.2007 16:03:35
Peter
Hallo Bertram
Vielen Dank!
Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Erste Zahl in einem String in Excel finden


Schritt-für-Schritt-Anleitung

Um die Stelle der ersten Zahl in einem String in Excel zu ermitteln, kannst Du sowohl VBA als auch Formeln verwenden. Hier ist die Anleitung für beide Methoden:

1. VBA-Methode:

  • Öffne den Visual Basic for Applications (VBA) Editor (Alt + F11).
  • Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  • Kopiere den folgenden Code in das Modul:
Function ErsteZahl(Wert As String) As Integer
    Dim iStelle As Integer
    For iStelle = 1 To Len(Wert)
        If IsNumeric(Mid(Wert, iStelle, 1)) Then
            ErsteZahl = iStelle
            Exit For
        End If
    Next iStelle
End Function
  • Schließe den VBA-Editor und gehe zurück zu Excel.
  • Verwende die Funktion in einer Zelle, indem Du =ErsteZahl(A1) eingibst (ersetze A1 durch die Zelle mit Deinem String).

2. Formel-Methode:

  • Wenn Du keine VBA verwenden möchtest, kannst Du die folgende Matrixformel nutzen. Gehe in eine Zelle und gib die Formel ein:
=VERGLEICH(1;(ISTZAHL(WERT(TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)))*1);0)
  • Drücke Umschalt + Strg + Enter, um die Formel als Matrixformel einzugeben.

Häufige Fehler und Lösungen

  • Fehler: "Der Name ist nicht vorhanden."

    • Lösung: Überprüfe, ob Du das VBA-Modul korrekt eingefügt hast und die Funktion richtig aufrufst.
  • Fehler: Die Formel gibt einen Fehler aus.

    • Lösung: Stelle sicher, dass Du die Formel als Matrixformel eingibst (Umschalt + Strg + Enter).
  • Fehler: Die Funktion findet keine Zahl.

    • Lösung: Überprüfe den String, um sicherzustellen, dass er tatsächlich Zahlen enthält.

Alternative Methoden

Wenn Du keine VBA oder komplexe Formeln verwenden möchtest, kannst Du die Excel-Funktion TEXT in Kombination mit FINDEN verwenden, um gezielt nach Zeichen in einem String zu suchen. Diese Methode ist jedoch weniger flexibel und nicht so direkt wie die vorherigen Ansätze.


Praktische Beispiele

Beispiel 1:

String in Zelle A1: BBBB1.2%
Ergebnis der Funktion =ErsteZahl(A1): 5

Beispiel 2:

String in Zelle A1: abcd 13
Ergebnis der Formel =VERGLEICH(1;(ISTZAHL(WERT(TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)))*1);0): 6


Tipps für Profis

  • Wenn Du häufig mit Strings arbeitest, könnte es sinnvoll sein, eine umfassende UDF (User Defined Function) zu erstellen, die mehr Optionen bietet, wie z.B. die Rückgabe der gefundenen Zahl oder die Möglichkeit, mehrere Zahlen zu finden.
  • Nutze die Funktion TEXT in Kombination mit SÄUBERN, um unerwünschte Zeichen vor der Analyse zu entfernen.

FAQ: Häufige Fragen

1. Was ist eine UDF?
Eine UDF (User Defined Function) ist eine von Dir selbst definierte Funktion in Excel, die spezifische Berechnungen oder Operationen durchführt, die nicht standardmäßig in Excel vorhanden sind.

2. Kann ich die Funktion in anderen Workbooks verwenden?
Ja, sobald die UDF in einem Modul deiner persönlichen Makrovorlage gespeichert ist, kannst Du sie in jedem Workbook verwenden. Stelle sicher, dass Du die Makros aktiviert hast.

3. Funktioniert dies in allen Excel-Versionen?
Die VBA-Methode ist in den meisten modernen Excel-Versionen verfügbar. Die Formel-Methode sollte ebenfalls in den meisten Versionen funktionieren, solange die Funktionen ISTZAHL, WERT, und VERGLEICH unterstützt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige