Arbeide med romertall

September 4  by Eliza

Excel inneholder en regnearkfunksjon som lar deg konvertere et tall til romertall. (..! Hmmm La oss se ... Jeg ble født i MCMLVI Dang Jeg er en klassiker!) Den enkleste måten å bruke romertall er som følger:

= ROMAN (123)

Alt du trenger å gjøre, selvsagt, er å erstatte 123 med nummeret du vil konvertere. Du kan bruke hvilket som helst tall mellom 1 og 3999. (Romerne tilsynelatende aldri jobbet med tall utenfor dette området.)

Du kan også, om ønskelig, kan du bruke et annet argument for å indikere hvordan de resulterende romertall bør settes sammen. De ulike argumenter du kan bruke er 0 til 4, der 0 er standard. Et argument fra 0 avkastning romertall i den klassiske formen, og 4 returer en ekstremt forenklet romertall. Verdier mellom 0 og 4 retur gradvis mer forenklede versjoner. Forenkling av romertall kommer vanligvis bare inn i bildet når du arbeider med større tall. For eksempel, viser følgende de forskjellige nivåer av forenkling av nummeret 1999:

Formel Resultat
= ROMAN (1999,0) MCMXCIX
= ROMAN (1999,1) MLMVLIV
= ROMAN (1999,2) MXMIX
= ROMAN (1999,3) MVMIV
= ROMAN (1999,4) MIM

Du bør være oppmerksom på at det ROMAN funksjonen returnerer en tekstverdi, og du kan derfor ikke bruke resultatet i noen form for beregning-så langt som Excel er opptatt av, er det ikke lenger et nummer.

Eldre versjoner av Excel (inkludert Excel 2003) inkluderer ikke en funksjon for å konvertere romertall tilbake til arabiske tall. Hvis du ønsker å bruke en formalistisk tilnærming til å gjøre konverteringen, kan du prøve dette:

= MATCH (A1, INDEX (ROMAN (ROW (INDIREKTE ("1: 4000"))), 0), 0)

Dette forutsetter at de romertall er i celle A1. Hvis du foretrekker det, kan du opprette din egen brukerdefinert funksjon for å gjøre konverteringen til arabisk:

Public Function UnRoman (RomanNumber As String) As Integer
Dim MySum As Integer
Dim MyDeduct As Integer
Dim MyWord As String
Dim L As String
Dim WordLength As Integer
Dim i As Integer
Dim myArray () As Integer

MySum = 0
MyDeduct = 0
MyWord = UCase (RomanNumber)
WordLength = Len (MyWord)
ReDim myArray (WordLength + 1)

For i = 1 Til WordLength
L = Mid (MyWord, i, 1)
MyArray (i) = Switch (L = "I", 1, L = "V", 5, _
L = "X", 10, L = "L", 50, L = "C", 100, _
L = "D", 500, L = "M", 1000)
MySum = MySum + myArray (i)
Neste
For i = 1 Til WordLength - 1
Hvis myArray (i) <myArray (i + 1) Deretter
MyDeduct = MyDeduct + myArray (i)
End If
Neste
'Nå trekker to ganger verdien av subtraksjon nummer
UnRoman = MySum - 2 * MyDeduct
End Function

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (1956) gjelder for Microsoft Excel 97, 2000, 2002, og 2003.