Zifferteil extrahieren
#1
Hallo,

ich möchte den numerischen Teil eines Ausdrucks (steht teilweise am Anfang, teilweise aber auch mittendrin) extrahieren und (noch besser) nach Möglichkeit auch noch zusätzlich den Punkt als Trenner für die Dezimalstellen durch ein Komma ersetzen.

Also z.B. aus 2340.1 kJ => 2340.1 oder noch besser 2340,1 etc., s. anliegende 
.xls   Zifferteil extrahieren.xls (Größe: 13,5 KB / Downloads: 8) *. Arbeite noch mit dem guten alten Office 2002.

Jemand eine Idee?

Vielen Dank und

schönen Gruß
Jörg
* Bearbeiten, Ersetzen ging für den Austausch von Punkt durch Komma natürlich auch, ist aber zu aufwendig, da ich ähnliche Daten immer wieder neu mal runterladen muss
Antworten Top
#2
Hallo,

eine Teillösung kann ich dir schon mal anbieten:

Daten

ABCDEF
2ISTSOLL 1SOLL 2
32340.1 kJ2340.12340,12340.1 2340,11
4556.5 kcal556.5556,5556.5 556,5
522.9 kg22.922,922.9 22,9
65.1 g5.15,15.1 5,1
Formeln der Tabelle
ZelleFormel
D3=LINKS(A3;(FINDEN(" ";A3)))
E3=(WECHSELN(D3;".";","))*1
D4=LINKS(A4;(FINDEN(" ";A4)))
E4=(WECHSELN(D4;".";","))*1
D5=LINKS(A5;(FINDEN(" ";A5)))
E5=(WECHSELN(D5;".";","))*1
D6=LINKS(A6;(FINDEN(" ";A6)))
E6=(WECHSELN(D6;".";","))*1

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Das Ergebnis in Spalte E erreichst du durch kopieren der 1 in Zelle F3. Dann markierst du die Inhalte in Spalte E und gehst auf Inhalte einfügen, Multiplizieren.

Ähnlich kannst du mit den anderen Inhalten auch verfahren, da musst du nur zusätzlich die Positionen für erste und das letzte Leerzeichen ermitteln und mit der Funktion Teil arbeiten.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hi,

für Deine ururalt-Version kann ich Dir nur das empfehlen:

https://www.herber.de/excelformeln/src/e...la_list.pl
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Hi,

mit einer  UDF

PHP-Code:
Public Function RegExExtract(ByVal SourceText As String_
                    Optional ByVal SearchPattern 
As String "\d*\.?\d*"_
                    Optional ByVal bIgnoreCase 
As Boolean True_
                    Optional ByVal bGlobal 
As Boolean True_
                    Optional ByVal bMultiLine 
As Boolean True) As String
Dim oRegEx 
As Objectsubmatch As ObjectAs Long
Set oRegEx 
CreateObject("Vbscript.Regexp")
  With oRegEx
    
.Pattern SearchPattern
    
.ignorecase bIgnoreCase
    
.Global = bGlobal
    
.MultiLine bMultiLine
    
    Set submatch 
= .Execute(SourceText)
    For 0 To submatch.Count 1
    
If Len(submatch(i)) Then
      RegExExtract 
Replace(submatch(i), "."",")
      Exit For
    End If
    Next
  End With
End 
Function 

den Code in ein StandardModul ( ALT +F11, ggfs. ALT+E+M und den Code in das sich öffnende Modulfenster kopieren)

In die entsprechende Zelle für das Ergebnis: 

=RegExExtract(A3)

VG Juvee
Antworten Top
#5
Hi,

mit einer Formel:

Code:
=WENN(A3="";"";WENN((CODE(A3)<58)*(CODE(A3)>48);--LINKS(WECHSELN(A3;".";",");SUCHEN(" ";A3)-1);--TEIL(WECHSELN(A3;".";",");SUCHEN(" ";A3)+1;SUCHEN("#";WECHSELN(A3;" ";"#";2))-SUCHEN(" ";A3))))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#6
@Edgar,


coole Formel, in Zelle ohne Zahlen --> #WERT!  -->=wennfehler(...;"")



VG Juvee
Antworten Top
#7
Hi Juvee,


WENNFEHLER in 2002????
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#8
Sad 
@ Edgar

shame on me!! So weit reichte mein Erinnerungsvermögen nicht mehr 22

VG Juvee
Antworten Top
#9
Hallo und

vielen Dank an alle, insb. für die Formellösungen.

Was Juvee meinte ist wohl
=WENN(ISTFEHLER(Deine_Formel);"";Deine_Formel)
und das ergibt dann das ellenlange
=WENN(ISTFEHLER(WENN(A3="";"";WENN((CODE(A3)<58)*(CODE(A3)>48);--LINKS(WECHSELN(A3;".";",");SUCHEN(" ";A3)-1);--TEIL(WECHSELN(A3;".";",");SUCHEN(" ";A3)+1;SUCHEN("#";WECHSELN(A3;" ";"#";2))-SUCHEN(" ";A3)))));"";WENN(A3="";"";WENN((CODE(A3)<58)*(CODE(A3)>48);--LINKS(WECHSELN(A3;".";",");SUCHEN(" ";A3)-1);--TEIL(WECHSELN(A3;".";",");SUCHEN(" ";A3)+1;SUCHEN("#";WECHSELN(A3;" ";"#";2))-SUCHEN(" ";A3)))))
womit Excel aber kein Problem hat, was beweist, dass auch ziemlich alte Besen manchmal noch ganz gut kehren..

Schönen Gruß
Jörg
Antworten Top
#10
Hallo,

durch den Teil WENN(A3="";"" habe ich das WENNFEHLER ersetzt. Es braucht also kein ISTFEHLER!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste