Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
zahlen in text-problem
21.07.2008 16:43:37
phil
hab nun schon eine ganze weile in google und hier im forum gestöbert, aber eine richtig befriedigende lösung habe ich leider nicht finden können.
zum problem:
die spalten j und k enthalten verwendungszwecke.
nun möchte ich hier bestellnummern rausfiltern - diese sind IMMER 8-stellig und beginnen IMMER mit einer 6, und dann beginnt aber der ärger... zum einen kommen manchmal leerzeichen in den nummern vor, manchmal gibt es auch mehrere bestellnummern und manchmal gibt es auch andere zahlen (datumsangaben u.ä.)
hat jemand ne idee?

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

Betreff
Datum
Anwender
Anzeige
AW: zahlen in text-problem
21.07.2008 16:53:00
Rudi
Hallo,
als Ansatz:
=Teil(wechseln(J1;" ";"");finden("6";wechseln(J1;" ";""));8)
Gruß
Rudi

AW: zahlen in text-problem
21.07.2008 17:35:44
phil
für den standardfall funktioniert das schonmal - werd das morgen mal versuchen noch ein bisschen zu erweitern - danke auf jeden fall schonmal für's auf die richtige spur setzen
gruß
phil

AW: zahlen in text-problem
21.07.2008 16:54:00
Ramses
Hallo
"...hat jemand ne idee?..."
Ja,... bau eine neue Tabelle und schule die Anwender in der Dateneingabe.
Keine Lösung für dein Problem ?
Dann solltest du dir deinen Beitrag nochmals durchlesen, nachdenken und versuchen herauszufinden was WIR aus diesem hingeworfenen Text eigentlich heraus lesen sollen.
Gruss Rainer

Anzeige
AW: zahlen in text-problem
21.07.2008 17:39:00
phil
was ist denn daran nicht zu verstehen? rudi hat komischerweise direkt nen ansatz gefunden...
ob der ne glaskugel besitzt?

AW: zahlen in text-problem
Ramses
Hallo
"...was ist denn daran nicht zu verstehen?..."
Sieh dir die anderen Beiträge und deinen eigenen Kommentar zu Rudis Beitrag an.
Da ist wohl kein weiterer Kommentar mehr nötig.
Gruss Rainer

AW: zahlen in text-problem
21.07.2008 16:55:17
ransi
HAllo
hat jemand ne idee?


Klar.
Gib uns mal einige Beispieldatensätze.
So siehts aus:
Und das hätte ich gerne hier ausgegeben:
ransi

AW: zahlen in text-problem
21.07.2008 17:25:00
phil
das ganze sieht z.b. so aus:__________________ergebnis sollte sein (eine bestellnummer pro spalte):
in sachen xy vom 12.06.07 61231234___________61231234
oder
nr. 6123 1234 abzgl. 3% skto._________________61231234
oder aber
6123 1234 u. 61235678 meyer________________61231234_________________61235678
da für den verwendungszweck zwei zeilen zur verfügung stehen, wird er hier in zwei spalten gespeichert nämlich j und k - es steht also nicht fest in welcher spalte die bestellnummer steht - glücklicherweise wird sie aber nicht über beide spalten verteilt.
aussehen soll das dann so, daß in spalte L (M, N, ...) nur jeweils eine bestellnummer steht
aus "in sachen xy vom 12.06.07 61231234" wird dann "61231234"

Anzeige
AW: zahlen in text-problem
22.07.2008 10:59:00
ransi
HAllo
Da gibts wirklich noch ein Problem mit der eindeutigkeit.
Zumindest auf deine Beispieldaten bezogen funktioniert sowas:
Diesen Code in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Function machs(zelle) As Variant
Dim strText As String
Dim RegEx As Object
Dim Alle As Object
Dim treffer As Object
Dim tmp As Variant
Dim L As Integer
Redim tmp(0)
strText = Replace(zelle, " ", "")
Set RegEx = CreateObject("Vbscript.Regexp")
With RegEx
    .Pattern = "6[0-9]{7}"
    .Global = True
    Set Alle = .Execute(strText)
    For Each treffer In Alle
        Redim Preserve tmp(L)
        tmp(L) = treffer.Value
        L = L + 1
    Next
End With
machs = tmp
End Function

Der Aufruf in deiner Tabelle geht dann so:
Tabelle1

 KLMNO
1das ganze sieht z.b. so aus:    
2in sachen xy vom 12.06.07 6123123461231234#BEZUG!#BEZUG! 
3oder0#BEZUG!#BEZUG! 
4nr. 6123 1234 abzgl. 3% skto.61231234#BEZUG!#BEZUG! 
5oder aber0#BEZUG!#BEZUG! 
66123 1234 u. 61235678 meyer6123123461235678#BEZUG! 
7     

Formeln der Tabelle
ZelleFormel
L2=INDEX(machs($K2); SPALTE(A1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Die 0 und #Bezug bekommst du selber raus ?
ransi

Anzeige
AW: zahlen in text-problem
21.07.2008 18:00:38
Erich
Hallo Phil,
so ganz eindeutig ist das noch nicht, deshalb hier drei Varianten,
von denen wohl noch keine deiner Vorgabe entspricht:
 ABCDEFGHIJ
1TextVariante1 Variante2 Variante3
26234567862345678  62345678  62345678  
3sdf6234567862345678  62345678  62345678  
462345678sdf62345678  62345678  62345678  
5sdf62345678sdf62345678  62345678  62345678  
66234 5678 sdf62345678  62345678  62345678  
762 34 56789      62345678  
862 34 5678 8      62345678  
962 34 5678 x62345678  62345678  62345678  
10sdf 623 45 67 8 sdf62345678  62345678  62345678  
11sdf 65 5 5 55 55 x23 45 67 8 sdfsdf 623 45 66666 sdf sdfs 12345678 6666666665555555  6555555566666666 655555556234566667866666
12in sachen xy vom 12.06.07 61231234   61231234  61231234  
13in sachen xy vom 12.06.06 61231234   61231234  66123123  
14in sachen xy vom 12.06.06 61231234 5 Tage      66123123  
15nr. 6123 1234 abzgl. 3% skto61231234  61231234  61231234  
166123 1234 u. 61235678 meyer6123123461235678 6123123461235678 6123123461235678 

Und hier der Code:

Sub BestNr()
Dim lngZ As Long, ii As Integer, strT As String, lngC As Long
Dim strP As String, bolOK As Boolean
'   Range("B2:Z99").ClearContents
For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
strT = Replace(Replace(Cells(lngZ, 1), " ", ""), ".", "x")
lngC = 1     ' oder 4 oder 7 für Variante 2 oder 3
For ii = 1 To Len(strT) - 7
bolOK = False
strP = Mid(strT, ii, 8)
If Left(strP, 1) = "6" And IsNumeric(strP) Then
bolOK = True
If ii > 1 Then                ' auskommentiert für Variante 2
If IsNumeric(Mid(strT, ii - 1, 1)) Then bolOK = False
End If
If ii 

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: zahlen in text-problem
22.07.2008 18:02:00
Erich
Hi Phil,
hier noch eine 4. Variante, deren Ergebnis sich kaum von der ransis (schöner) RegEx-Lösung unterscheidet:
 ABCDEUVW
1TextVariante4 RegEx
26234567862345678   62345678  
3sdf6234567862345678   62345678  
462345678sdf62345678   62345678  
5sdf62345678sdf62345678   62345678  
66234 5678 sdf62345678   62345678  
762 34 5678962345678   62345678  
862 34 5678 862345678   62345678  
962 34 5678 x62345678   62345678  
10sdf 623 45 67 8 sdf62345678   62345678  
11sdf 65 5 5 55 55 x23 45 67 8 sdfsdf 623 45 66666 sdf sdfs 12345678 66666666655555556234566667866666 655555556234566667866666
12in sachen xy vom 12.06.07 6123123461231234   61231234#BEZUG! 
13in sachen xy vom 12.06.06 6123123461231234   66123123#BEZUG! 
14in sachen xy vom 12.06.06 61231234 5 Tage61231234   66123123#BEZUG! 
15nr. 6123 1234 abzgl. 3% skto61231234   61231234#BEZUG! 
166123 1234 u. 61235678 meyer6123123461235678  6123123461235678 
17abc       

Formeln der Tabelle
ZelleFormel
U2=INDEX(machs($A2); SPALTE(A1))

Und hier der Code:

Sub BestNr4()
Dim lngZ As Long, ii As Integer, strT As String, lngC As Long
Dim strP As String
'   Range("B2:Z99").ClearContents
For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
strT = Replace(Replace(Cells(lngZ, 1), " ", ""), ".", "x")
strT = Replace(Cells(lngZ, 1), " ", "")
lngC = 1
For ii = 1 To Len(strT) - 7
If Mid(strT, ii, 8) Like "##.##.##" Then
ii = ii + 7
Else
strP = Mid(strT, ii, 8)
If Left(strP, 1) = "6" And IsNumeric(strP) Then
lngC = lngC + 1
Cells(lngZ, lngC) = strP
ii = ii + 7
End If
End If
Next ii
Next lngZ
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige