Tekst til tal og tal til tekst





Introduktion

Regneark kan nogenlunde kende forskel på tal og tekst, men der er visse begrænsninger, f.eks. ved datoer og tal i højere baser end 10. Nogle funktioner konverterer også fra tal til tekst eller omvendt, som en del af algoritmen. For at kunne konvertere tilbage til det rette format, har regnearkene de to funktioner VALUE() og TEXT(). Man skal her være opmærksom på, at der er nogle små forskelle på Excel og Calc, ud over Excels fordanskning af kommando- og parameternavne, der godt kan give anledning til lidt forvirring.


Tekst til tal

Konverteringen fra tekst til tal gøres i Excel og Calc med VALUE(). Har man en dansk version af Excel, hedder funktionen i stedet TALVÆRDI(). Det er en af de få funktioner, hvor der er lidt forskel på Excel og Calc, hvor Calc kun skal have test-strengen, mens Excel har mulighed for at man specificerer tusind- og decimaladskillerne, i den rækkefølge, adskilt med semikolon. Bruger man dette, skal adskillerne angives i ping'er (eksempel længere nede).

For Microsoft Excel ser det således ud:
Konvertering af tekst til tal i Excel regneark

For OpenOffice Calc ser det således ud:
Konvertering af tekst til tal i Calc regneark


Det er værd lige at bemærke, i forhold til de to konverteringer, at begge regneark betragter punktum som tusindadskiller og komma som decimaladskiller, så hvis man forsøger at konvertere f.eks. 50,000.5 som er den amerikanske, omvendte notation, er det kun Excel hvor det går godt, forudsat, at man husker at specificerer de to adskillere. I det viste eksempel skulle der så stå TALVÆRDI(C2;".";","), hvis der var anvendt notationen 50,000.5.

Fordi der ligger nogle skjulte forudsætninger i algoritmerne, skal man lige være opmærksom på en lille detalje, hvis man konverterer datoer. Datoer skal være i formatet dag-måned-år, det amerikanske måned-dag-år giver en fejlmeddelelse, og algoritmerne omregner datoen til antal dage fra 1. januar, 1900. Datoer før 01-01-1900 giver en fejlmeddelelse, algoritmen tillader ikke et negativt antal dage. Så, hvis vi konverterer datoen 31. december, 1900:

For Microsoft Excel ser det således ud:
Konvertering af dato til tal i Excel regneark

For OpenOffice Calc ser det således ud:
Konvertering af dato til tal i Calc regneark


Tal til tekst

Konverteringen fra tal til tekst gøres i Excel og Calc med TEXT(). Har man en dansk version af Excel, hedder funktionen i stedet TEKST(). Det er en funktion med mange facetter og valgmuligheder ved formatteringen, der ikke alle er lige indlysende eller godt beskrevet.

Syntaksen for funktionen er TEXT(Tal; "Tekstformat"). Tallet er, i sagens natur, det tal man vil have konverteret, hvadenten det er et fast tal, en celleværdi eller en funktion. Den del er ukompliceret. Tekstformatet, derimod, kan give nogle udfordringer.

Hvis vi starter fra en ende af, så bruges der til formatet de tre placeholders

Vi tager et par eksempler, så det giver mere mening:

AnvendelseKodeResultat
TusindadskillerTEXT(123; "##.###")
TEXT(123456; "##.###")
123
123.456
Bindestreger og mellemrumTEXT(123456; "##-##-##")
TEXT(123456; "## ## ##")
12-34-56
12 34 56
Min. antal cifreTEXT(123; "0000")
TEXT(123456; "0000")
0123
123456
Antal decimalerTEXT(12,3; "0,000")
TEXT(12,3456; "0,0")
12,300
12,3
Decimal til brøkTEXT(12,25; "# ?/?")
TEXT(12,3; "# ?/?")
TEXT(12,3; "?/?")
12 1/4
12 1/3
37/3



Formatet tillader også at der tilføjes tekst til tallet, f.eks. enheder, både før og efter talstrengen. Her skal man være opmærksom på, at visse tegn, som f.eks. %, ikke kan anvendes direkte, fordi de har en funktion i koden. Her gør man det, at man sætter et backslash foran, dvs. \%, og så fungerer det. Har man flere tegn, f.eks. hvis man vil skrive "meter" efter tallet, skal hvert tegn have et backslash, dvs. \m\e\t\e\r. Skal man tilføje længere tekst, kan man her i stedet overveje at anvende en konkatanering med &, dvs. TEXT(123; "# ") & "meter".

Et par eksempler, så det giver mere mening:

AnvendelseKodeResultat
Valuta (Euro) med to decimalerTEXT(123; "€ 0,00")€ 123,00
Temperaturer (°C)TEXT(123; "# °C")123 °C
ProcenterTEXT(123; "# \%")123 %
TekststrengTEXT(123; "# \m\e\t\e\r")123 meter



Man kan med formatet i begrænset omfang regne om på talværdierne. Tal kan omregnes til procenter og formateringen af tal kan laves om til videnskabelig notation.

Et par eksempler, så det giver mere mening:

AnvendelseKodeResultat
Omregning til procenterTEXT(0,25; "# %")25 %
Videnskabelig notationTEXT(5500; "0.00E+00")5,50E+03



Datoer og tid er næsten et kapitel for sig selv, og der er en lille smule forskel på Excel og Calc.

Excel: Tal refererer til dage fra 1. januar, 1900, og ved konvertering til datoer, accepteres ikke negative tal. Dag 0 refererer til datoen 0. januar, 1900, så der returneres ikke en fejl, men en ikke-eksisterende dato. Har man en dansk version af Excel, skal man være obs på, at man skal bruge å istedet for y får år.
Calc: Tal refererer til dage fra 31. december, 1899, og ved konvertering til datoer, accepteres negative tal. Dag 0 refererer til datoen 30. december, 1899, som man ville forvente ud fra dag 1. Calc har af uransagelige grunde ikke 29. februar 1900 med i tællingen af dage, så fra 1. marts, 1900, giver Calc og Excel samme dato for et givent tal.

Til datoer anvendes d, m og y (eller å, hvis man har en dansk version af Excel), og antallet af de tre bogstaver der anvendes, bestemmer hvordan datoen skrives. Forskellene er:

KodeBeskrivelseDetaljer
dMånedens eller ugens dagd - en- eller tocifret dato (1 til 31)
dd - tocifret dato med foranstillet nul (01 til 31)
ddd - ugedagens navn, forkortet til tre bogstaver (Man til Søn)
dddd - ugedagens fulde navn (Mandag til Søndag)
mMåneden, hvis det anvendes som en del af en datom - et- eller tocifret månedsnummer (1 til 12)
mm - tocifret månedsnummer, med foranstillet nul (01 til 12)
mmm - forkortet navn på måneden (Jan til Dec)
mmmm - månedens fulde navn (Januar til December)
yÅryy - tocifret årstal, uden specifikation af århundrede.
yyyy - firecifret årstal.


Et par eksempler, så det giver mere mening:

AnvendelseKodeResultat
Dato på kort form=TEKST(1000; "dd/mm/åååå")
=TEXT(1000; "dd/mm/yyyy")
26/09/1902 (Excel)
Dato på lang form=TEKST(1000; "dddd \d. d. mmmm, åååå")
=TEXT(1000; "dddd \d. d. mmmm, yyyy")
fredag d. 26. september, 1902 (Excel)
fredag d. 26. september, 1902 (Calc)



Tidsfunktionen i regneark arbejder i hele døgn, startende fra kl. 00.00.00, dvs. et heltal er ét døgn. Talværdierne 0,5 og 1,5 giver således den samme værdi: 12.00.00. Til tid anvendes t til Calc og h til Excel (eller t, hvis man har en dansk version af Excel), m og s, og antallet af de tre bogstaver der anvendes, bestemmer hvordan tiden skrives. Der er desuden en AM/PM-parameter til skifte om til 12-timers klokkeslet.

Antallet af de tre bogstaver der skrives, har betydning for hvordan tallene vises. Syntaksen er således:

KodeBeskrivelseDetaljer
h (Excel)
t (Calc)
Timerh/t - en- eller tocifret timetal (0 til 24)
hh/tt - tocifret timetal med foranstillet nul (00 til 24)
mMinutter, hvis det anvendes som en del af en klokkesletm - et- eller tocifret minuttal (0 til 59)
mm - tocifret minuttal, med foranstillet nul (00 til 59)
sSekunders - et- eller tocifret minuttal (0 til 59)
ss - tocifret minuttal, med foranstillet nul (00 til 59)
AM/PMSkift til 12-timers tidsværkVed angivelse af AM/PM skiftes til 12-timers visning, ellers anvendes 24-timers visning.


Der er endnu en lille forskel på Excel og Calc, idet Calc accepterer negative talværdier og hh istedet for tt for tocifrede timer.

Et par eksempler, så det giver mere mening:

AnvendelseKodeResultat
¾ døgn=TEXT(0,75; "hh:mm:ss") (Excel)
=TEXT(0,75; "tt:mm:ss") (Calc)
18:00:00
¾ døgn med AM/PM=TEXT(0,75; "hh:mm:ss AM/PM") (Excel)
=TEXT(0,75; "tt:mm:ss AM/PM") (Calc)
06:00:00 PM
¼ døgn=TEXT(0,25; "h:m:s") (Excel)
=TEXT(0,25; "t:m:s") (Calc)
6:0:0