「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 または省略 | 正式(クラシック) | CDXCIX | 6文字 |
| 1 | やや簡略 | LDVLIV | 6文字 |
| 2 | さらに簡略 | XDIX | 4文字 |
| 3 | もう少し簡略 | VDIV | 4文字 |
| 4 | 最も簡略 | ID | 2文字 |
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関数と組み合わせれば表記統一もできる
章番号の自動採番やデータの表記統一など、使い方を知っていると地味に役立つ関数です。ぜひ試してみてください。
関数一覧
各関数の解説記事へは下記のリンクからアクセスできます。
