「ローマ数字をExcelで数値に変換したいけど、どうすればいいの?」。手動で1つずつ読み替えるのは面倒ですよね。
変換ルールを覚えても、大量データになるとミスが起きやすいです。たとえば「MCMXCIX」が何の数字か、パッと答えられる人は少ないはずです。
この記事ではARABIC関数を使って、ローマ数字を一発でアラビア数字に変換する方法を解説します。エラー対処法や実務での活用パターンもまとめたので、ぜひ最後まで読んでみてください。
ARABIC関数とは
読み方と基本の役割
ARABIC関数の読み方は「アラビック関数」です。「アラビア数字の」という意味の英語がそのまま関数名になっています。
この関数は、ローマ数字の文字列をアラビア数字(普段使っている1, 2, 3のような数値)に変換します。Excel 2013で追加された関数で、Microsoft 365にも対応しています。
たとえば「XIV」を渡すと14が返ってきます。手動で変換ルールを計算する必要がなくなりますよ。
ROMAN関数との関係(逆変換ペア)
ARABIC関数には対になるROMAN関数があります。ROMAN関数はアラビア数字をローマ数字に変換する関数です。
つまり2つの関数は「逆変換ペア」の関係です。
- ARABIC関数: ローマ数字 → アラビア数字(文字列を数値に変換)
- ROMAN関数: アラビア数字 → ローマ数字(数値を文字列に変換)
3999以内の値であれば、=ARABIC(ROMAN(100))のように組み合わせると元の値に戻ります。覚えておくと便利ですよ。
ARABIC関数の書式と引数
基本構文
=ARABIC(文字列)
引数は1つだけのシンプルな関数です。
引数「文字列」の指定方法
| 引数 | 必須/任意 | 型 | 説明 |
|---|---|---|---|
| 文字列 | 必須 | 文字列 | ローマ数字の文字列、またはローマ数字が入ったセル参照 |
指定方法は3つあります。
- 直接入力:
=ARABIC("XIV")のようにダブルクォーテーションで囲む - セル参照:
=ARABIC(A1)のようにセルを指定する - 他の関数の結果:
=ARABIC(ROMAN(100))のように関数を組み合わせる
大文字・小文字は区別されない
ARABIC関数はケースインセンシティブ(大文字・小文字を区別しない)です。以下はすべて同じ結果の14を返します。
=ARABIC("XIV") → 14
=ARABIC("xiv") → 14
=ARABIC("Xiv") → 14
データに大文字・小文字が混在していても、変換前にわざわざ揃える必要はありません。そのまま使えるのがうれしいポイントですね。
ARABIC関数の使い方(基本例)
ローマ数字を直接入力して変換する
もっともシンプルな使い方です。引数にローマ数字を直接書きます。
=ARABIC("I") → 1
=ARABIC("V") → 5
=ARABIC("X") → 10
=ARABIC("L") → 50
=ARABIC("C") → 100
=ARABIC("D") → 500
=ARABIC("M") → 1000
=ARABIC("MCMXCIX") → 1999
ローマ数字の基本7文字と、それを組み合わせた文字列をそのまま変換できます。「IIII」のような非標準の書き方も4として認識されますよ。
セル参照でリスト一括変換する
実務では、セルに入ったローマ数字をまとめて変換するケースが多いです。
たとえばA列にローマ数字が入っている場合、B1セルに次のように入力します。
=ARABIC(A1)
あとはB1をコピーして下方向に貼り付ければ、リスト全体を一括で変換できます。前後にスペースが入っていても自動的に無視されるので、データのクリーニングは不要です。
負のローマ数字を変換する
ARABIC関数は負の値にも対応しています。ローマ数字の先頭にマイナス記号を付けると、負の数値を返します。
=ARABIC("-X") → -10
=ARABIC("-MMXI") → -2011
ROMAN関数(アラビア数字→ローマ数字)は負数に対応していないので、この点はARABIC関数だけの特徴です。
実務での活用シナリオ3選
シナリオ1:ローマ数字入りの商品番号を集計する
商品番号に「MODEL-III」「MODEL-VII」のようなローマ数字が含まれているケースを考えます。ローマ数字部分を数値に変換すれば、集計や並び替えが簡単になります。
A列に商品番号、B列にローマ数字部分が入っていると仮定します。
=ARABIC(B1)
B1が「III」なら3、「VII」なら7が返ります。この数値を使ってSUM関数やSORT機能で集計・並び替えができますよ。
もしローマ数字部分だけを取り出す必要があれば、SUBSTITUTE関数やMID関数と組み合わせます。SUBSTITUTE関数は文字列を置換する関数、MID関数は文字列の途中を取り出す関数です。
シナリオ2:四半期表記(Q-I〜Q-IV)を数値化して並び替える
レポートで「Q-I」「Q-II」「Q-III」「Q-IV」のような四半期表記を使うことがあります。このままではExcelは正しく並び替えできません。
A列に四半期表記が入っている場合、次の数式でローマ数字部分を取り出して変換します。
=ARABIC(MID(A1,3,LEN(A1)-2))
この数式のポイントは次のとおりです。
- MID関数(文字列の指定位置から取り出す関数)で3文字目以降を抽出
- LEN関数(文字数を数える関数)で全体の文字数を取得
- ARABIC関数で抽出したローマ数字を数値に変換
結果は1〜4の数値になるので、並び替えやグラフの軸に使えます。
シナリオ3:ARABIC+ROMANで表記を統一する
データに「IIII」(非標準)と「IV」(標準)が混在している場合、表記を統一できます。
=ROMAN(ARABIC(A1))
ARABIC関数で一度数値に変換し、ROMAN関数で標準形式のローマ数字に戻します。「IIII」も「IV」もどちらも4になり、ROMAN関数が「IV」として返してくれます。
データの見た目を揃えたいときに試してみてください。
ARABIC関数のエラーと対処法
#VALUE!が出る主な原因
ARABIC関数で#VALUE!エラーが出るのは、引数がローマ数字として認識できない場合です。主な原因は3つあります。
| 原因 | 入力例 | 説明 |
|---|---|---|
| ローマ数字以外の文字を含む | =ARABIC("ABC") | A・B・Cはローマ数字の文字ではない |
| 数値を直接渡した | =ARABIC(14) | 数値型は文字列型ではないのでエラー |
| 日付や記号を渡した | =ARABIC("2024/1/1") | ローマ数字として解釈できない |
数値を直接渡してエラーになるケースは意外と多いです。=ARABIC(14)ではなく=ARABIC("XIV")のように、必ず文字列で渡しましょう。
セルに入っている値が数値なのか文字列なのかわからない場合は、TYPE関数(データの型を調べる関数)で確認できます。エラーの詳細はExcelのエラー値一覧も参考にしてみてください。
空文字・空白セルを指定したときの挙動
空文字列""を渡した場合、ARABIC関数はエラーにならず0を返します。
=ARABIC("") → 0
空白セルを参照した場合も同様に0が返ります。「0が入っていると困る」という場合は、IF関数で分岐させましょう。
=IF(A1="","",ARABIC(A1))
これでA1が空白のときは空白、値があるときだけ変換を実行します。
ROMAN関数との比較・使い分け
ARABIC関数とROMAN関数は逆変換の関係ですが、仕様には非対称な部分があります。
| 比較項目 | ARABIC関数 | ROMAN関数 |
|---|---|---|
| 変換方向 | ローマ数字 → 数値 | 数値 → ローマ数字 |
| 構文 | =ARABIC(文字列) | =ROMAN(数値, [書式]) |
| 入力の型 | 文字列 | 数値 |
| 出力の型 | 数値 | 文字列 |
| 対応範囲 | 最大255,000(理論値) | 1〜3999のみ |
| 負の値 | 対応("-XIV" → -14) | 非対応(#VALUE!) |
| 書式指定 | なし | あり(0〜4で正式〜略式を選択) |
| 対応バージョン | Excel 2013以降 | 全バージョン |
覚えておきたいポイントは次の3つです。
- ROMAN関数は3999までしか変換できないが、ARABIC関数は255,000まで対応する
- 負の値はARABIC関数だけが対応している
- 3999以内なら
=ARABIC(ROMAN(n))で元の値に戻る完全互換になる
「ローマ数字を数値に直したい」ならARABIC関数。「数値をローマ数字で表示したい」ならROMAN関数です。この使い分けを覚えておけば迷いませんよ。
まとめ
この記事では、ExcelのARABIC関数でローマ数字をアラビア数字に変換する方法を解説しました。
- ARABIC関数の構文は
=ARABIC(文字列)で引数は1つだけ - 大文字・小文字を区別せず、前後のスペースも自動で無視する
- 負のローマ数字にも対応している
- 空文字列は0を返し、無効な文字列は#VALUE!エラーになる
- ペア関数のROMAN関数と組み合わせれば表記の統一もできる
四半期表記の数値化や商品番号の集計など、実務で活躍する場面は意外と多いです。ぜひ使ってみてください。
関数一覧
各関数の解説記事へは下記のリンクからアクセスできます。
