Sida 1 av 1

Prefixrepresentaion i Excel?

Postat: 21 januari 2006, 23:01:15
av Loial
Sitter och gör ett litet kalkylark med formler man använder ofta (eller inte)
Men jag får inte talrepresentationen att fungera. Inom elektronik vill man ju gärna använda k,M,G,T resp. m,u(mikro),n,p o.s.v.
Nån som vet om det går att fixa? Om inte, skulle det vara bra om det går att "låsa" exponenter till 0,3,6,9 osv. istället.
Som det är nu, skriver man "10E-9" (10n) så ändrar excel direkt till "1E-8".

Postat: 21 januari 2006, 23:17:38
av matseng
Utan att använda en egenskriven funktion för att formaterra värdena känner jag inte till något sätt att få K/M/G osv..

Men för att låsa till exponenter med jämna multiplar av 3 brukar jag använda formatet: ##0.0E+0 (en decimal) eller ##0+0 (inga decimaler)

Postat: 22 januari 2006, 00:12:48
av Loial
Hmm... hur låser det exponenten? får samma resultat som ovan ändå.

Postat: 22 januari 2006, 13:07:29
av matseng
Det gör det hos mig med Excel 2003... Tja, exakt hur den formatteringen egentligen fungerar jag jag ärligt talat ingen aning om. Det nåt jag har antecknat från ett gammalt tips jag såg för nåt år sen.

Kod: Markera allt

1	1.0E+0
12	12.0E+0
123	123.0E+0
1234	1.2E+3
12345	12.3E+3
123456	123.5E+3
1234567	1.2E+6
12345678	12.3E+6
123456789	123.5E+6
1234567890	1.2E+9
12345678901	12.3E+9
0.1	100.0E-3
0.01	10.0E-3
0.001	1.0E-3
0.0001	100.0E-6
0.00001	10.0E-6
0.000001	1.0E-6
0.0000001	100.0E-9
0.00000001	10.0E-9
0.000000001	1.0E-9

Postat: 22 januari 2006, 14:28:25
av Loial
Delvis löst. Talformatet ###,000E+0 fungerade bra.
Återstår bara att se om någon vet hur man kan få p,n,u,m,k,M,G,T också då =)

EDIT: Såg nu vad det var med ditt exempel som strulade till det, det var punkten i talformatet, som ska vara ett komma istället!

Postat: 22 januari 2006, 16:10:30
av matseng
Tja, du kan göra ett macro i stil med så här

Kod: Markera allt

Function Suf(v)

    Select Case v
        Case Is >= 1000000
            Suf = Format(v / 1000000) & " M"
            Exit Function
        Case Is >= 1000
            Suf = Format(v / 1000) & " K"
            Exit Function
        Case Is >= 1
            Suf = Format(v)
            Exit Function
        Case Is >= 0.001
            Suf = Format(v * 1000#) & " m"
            Exit Function
        Case Is >= 0.000001
            Suf = Format(v * 1000000#) & " u"
            Exit Function
        Case Is >= 0.000000001
            Suf = Format(v * 1000000000#) & " n"
            Exit Function
        Case Is >= 0.000000000001
            Suf = Format(v * 1000000000000#) & " p"
            Exit Function
        Case Else
            Suf = v
    End Select

End Function
Och sedan istället för att skriva =U*I i en rutan så skriver du =Suf(U*I)

Postat: 30 januari 2006, 23:56:36
av JimmyAndersson
Nu har jag inte Excel framför mig, men det finns funktioner typ som ersätter/lägger till info i ett fält om innehållet är enligt vissa regler.

Postat: 31 januari 2006, 00:38:12
av RRacer
matseng skrev:Tja, du kan göra ett macro i stil med så här [snip]
Det ser ut att kunna funka fint, men du behöver väl inte alla "Exit Function"? Select-satser blir väl nöjda vid första träffen och hoppar vidare?