ExcelのROMAN関数|アラビア数字をローマ数字に変換する方法

スポンサーリンク

「Excelで数値をローマ数字に変換したいけど、どうやるの?」。資料の章番号や目次をローマ数字で表示したいとき、手入力は面倒ですよね。

数が増えると変換ルールも複雑になり、ミスのもとです。たとえば「499」をローマ数字でサッと書ける人は少ないはずです。

この記事ではROMAN関数を使って、アラビア数字をローマ数字に一発変換する方法を解説します。書式0〜4の違いやエラー対処法もまとめたので、ぜひ最後まで読んでみてください。

ExcelのROMAN関数とは

読み方と意味

ROMAN関数の読み方は「ローマン関数」です。「ローマの」という意味の英語がそのまま関数名になっています。

この関数は、アラビア数字(1, 2, 3のような数値)をローマ数字の文字列に変換します。Excel 2003以前から使える歴史の長い関数です。Excel 2016 / 2019 / 2021 / 2024 / Microsoft 365に対応しています。

たとえば=ROMAN(14)と入力すると「XIV」が返ってきます。変換ルールを覚えなくても、数値を渡すだけでOKですよ。

ARABIC関数との関係(逆変換ペア)

ROMAN関数には対になるARABIC関数があります。ARABIC関数はローマ数字をアラビア数字に変換する関数です。

つまり2つの関数は「逆変換ペア」の関係です。

  • ROMAN関数: アラビア数字 → ローマ数字(数値を文字列に変換)
  • ARABIC関数: ローマ数字 → アラビア数字(文字列を数値に変換)

3999以内の値であれば、=ARABIC(ROMAN(100))のように組み合わせると元の値に戻ります。セットで覚えておくと便利ですよ。

ROMAN関数の書式と引数

基本構文

=ROMAN(数値, [書式])

引数は最大2つです。書式は省略できるので、シンプルに使うなら数値を渡すだけでOKです。

引数「数値」

引数必須/任意説明
数値必須数値ローマ数字に変換するアラビア数字(1〜3999の整数)

指定できる範囲は1〜3999です。0、負数、4000以上を渡すと#VALUE!エラーになります。

小数を渡した場合は小数点以下が切り捨てられます。たとえば=ROMAN(4.9)=ROMAN(4)と同じ結果の「IV」を返しますよ。

引数「書式」0〜4の比較表

書式は省略可能で、ローマ数字の表示形式を指定します。0が正式(クラシック)で、数値が大きくなるほど簡略化されます。

499を例にした比較表を見てみましょう。

書式値意味出力例(499)文字数
0 または省略正式(クラシック)CDXCIX6文字
1やや簡略LDVLIV6文字
2さらに簡略XDIX4文字
3もう少し簡略VDIV4文字
4最も簡略ID2文字

TRUEを指定すると書式0(正式)、FALSEを指定すると書式4(最も簡略)と同じ結果になります。

実務では書式0(省略)を使えば十分です。書式1〜3の中間形式を意図的に使うシーンはほぼありません。略式が必要なら書式4を使いましょう。

ROMAN関数の使い方(基本例)

数値を直接指定する

もっともシンプルな使い方です。引数に数値を直接書きます。

=ROMAN(1)      → I
=ROMAN(5)      → V
=ROMAN(10)     → X
=ROMAN(50)     → L
=ROMAN(100)    → C
=ROMAN(500)    → D
=ROMAN(1000)   → M
=ROMAN(2024)   → MMXXIV

ローマ数字の基本7文字と、組み合わせた大きな数値も変換できます。結果はすべてテキスト型(文字列)で返る点に注意してください。SUM関数などの数値関数では使えません。

セル参照でリストを一括変換する

実務ではセルに入った数値をまとめて変換するケースが多いです。

たとえばA列に数値が入っている場合、B1セルに次のように入力します。

=ROMAN(A1)

あとはB1をコピーして下方向に貼り付ければ、リスト全体を一括で変換できます。数式をオートフィルでコピーすれば、何十行あっても一瞬ですよ。

書式引数で略式を指定する

第2引数に書式を指定すると、簡略化されたローマ数字を取得できます。999を例に違いを見てみましょう。

=ROMAN(999)      → CMXCIX(正式:6文字)
=ROMAN(999, 0)   → CMXCIX(正式:6文字)
=ROMAN(999, 4)   → IM(最も簡略:2文字)

書式0(省略時のデフォルト)は「CMXCIX」と6文字ですが、書式4なら「IM」のたった2文字になります。スペースが限られる表やラベルでは、略式が役立つ場面もありますよ。

実務での活用シナリオ

資料の章番号をローマ数字にする

ドキュメントの章番号を「第I章」「第II章」のように表示したい場合、ROMAN関数で自動生成できます。

A列に連番(1, 2, 3…)が入っているとして、B列に章番号を作ります。

="第" & ROMAN(A1) & "章"

結果は「第I章」「第II章」「第III章」のようになります。章が増えても数式をコピーするだけなので、手入力のミスがなくなります。

ROW関数と組み合わせれば、連番すら不要です。

="第" & ROMAN(ROW()-1) & "章"

2行目に入力すれば「第I章」、3行目なら「第II章」と自動で採番されますよ。

ARABIC関数と組み合わせて表記変換する

データにローマ数字が混在しているとき、表記を統一できます。

たとえば「IIII」(非標準)と「IV」(標準)が混ざっている場合を考えます。A列にローマ数字が入っているとして、B列で統一します。

=ROMAN(ARABIC(A1))

ARABIC関数で一度数値に戻し、ROMAN関数で標準形式のローマ数字に変換します。「IIII」も「IV」もどちらも4になり、ROMAN関数が「IV」を返してくれます。

逆に、ローマ数字をアラビア数字に戻したい場合は=ARABIC(B1)とするだけです。ペア関数の強みを活かしてみてください。

ROMAN関数のエラーと対処法

#VALUE!エラー

ROMAN関数で#VALUE!エラーが出る原因は主に4つです。

原因入力例説明
0を指定した=ROMAN(0)ローマ数字に0は存在しない
負数を指定した=ROMAN(-5)負の値は変換できない
4000以上を指定した=ROMAN(4000)変換できる上限は3999
文字列を指定した=ROMAN("abc")数値以外は受け付けない

もっとも多いのは「0を渡してしまう」ケースです。ローマ数字には0の概念がないため、ROMAN関数も0を変換できません。

エラーを回避したい場合は、IFERROR関数で分岐しましょう。

=IFERROR(ROMAN(A1), "")

これでエラー時は空文字を返し、有効な値のときだけ変換を実行します。エラーの詳細はExcelのエラー値一覧も参考にしてみてください。

変換できる範囲(1〜3999)

ROMAN関数が変換できるのは1〜3999の整数だけです。4000以上の数値を渡すと#VALUE!エラーになります。

=ROMAN(1)      → I(最小値)
=ROMAN(3999)   → MMMCMXCIX(最大値)
=ROMAN(4000)   → #VALUE!(エラー)

この制限はローマ数字の仕組みに由来します。ローマ数字ではM(1000)が最大の基本記号で、4000以上を標準的に表す方法がないためです。

なお、小数を渡した場合は自動的に切り捨てられます。=ROMAN(3999.9)は「MMMCMXCIX」を返し、エラーにはなりません。

対になるARABIC関数はROMANより広い範囲を解析できます。逆方向のほうが対応範囲は広い点も覚えておくとよいですよ。

まとめ

この記事では、ExcelのROMAN関数でアラビア数字をローマ数字に変換する方法を解説しました。

  • 構文は=ROMAN(数値, [書式])で、書式は省略可能
  • 変換できる範囲は1〜3999。0・負数・4000以上は#VALUE!エラー
  • 戻り値はテキスト型なので、数値演算には使えない
  • 書式0(正式)と書式4(略式)を押さえれば実務は十分
  • 小数点以下は自動で切り捨てられる
  • ペア関数のARABIC関数と組み合わせれば表記統一もできる

章番号の自動採番やデータの表記統一など、使い方を知っていると地味に役立つ関数です。ぜひ試してみてください。

関数一覧

各関数の解説記事へは下記のリンクからアクセスできます。

タイトルとURLをコピーしました