Avatar billede dla Praktikant
24. september 2010 - 11:34 Der er 8 kommentarer og
1 løsning

Brugerdefineret talformat

Jeg prøver at få mine tal til at blive vist med 2 decimaler hvis der er nogle, ingen decimaler hvis der ingen er, og samtidig skal 0'er vises som -

Hvis jeg skriver ###,##;;- viser den 2 decimaler hvis der er nogle og 0'er bliver vist som -, men hvis et tal ikke har decimaler, bliver der alligevel skrevet et komma bagved, som dette: 2,

Hvordan undgår jeg dette komma? Jeg bruger Excel 2007
Avatar billede anlu Nybegynder
25. september 2010 - 09:56 #1
Man kan lave en del avancerede formater, se fx
http://peltiertech.com/Excel/NumberFormats.html

Tror dog ikke at den med at checke om der faktisk er decimaler umiddelbart kan udtrykkes i format-betingelserne.

En mulighed er at gøre det via VBA i Worksheet_Change-eventen.
Avatar billede Jonas77 Nybegynder
25. september 2010 - 10:15 #2
Hej,

Følgende makro burde løse dit problem:

Private Sub Worksheet_Change(ByVal Target As Range)
    If IsNumeric(Target.Value) Then
        If InStr(Target.Value, ",") = 0 Then       
            Target.NumberFormat = "0"       
        Else       
            Target.NumberFormat = "#,##0.00"       
        End If   
    End If
End Sub

Den skal kopieres ind på alle de ark du vil have funktionaliteten på.

Jonas
Avatar billede dla Praktikant
27. september 2010 - 09:03 #3
anlu: tak for linket, men der var nu ikke lige løsning på det jeg efterspørger.

Jonas77: Din kode virker hvis jeg SKRIVER et tal ind, men mine tal bliver genereret ud fra en formel, og så virker det ikke.

Man skulle ellers tro at det kunne løses, for sætter man formatet til Generel står de hele tal uden kommaer, men problemet er at er der decimaler, bliver alle skrevet med, og jeg vil kun have 2.
Avatar billede Jonas77 Nybegynder
27. september 2010 - 20:35 #4
Hej,

Jeg kommer lige i tanke om at der også er en alm. formel der kan løse dit problem:

=HVIS(ER.FEJL(FIND(",";B2+C2))TEKST(B2+C2;"0")TEKST(B2+C2;"##,00"))

Du skal selvfølgelig sætte din egen formel ind istedet for B2+C2.

Jonas
Avatar billede dla Praktikant
28. september 2010 - 09:08 #5
Den melder fejl med den formel. Jeg har engelsk version, og jeg skriver:

=IF(ISERROR(FIND(",";AE21*AD21))TEXT(AE21*AD21;"0")TEXT(AE21*AD21;"##,00"))

men det vil den ikke acceptere, kan du se hvad der mon er ferkert?
Avatar billede Jonas77 Nybegynder
28. september 2010 - 11:04 #6
hvilke værdier står der i AE21 og AD21?
Avatar billede dla Praktikant
29. september 2010 - 08:52 #7
Der står tal som er genereret af en anden formel, men selv om jeg skriver tallene ind, siger den alligevel at der er fejl. Den skriver at formlen indeholder fejl og highlighter ordet TEXT.
Avatar billede Jonas77 Nybegynder
29. september 2010 - 23:06 #8
Hej,

Jeg må da også have været fuld da jeg har indsat formlen ;) Der mangler ; foran begge TEXT statements i det jeg har sat ind. Ved ikke helt hvordan de er forsvundet?

Jonas
Avatar billede dla Praktikant
30. september 2010 - 09:14 #9
Ja nu melder den ikke fejl, men den virker nu ikke efter hensigten, for tallene bliver formateret som tekst, og så kan jeg ikke regne videre på dem, det duer ikke. Jo, jeg kan godt regne på de enkelte celler, men ikke tage summen af hele kolonnen.

Jeg tror vi glemmer det, og jeg lever med en decimal på mine hele tal.

Men du får naturligvis point for din hjælpsomhed.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester