[Excel] Milisekunden / benutzerdefinierte Formatierung

Gast #2502393
Hallo Leute,
ich möchte dass mir Excel z.B. die Zahl "3,9E-3" als "3,9 ms" anzeigt.

Für Megahertz habe ich es mit folgendem benutzerdefinierten Zahlenformat 
geschafft:

#.##0.. "MHz"

"150E+6" wird als "150 MHz" angezeigt.

Für den oben genannten Fall finde ich jedoch das richtige Format nicht 
:(


Danke für etwaige Tipps!

lg,
Martin K.
Gast
Mit Hilfe des Links von hp-freund habe ichs mit folgender Funktion 
geschafft:
1
Function ToSciNum(BaseNum As Double, Unit As String) As String
2

3
    Dim OrigNum As Double
4
    Dim Pref As Integer
5
    Dim Temp As String
6

7
    Pref = 0
8
    OrigNum = BaseNum
9
    
10
    Select Case BaseNum
11
        Case Is >= 1
12
            While Abs(BaseNum) > 1000
13
                BaseNum = BaseNum / 1000
14
                Pref = Pref + 1
15
            Wend
16
        Case 0
17
            Pref = 99
18
        Case Else
19
            While Abs(BaseNum) < 1
20
                BaseNum = BaseNum * 1000
21
                Pref = Pref - 1
22
            Wend
23
    End Select
24

25
    Select Case Pref
26
        Case -6
27
            Temp = "a" & Unit
28
        Case -5
29
            Temp = "f" & Unit
30
        Case -4
31
            Temp = "p" & Unit
32
        Case -3
33
            Temp = "n" & Unit
34
        Case -2
35
            Temp = "µ" & Unit
36
        Case -1
37
            Temp = "m" & Unit
38
        Case 0
39
            Temp = Unit
40
        Case 1
41
            Temp = "k" & Unit
42
        Case 2
43
            Temp = "M" & Unit
44
        Case 3
45
            Temp = "G" & Unit
46
        Case 4
47
            Temp = "T" & Unit
48
        Case 5
49
            Temp = "P" & Unit
50
        Case 6
51
            Temp = "E" & Unit
52
        Case Else
53
            Temp = ""
54
    End Select
55

56
    ToSciNum = Format(BaseNum, "0.0") & " " & Temp
57

58
End Function

Zwei unbedeutend kleine Probleme habe ich dabei noch:
1) Damit ich die Funktion aufrufen kann, muss ich den ganzen 
Dateinamen/Modul-Wulst angeben: 
=PNM_FFT_Timing.xlsm!ToSciNum.ToSciNum(...)

2) Da die Funktion einen String zurückgibt (Wert + Einheit) kann ich 
natürlich damit nicht mehr weiterrechnen. Gäbs dafür auch noch eine 
Lösung (Ohne die Einheit in einer anderen Zelle anzeigen zu lassen!)?


@Arc Net: Beider deiner Funktion muss ich a) die Größenordung fix 
angeben, und b) wird die Einheit nicht angezeigt. Danke für den Tip, ist 
aber nicht  das was ich suche.
Gast
Hallo MtheK,

ich habe deine Funktion in LibreOffice getestet. Funktioniert.
Hier ist es so das ich die Funktion/das Makro direkt in das Dokument 
einfüge.
Unter Makros:
Dokument -> Standard -> Module1 -> ToSciNum
Dann erfolgt der Aufruf wie im Bild.
Excel/Window$ ist aber schon zu lange her. Weiss ich nicht mehr wie das 
da war.

Zu 2) :
Du hast doch noch die originale Zahl ;)
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.