Hi für Widerstände zu sortieren habe ich mir die jeweiligen Zellen
formatiert.
Leider bekomme ich es nicht hin z.b. bei 1800 1k8 angezeigt zu bekommen
- 1k800 ist dagegen kein Problem.
Wie kann ich denn Excel erzählen das es die nullen da nicht einblenden
braucht?
Auch bei 2M2 steht da nun 2M200000 :)
Derzeit sieht die Formatierung so aus:
[<1000]0;[<1000000]#"k"###;#"M"######
Björn
Hallo Björn,
die folgenden Aussagen beziehen sich auf EXCEL 2003.
Ich befürchte, dass die von Dir gewünschte Formatierung über ein
benutzerdefiniertes Zahlenformat nicht hinzubekommen ist. Du kannst zwar
durch Einfügen des "1000er Trennzeichens" die Ausgabe von Zahlen in
Tausendern erzwingen, wenn Du dabei jedoch nicht das Dezimaltrennzeichen
verwendest wird aus "3500" der Zahlenwert "4". EXCEL rundet in diesem
Fall. So bald Du das Dezimaltrennzeichen in Deinem benutzerdefinierte
Zahlenformat verwendest ist das Dezimaltrennzeichen jedoch auch in der
Ausgabe.
Was Du hinbekommen kannst ist z. B. "3.k5". Besonders schön ist dies
jedoch auch nicht. Hier das entsprechende benutzerdefinierte
Zahlenformat:
1
[<1000]0;[<1000000]#."k"#,;#."M"#,,
Noch zur Info. Bei mir ist EXCEL wie folgt eingestellt.
Dezimaltrennzeichen => "."
1000er Trennzeichen => ","
Was auf jeden Fall geht ist, die Ausgabe über Hilfsspalten bzw. Zeilen
zusammenzubauen.
Mit freundlichen Grüßen
Guido
Hallo,
hp-freund schrieb:> Hab zwar Libreoffice, sollte aber auch in Excel funktionieren.
wenn man die folgende Zeile
hp-freund schrieb:> mid(Temp1,Instr(Temp1,","),1,Temp)
durch die Zeile
1
Mid(Temp1, InStr(Temp1, ","), 1) = Temp
ersetzt, funktioniert die Funktion auch unter EXCEL 2003.
Mit freundlichen Grüßen
Guido
Hi!
Danke für die vielen Tipps :)
Dachte eigentlich das das Excel schon irgendwie könnte, naja.
Habe die Funktion noch etwas umgebaut da es noch nicht ganz klappte.
17,9993 ergab 18, statt 17,99
12 ergab 12, statt 12
12000000 ergab 12M0 statt 12M
1
Function ToSciNum1(BaseNum As Double) As String
2
3
Dim OrigNum As Double
4
Dim Pref As Integer
5
Dim Temp As String
6
Dim Temp1 As String
7
8
Pref = 0
9
OrigNum = BaseNum
10
11
Select Case BaseNum
12
Case Is >= 1
13
While Abs(BaseNum) >= 1000
14
BaseNum = BaseNum / 1000
15
Pref = Pref + 1
16
Wend
17
Case 0
18
Pref = 99
19
Case Else
20
While Abs(BaseNum) < 1
21
BaseNum = BaseNum * 1000
22
Pref = Pref - 1
23
Wend
24
End Select
25
26
Select Case Pref
27
Case -6
28
Temp = "a"
29
Case -5
30
Temp = "f"
31
Case -4
32
Temp = "p"
33
Case -3
34
Temp = "n"
35
Case -2
36
Temp = "µ"
37
Case -1
38
Temp = "m"
39
Case 0
40
Temp = ","
41
Case 1
42
Temp = "k"
43
Case 2
44
Temp = "M"
45
Case 3
46
Temp = "G"
47
Case 4
48
Temp = "T"
49
Case 5
50
Temp = "P"
51
Case 6
52
Temp = "E"
53
Case Else
54
Temp = " "
55
End Select
56
57
If ((OrigNum - Fix(OrigNum) = 0) And (OrigNum < 1000)) Then 'ohne Nachkommastellen und <1000
58
Temp1 = Format(BaseNum, "0.#####")
59
Temp1 = OrigNum
60
Else
61
Temp1 = Format(BaseNum, "0.0#")
62
Mid(Temp1, InStr(Temp1, ","), 1) = Temp
63
End If
64
65
ToSciNum1 = Temp1
66
67
End Function
Anbei noch die Tabelle als .pdf .
Evtl. ist das ja dem ein oder anderen eine Hilfe wenn man mal wieder
schnell einen exotischen Wert braucht :)
Widerstände der Reihe E12 als Parallelschaltung.
Björn
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.