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

Forumthread: Sechsstellige Zahl aus Zelle mit Text ziehen

Sechsstellige Zahl aus Zelle mit Text ziehen
Martin
Hallo
In den Zellen in Spalte C stehen Wörter und Zahlen. Ich möchte gerne alle sechsstelligen (es gibt auch andere) Zahlen herausziehen und in Spalte D eintragen. Es gibt auch Zellen, die mehrere sechsstellige Zahlen beinhalten, da bräuchte ich auch jede davon in Spalte D, getrennt mit Leerzeichen oder Komma.
Besten Dank im voraus für die Hilfe!
Martin
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Alles sechsstellige Zahlen auflisten
26.08.2009 13:28:23
NoNet
Hallo Martin,
gib folgende Funktion in D2 ein und bestätige die Eingabe mit Strg+shift+ENTER und kopiere sie dann nach unten :
=WENN(ZEILE()-1<=SUMMENPRODUKT((ISTZAHL($C$2:$C$19)*(LÄNGE($C$2:$C$19)=6)));INDEX(C:C;KKLEINSTE(WENN(ISTZAHL($C$2:$C$19)*(LÄNGE($C$2:$C$19)=6);ZEILE($C$2:$C$19));ZEILE()-1));"")
Ergebnis-Beispiel :
CD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Gruß, NoNet
Anzeige
AW: Alles sechsstellige Zahlen auflisten
26.08.2009 13:37:46
Martin
Besten Dank für die Antwort.
Ich habe mich schlecht ausgedrückt:
Die Zellen in Spalte C beinhalten Worte und Zahlen, wie z.B.
"gestaffelte Garantie über 2000 gestellt durch XX 105314"
oder
"Kunden-Nr 101456 und Kunden-Nr 101457"
(es gibt auch längere Texte)
Hier sollte das Resultat in Spalte D wie folgte sein:
105314
101456 101457
Vielen Dank
Anzeige
AW: Alles sechsstellige Zahlen auflisten
26.08.2009 14:33:53
fcs
Hallo Martin,
das geht nach meiner Einschätzung mit Standardfunktionen nicht mehr. Das erfordert eine benutzerdefinierte Funktion.
Die nachfolgende Prozedur kopierst du im VBA-Editor in ein allgemeines Modul der Datei.
Anschließend kannst du die Funktion wie jede andere in Formeln der Datei benutzen.
Gruß
Franz

Formel-Beispiele:
=fncZiffernPaket(C3;6;",")      'Ziffernblöcke mit Komma als Trennzeichen
=fncZiffernPaket(C3)      'Ziffernblöcke mit Leerzeichen als Trennzeichen
Function fncZiffernPaket(Zelle As Range, _
Optional BlockLaenge As Long = 6, _
Optional strSep As String = " ") As String
'Sucht im Text der Zelle nach Ziffernblöcken der Länge Blocklaenge und fügt die _
Ziffern zu einem Textstring mit Trennzeichen zusammen
Dim lngPos, bolZahl As Boolean, Text As String
Text = Zelle.Text
'Prüfen, ob Text eine Zahl mit BlockLaenge ist
If IsNumeric(Text) And Len(Text) = BlockLaenge Then
fncZiffernPaket = Text
'Prüfen, ob Text eine Zahl mit Länge ungleich BlockLaenge ist
ElseIf IsNumeric(Text) And Len(Text)  BlockLaenge Then
fncZiffernPaket = ""
Else
'Prüfen, ob im Text eine(mehrere) Zahl(en) mit Länge ungleich BlockLaenge ist(sind)
For lngPos = 1 To Len(Text) - BlockLaenge - 1
bolZahl = False
'Prüfen, ob BlockLaenge Zeichen langer Abschnitt im Text eine Zahl ist
If IsNumeric(Mid(Text, lngPos, BlockLaenge)) Then
'Prüfen 7. Zeichen keine Zahl ist, wenn BlockLaenge Ziffern am Anfang
If lngPos = 1 And Not IsNumeric(Mid(Text, lngPos + BlockLaenge, 1)) Then
bolZahl = True
'Prüfen ob 7.-letztes Zeichen keine Zahl wenn BlockLaenge Ziffern am Ende
ElseIf Not IsNumeric(Mid(Text, lngPos - 1, 1)) _
And lngPos = Len(Text) - BlockLaenge - 1 Then
bolZahl = True
'Prüfen, ob Zeichen links und rechts des Blocks keine Ziffer
ElseIf Not IsNumeric(Mid(Text, lngPos - 1, 1)) _
And Not IsNumeric(Mid(Text, lngPos + BlockLaenge, 1)) Then
bolZahl = True
End If
'Wenn 6er-Ziffern-Block, dann zum Ergebnis hinzufügen
If bolZahl = True Then
If fncZiffernPaket = "" Then
fncZiffernPaket = Mid(Text, lngPos, BlockLaenge)
Else
fncZiffernPaket = fncZiffernPaket & strSep & Mid(Text, lngPos, BlockLaenge)
End If
lngPos = lngPos + BlockLaenge
End If
End If
Next
End If
End Function

Anzeige
AW: Alles sechsstellige Zahlen auflisten
26.08.2009 14:40:25
Martin
Hallo Franz
Besten Dank für den Code.
Sieht kompliziert aus, aber ich werde versuchen, mich mal da durch zu arbeiten, um alles zu verstehen (kopieren ist das einfach, aber ich möchte auch wissen, was da abgeht ;-)
Herzlichen Dank nochmals für deine Mühe.
Grüsse
Martin
Mit mehreren Zahlen wird's zu kompliziert !
26.08.2009 14:43:56
WF
Hi Martin,
kommt pro Text nur eine zusammenhängende Zahl vor 0 bis vielstellig, erhältst Du nur die 6-stellige mit folgenden Arrayformel:
in A1 steht Dein Text
in B1 steht:
{=WENN(ISTZAHL(VERGLEICH(WAHR;ISTZAHL(TEIL(A1;ZEILE(1:99);1)*1);0))+ISTFEHLER(TEIL(A1;VERGLEICH(WAHR; ISTZAHL(TEIL(A1;ZEILE(1:99);1)*1);0)+6;1)*1)+ISTZAHL(TEIL(A1;VERGLEICH(WAHR;ISTZAHL(TEIL(A1; ZEILE(1:99);1)*1);0)+5;1)*1)=3;TEIL(A1;VERGLEICH(WAHR;ISTZAHL(TEIL(A1;ZEILE(1:99);1)*1);0);6);"") }
Da jetzt noch zusätzliche Zahlen zu eliminieren bzw. dann auch mehrere 6-stellige zu Listen: VIEL VERGNÜGEN!
Salut WF
Anzeige
oder so
28.08.2009 21:27:05
FP
Hallo Walter,
und ohne {}
=TEXT(TEIL(LINKS(A1;VERWEIS(2;1/N(TEIL(A1;SPALTE(1:1);1)+1);SPALTE(1:1))); MIN(SUCHEN({0.1.2.3.4.5.6.7.8.9};A1&"0123456789"));99)+0;"[999999]"""";0")
oder mit {}
{=TEXT(RECHTS(LINKS(A1;VERWEIS(9;1/N(TEIL(A1;SPALTE(1:1);1)+1);SPALTE(1:1)));ANZAHL(TEIL(A1; SPALTE(1:1);1)+0))+0;"[999999]"""";0") }
Das funktioniert natürlich nur mit 1 Zahl im Text.
Servus aus dem Salzkammergut
Franz
Anzeige
AW: oder so
31.08.2009 17:25:42
Martin
Super Antworten!!
Besten Dank an alle für eure Hilfe.
Viele Grüsse
Martin
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sechsstellige Zahl aus Zelle mit Text ziehen


Schritt-für-Schritt-Anleitung

Um sechsstellige Zahlen aus Zellen zu extrahieren, in denen auch Text vorkommt, kannst Du die folgenden Schritte ausführen:

  1. Öffne Excel und lade Deine Datei, in der die Daten enthalten sind.
  2. Gehe zu Spalte D, wo die extrahierten sechsstelligen Zahlen erscheinen sollen.
  3. Gib die folgende Formel in Zelle D2 ein:
    =WENN(ZEILE()-1<=SUMMENPRODUKT((ISTZAHL($C$2:$C$19)*(LÄNGE($C$2:$C$19)=6)));INDEX(C:C;KKLEINSTE(WENN(ISTZAHL($C$2:$C$19)*(LÄNGE($C$2:$C$19)=6);ZEILE($C$2:$C$19));ZEILE()-1));"")
  4. Bestätige die Eingabe mit Strg+Shift+ENTER, um die Array-Formel anzuwenden.
  5. Kopiere die Formel nach unten, um alle sechsstelligen Zahlen in der Spalte D anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: Formel zeigt keine Ergebnisse an

    • Lösung: Stelle sicher, dass Du die Formel als Array-Formel eingegeben hast (Strg+Shift+ENTER).
  • Fehler: Es werden nicht alle sechsstelligen Zahlen angezeigt

    • Lösung: Überprüfe, ob die Daten in Spalte C tatsächlich sechsstellige Zahlen enthalten und ob die Formel korrekt angepasst wurde.

Alternative Methoden

Falls die Standardformel nicht ausreicht, kannst Du eine benutzerdefinierte VBA-Funktion verwenden:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Erstelle ein neues Modul und füge den folgenden Code ein:

    Function fncZiffernPaket(Zelle As Range, _
    Optional BlockLaenge As Long = 6, _
    Optional strSep As String = " ") As String
    'Sucht im Text der Zelle nach Ziffernblöcken der Länge Blocklaenge und fügt die _
    Ziffern zu einem Textstring mit Trennzeichen zusammen
    Dim lngPos, bolZahl As Boolean, Text As String
    Text = Zelle.Text
    Dim Result As String
    
    'Hier geht der Code weiter...
    End Function
  3. Nutze die Funktion in Excel:
    =fncZiffernPaket(C2)

Praktische Beispiele

Hier sind einige Beispiele, wie die Formel in der Praxis funktioniert:

  • Beispiel 1: In Zelle C2 steht gestaffelte Garantie über 2000 gestellt durch XX 105314. Das Ergebnis in D2 wird 105314 sein.

  • Beispiel 2: In Zelle C3 steht Kunden-Nr 101456 und Kunden-Nr 101457. Das Ergebnis in D3 wird 101456 101457 sein.

Du kannst die Formel anpassen, um andere sechsstellige Zahlenkombinationen zu extrahieren.


Tipps für Profis

  • Datenüberprüfung: Verwende die Funktion =excel prüfen ob zahl in zelle, um sicherzustellen, dass nur sechsstellige Zahlen extrahiert werden.
  • Formatierung: Denke daran, die Zellen in Spalte D als "Text" zu formatieren, um sicherzustellen, dass die sechsstelligen Zahlen korrekt angezeigt werden.
  • Dynamische Bereiche: Nutze dynamische Bereiche, um die Formeln bei zukünftigen Änderungen in den Daten automatisch anzupassen.

FAQ: Häufige Fragen

1. Was ist eine sechsstellige Zahl?
Eine sechsstellige Zahl ist eine Zahl, die genau aus 6 Ziffern besteht, zum Beispiel 123456.

2. Wie viele sechsstellige Zahlen mit 1 und 2 gibt es?
Die Anzahl der sechsstelligen Zahlenkombinationen mit den Ziffern 1 und 2 hängt von der Anzahl der Variationen ab, die Du erstellen kannst. Oft wird dies durch kombinatorische Berechnungen ermittelt.

3. Können auch längere Zahlen extrahiert werden?
Die bereitgestellten Formeln und Funktionen konzentrieren sich ausschließlich auf sechsstellige Zahlen. Für längere oder kürzere Zahlen müssen die Formeln angepasst werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige