ローマ数字の操作(Microsoft Excel)
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に適用されます。