Excelには、数値をローマ数字に変換できるワークシート関数が含まれています。 (うーん。見てみましょう…​私はMCMLVIで生まれました。ダン!私は古典です!)ローマ数字を使用する最も簡単な方法は次のとおりです:

=ROMAN(123)

明らかに、あなたがする必要があるのは、123をあなたが変換したい数に置き換えることです。 1から3999までの任意の数値を使用できます(ローマ人は明らかにこの範囲外の数値を処理したことはありません。)

必要に応じて、2番目の引数を使用して、結果のローマ数字をどのように組み合わせるかを示すこともできます。使用できるさまざまな引数は0から4で、デフォルトは0です。引数0は古典的な形式のローマ数字を返し、4は非常に単純化されたローマ数字を返します。 0から4までの値は、徐々に単純化されたバージョンを返します。ローマ数字の単純化は、通常、より大きな数を扱う場合にのみ機能します。たとえば、以下は、1999年の数値のさまざまなレベルの簡略化を示しています。

Formula

Result

=ROMAN(1999,0)

MCMXCIX

=ROMAN(1999,1)

MLMVLIV

=ROMAN(1999,2)

MXMIX

=ROMAN(1999,3)

MVMIV

=ROMAN(1999,4)

MIM

ROMAN関数はテキスト値を返すため、結果をどのような計算にも使用できないことに注意してください。Excelに関する限り、これは数値ではなくなりました。

古いバージョンのExcel(Excel 2003を含む)には、ローマ数字をアラビア数字に変換する機能が含まれていません。公式なアプローチを使用して変換を行う場合は、次の方法を試すことができます:

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

これは、ローマ数字がセルA1にあることを前提としています。必要に応じて、独自のユーザー定義関数を作成して、アラビア語への変換を行うことができます。

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 To 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)

Next     For i = 1 To WordLength - 1         If MyArray(i) < MyArray(i + 1) Then             MyDeduct = MyDeduct + MyArray(i)

End If     Next     'Now deduct twice the value of the subtraction numbers     UnRoman = MySum - 2 * MyDeduct End Function

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(1956)は、Microsoft Excel 97、2000、2002、および2003に適用されます。