Text in Zahl umwandeln?
#11
Hallo snb

ich bewundere immer wieder die Kürze und Eleganz deiner Makros.  Du bist um Klassen besser wie ich!
Es so zu programmieren ist mir garnicht in den Sinn gekommen.  Habe es mal in einer Mappe getestet.

Rein technisch ist mir ein Effekt aufgefallen der mich verblüfft.  Vielleicht weisst du warum das so ist??
Ich habe ganz normal Zahlen in Spalte A eingegeben und in Spalte B deine Formel runtergezogen
.
Das Ergebnsi ist klar und eindeutig, aber  -  die Zahlen stehen bei dir  -  Linksbündig in der Zelle!!
Das sah für mich zuerst mal wie ein Text aus. Um den Verdacht zu prüfen habe ich den Wert mit 10 addiert.
Das Ergebnis ist eindeutig eine Zahl mit der man weiterrechnen kann. Die Zelle sind auf Standard formatiert! 

Aber warum erscheint bei dir die Zahl Linksbündig???   Teste es bitte mal nach, oder liegt das an meienm PC??

viele Grüsse  
Gast 123
Top
#12
(04.09.2017, 17:57)Gast 123 schrieb: Aber warum erscheint bei dir die Zahl Linksbündig???   Teste es bitte mal nach, oder liegt das an meienm PC??
Hallo Gast
- mach mal in der Zelle für den Funktionsaufruf =F_snb(A1)*1
- und teste Mal die Regex -Lösung: sie ist einiges genauer: aber könnte sicher noch verbessert werden besonders wenn:
- im string mehr als ein Zahlenblock vorhanden ist
-Zahlenblöcke am Anfang oder Ende des string sind
Beispiel (ich verwende den Punkt als Dezimaltrennzeichen):
ddd  .___jjj99.333.___kkk---p.2 ergibt bei snb .99.333..2 und mit Regexp 99.333
Gruss




Top
#13
Nö, nicht dein PC.

Das Ergebnis von
Code:
Function F_snb(c00)
    For j = 1 To Len(c00)
       If Mid(c00, j, 1) Like "#" Or Mid(c00, j, 1) = "," Then F_snb = F_snb & Mid(c00, j, 1)
    Next
End Function
ist ein String.

Offensichtlich weil er das Ergebnis eines Formel ist, wird die Excel interpretation (es sei numersich, ein string oder ein Datum) nicht aktiviert (wie auch calculation nicht aktiviert wird von Formeln).

Du kannst die Function umwandeln in ein Zahl:

Code:
Function F_snb(c00)
    For j = 1 To Len(c00)
       If Mid(c00, j, 1) Like "#" Or Mid(c00, j, 1) = "," Then F_snb = F_snb & Mid(c00, j, 1)
    Next
    F_snb = --F_snb
End Function

So bald man das Ergebnis multipliziert und das Ergebnis in einer Zelle schreibt wird 'calculation' aktiviert und offensichtlich auch die Type Interpretation.
Ich 'weiss' nicht wie Excel das macht in diesem Fall, doch deduziere dass es so passieren könnte.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


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