Forfatter |
Emne Søg Emne funktioner
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Emne: Konvertering til tal Sendt: 20.Jul.2011 kl. 14:46 |
Jeg har data i et excelark som bliver skabt af et rapporteringssystem.
Arket kommer ud med punktummer istedet for kommaer og formateret forkert, så der ikke kan beregnes.
Normal ville jeg så benytte mig af søg og erstat og ( da jeg kører med 2003) multiplicering via "indsæt specielt" med 1 tastet ind i et givent felt.
søg og erstat fungerer fint, men det virker som om feltet i virkeligheden heller ikke er formateret som tekst, så det eneste der sker når jeg via "indsæt specielt" multiplicerer med 1 flyttes data nu til venstre i feltet, men kan stadig ikke benyttes til formler.
jeg vedlægger en kopi af data i arket.
Er der andre der er stødt på et lignende problem og er der nogen løsning?
|
|
|
|
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Sendt: 20.Jul.2011 kl. 14:52 |
|
|
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
Sendt: 22.Jul.2011 kl. 23:45 |
Kolonne "B" og "C" bliver ikke opfattet som tal, da der er et mellemrum (" ") før tallet. Hvorimod Kolonne "A" opfattes som tal. Jeg kan kun fjerne dette mellemrum ved formel flyttet data over i nye kolonner. Derfra kan disse værdier altid flyttes/kopieres tilbage. uploads/107/Kopi_af_konvertering.xls
|
VH rassten
Arbejde excel 2010 Privat excel 2010
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 23.Jul.2011 kl. 23:30 |
Hej Stausholm, Alternativt, kan du bruge en lille stump makro til at klare problemet. Sub Stausholm() For Each c In Selection.Cells If InStr(1, c, ".", vbTextCompare) > 0 Then c.Value = Replace(c.Value, ".", ",", 1) End If If InStr(1, c, " ", vbTextCompare) > 0 Then c.Value = Replace(c.Value, " ", "", 1) End If c.Value = c.Value * 1 Next c End Sub Koden erstatter et evt. punktum med komma og fjerner det lille mellemrum før tallet. Den gør faktisk nøjagtig det samme som Rasstens formel, blot oversat til VBA. //Allan
|
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Sendt: 25.Jul.2011 kl. 11:05 |
Tak til jer begge. Jeg har brugt macroløsningen, og har lagt den ind hos mine kollegaer, så de nu bare klikker deres genvej og presto kan der regnes med værdierne. Endnu en gang tak.
|
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Sendt: 25.Jul.2011 kl. 12:03 |
Løsningen med makroen fungerede fint på kommatallene, men jeg har nu set at det også drejer sig om data i tidsformat. Målet med løsningen skulle være at ligesom kommatallene skulle tidsdata også blive validt. Det optimale ville være at tidsformatet i samme omgang blev konveret til kommatal, dvs. at f.eks. 26:41:00 skulle konverteres til 26,68. Hvis macroløsningen ville skulle deles op i 2, ville det være helt i orden Håber I også kan hjælpe med denne. Mvh. Per uploads/225/Mappe1.xls
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 27.Jul.2011 kl. 23:06 |
Hej Per, Undskyld ventetiden, ferie du ved . Prøv lige denne, jeg tror den klarer din udfordring: Sub Stausholm() For Each c In Selection.Cells If InStr(1, c, ":", vbTextCompare) > 0 And Left(c, 1) = " " Then c.Value = Mid(c, 2, Len(c) - 1) c.Value = c.Value * 24 c.NumberFormat = "General" End If If Left(c, 1) = " " Then c.Value = Mid(c, 2, Len(c) - 1) End If Next c End Sub Koden ser kun cellens indhold som tid hvis cellen indeholder et kolon. hvis ikke cellen indeholder kolon, ses cellen som et tal. Virker det i din ende? //Allan
|
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Sendt: 28.Jul.2011 kl. 09:46 |
Jeg har ingen forventninger på levering . Det er jo et åbent forum, hvor alt arbejde er frivilligt Til gengæld er jeg superglad for at du gider kigge på det. Desværre ser det ikke ud til at det virker i 2003. Der sker simpelthen ingenting. Bare for at være helt sikker på at vi snakker om det samme. I sin nuværende form genkender Excel overhovedet ikke data, hverken som tal eller datoformat (jeg tror igen der måske er et mellemrum før selve tallet/tidsangivelsen der spøger). Det jeg ønsker er løsning der ændrer tiden - først til et format der kan anvendes til beregninger og derefter skal den angivne tid i tidsformat, konverteres til tid i decimalformat (komma)
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 28.Jul.2011 kl. 11:17 |
Hej igen, Det er fordi forummet 'oversætter' tegnet foran dine tal til et normalt mellemrum når jeg poster det til dig.
Det mellemrum du ser foran dine tal er nemlig ikke et helt normalt mellemrum. Prøv lige med denne kode i stedet, hvor jeg har oversat tegnet (Som hedder Chr 160) Sub Stausholm() For Each c In Selection.Cells If InStr(1, c, ":", vbTextCompare) > 0 And Left(c, 1) = Chr(160) Then c.Value = Mid(c, 2, Len(c) - 1) c.Value = c.Value * 24 c.NumberFormat = "General" End If If Left(c, 1) = Chr(160) Then c.Value = Mid(c, 2, Len(c) - 1) End If Next c End Sub //Allan
|
|
stausholm
Forum Begynder
Medlem: 16.Mar.2011
Land: Danmark
Status: Offline
Point: 7
|
Sendt: 28.Jul.2011 kl. 12:50 |
Der var den. Du er en stjerne . Jeg ændrede så "General" til "##.##" , så der kun kommer 2 decimaler på (ser ud til at fungere) Jeg bukker og skraber ydmygt. Mvh. Per Stausholm
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 28.Jul.2011 kl. 22:37 |
Velbekomme Per, tak for din tilbagemelding Du har fuldstændig ret mht. formatet, det kan du ændre som du lyster. //Allan
|
|
|