スプレッドシートで「XIV」や「MMXI」といったローマ数字が混ざったデータを見て、困ったことはありませんか。手作業で1つずつ数字に置き換えるのは大変ですし、件数が多いとミスも起きやすいですよね。
そんなときに役立つのが、Googleスプレッドシートの ARABIC関数 です。ローマ数字の文字列を渡すだけで、対応するアラビア数字(普通の数字)に一発変換してくれます。
この記事では、スプレッドシートのARABIC関数の基本的な書き方から、ローマ数字の対応表、負の値・非標準ローマ数字・空文字列など知っておきたい変換パターン、#VALUE!エラーの対処法、ROMAN関数との組み合わせまで、実務で使える形で丁寧に解説します。
ARABIC関数とは?基本の書き方
ARABIC関数は「アラビック」と読みます。英語の “Arabic numeral”(アラビア数字)が語源で、ローマ数字をアラビア数字に変換することを表します。
Googleスプレッドシートでローマ数字の文字列をアラビア数字(通常の数値)に変換するための関数です。たとえば「XIV」を渡せば14、「MMXI」を渡せば2011が返ってきます。
スプレッドシートのROMAN関数の逆変換にあたる関数で、両者をペアで覚えておくとローマ数字とアラビア数字を相互変換する場面で非常に便利です。Excelでも同じ仕様で利用できるので、Excelとスプレッドシートを行き来する環境でも安心して使えます。
構文と引数の説明
ARABIC関数の構文はとてもシンプルです。
=ARABIC(roman_numeral)
引数は1つだけです。変換したいローマ数字の文字列、またはローマ数字が入力されたセルの参照を指定します。
| 引数 | 内容 | 例 |
|---|---|---|
| roman_numeral | ローマ数字の文字列、またはセル参照 | “XIV” / A2 |
公式ドキュメントによると、入力範囲は 1〜3999 が標準です。ただし引数の最大文字数は255文字まで受け付けるため、理論上は最大255,000(M×255)まで処理できます。
ローマ数字の基本記号一覧
ARABIC関数を使いこなすには、ローマ数字の基本ルールを押さえておくと安心です。ローマ数字は7つの文字を組み合わせて数を表します。
| ローマ数字 | アラビア数字 |
|---|---|
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
組み合わせのルールは、大きい数字の右側に小さい数字を並べると加算(VI = 6)、左側に並べると減算(IV = 4)になります。よく使う数の対応は次のとおりです。
| 数値 | ローマ数字 | 数値 | ローマ数字 |
|---|---|---|---|
| 4 | IV | 90 | XC |
| 9 | IX | 400 | CD |
| 40 | XL | 900 | CM |
| 50 | L | 1000 | M |
ARABIC関数はこれらの組み合わせを正しく解釈してアラビア数字に変換します。
ROMAN関数との違い(逆変換ペア)
ARABIC関数はROMAN関数の逆変換にあたります。両者の関係を整理しておきましょう。
| 関数 | 入力 | 出力 | 対応範囲 |
|---|---|---|---|
| ROMAN | アラビア数字 | ローマ数字 | 1〜3999 |
| ARABIC | ローマ数字 | アラビア数字 | 実質1〜255,000 |
ROMANは1〜3999の範囲しか変換できませんが、ARABICはより広い範囲を扱えます。範囲が非対称な点は覚えておくと安心です。
ROMAN関数の詳しい使い方はスプレッドシートのROMAN関数の使い方|ローマ数字変換で解説しています。
ARABIC関数の基本的な使い方
ここからは実際にスプレッドシートでARABIC関数を使う方法を、2つのパターンに分けて見ていきます。
セルに直接ローマ数字を指定する
まずは関数の中に直接ローマ数字を書く方法です。文字列はダブルクォーテーションで囲む必要があります。
=ARABIC("XIV") → 14
=ARABIC("MMXI") → 2011
=ARABIC("LVIII") → 58
!_images/spreadsheet-arabic-function/02_formula_arabic-basic.png
シンプルですが、関数の動作確認やちょっとした変換にはこの書き方が手軽です。
セル参照で一覧を一括変換する

実務でよく使うのは、ローマ数字が並んだ列を一括で変換するパターンです。たとえばA列にローマ数字が入っているとします。
=ARABIC(A2)
セル参照を渡してフィルハンドルで下方向にコピーすれば、列全体のローマ数字をアラビア数字に変換できます。
| A列(ローマ数字) | B列(=ARABIC(A2)) |
|---|---|
| I | 1 |
| IV | 4 |
| IX | 9 |
| XIV | 14 |
| MMXXIV | 2024 |
!_images/spreadsheet-arabic-function/03_result_arabic-basic.png
ARRAYFORMULA関数と組み合わせれば、1つの式で範囲全体を一気に変換することも可能です。
=ARRAYFORMULA(IF(A2:A="","",ARABIC(A2:A)))
空セルを除外する条件を入れておくと、リストの末尾が伸びても安全に動きます。
知っておきたい変換パターン一覧
ARABIC関数には、知っておくと便利な「ちょっと特殊な挙動」がいくつかあります。ここでは主なポイントを整理しました。
| パターン | 入力例 | 結果 | 備考 |
|---|---|---|---|
| 負の値 | “-XIV” | -14 | 先頭にマイナスを付ける |
| 非標準表記 | “IIII” | 4 | 通常はIVだが受け付ける |
| 空文字列 | “” | 0 | エラーにならない |
| 大文字小文字混在 | “xiv” | 14 | 区別なし |
| 前後スペース | ” XIV “ | 14 | 自動で無視される |
負の値(例: -XIV = -14)の扱い
ARABIC関数は、ローマ数字の先頭にマイナス符号を付けると負の数として変換します。
=ARABIC("-XIV") → -14
=ARABIC("-MMXI") → -2011
会計データなどで貸方・借方をローマ数字で表記している場合に役立ちます。
非標準ローマ数字(例: IIII = 4)の扱い
正統な記法では4は「IV」と書きますが、時計の文字盤などでは「IIII」と表記されることもあります。ARABIC関数はこのような非標準表記も受け付けます。
=ARABIC("IIII") → 4
=ARABIC("VIIII") → 9
ただしVが2つ並ぶ「VV」のような明らかに不正な並びは#VALUE!になります。
空文字列(”” = 0)の扱い
空文字列を渡したときは、エラーではなく0が返ります。
=ARABIC("") → 0
リスト中に空セルが混ざっていてもARABIC自体はエラーを出しませんが、結果として0が並ぶと集計時に意味が変わってしまいます。前述のARRAYFORMULA例のようにIFで空チェックを入れるのが安全です。
使うときに気をつけたいポイント
ARABIC関数を実務で安心して使うために、覚えておきたい注意点をまとめておきます。
- 数値を直接渡すとエラー:
=ARABIC(14)のように数値を渡すと#VALUE!になります。ARABICはあくまで「文字列を数値に変換する」関数です - 全角ローマ数字は読めない: 「Ⅰ Ⅱ Ⅲ」のような環境依存文字は受け付けません。半角アルファベットのI・V・X・L・C・D・Mのみ有効です
- 数値型として返る: 戻り値は数値なのでそのまま四則演算やSUMなどの集計関数に渡せます
- セルの書式は引き継がれない: 元セルの色や太字などは引き継がれず、純粋な数値が返るだけです
特に「数値の直接入力で#VALUE!になる」点は、=ARABIC(A2)の参照先が数値セルだった場合にも起こりやすいので覚えておきましょう。
実務シナリオ:ROMAN関数と組み合わせた表記統一
ARABIC関数は、ROMAN関数と組み合わせると「表記の統一」に強力な威力を発揮します。
ローマ数字→アラビア数字の書式統一バッチ処理
たとえば、複数の担当者がバラバラの形式で入力した「章番号」リストがあるとします。
| 元データ | 形式 |
|---|---|
| 第I章 | ローマ数字 |
| 第2章 | アラビア数字 |
| 第III章 | ローマ数字 |
このように混在しているデータをすべて「アラビア数字」に統一したい場合、ARABIC関数とIFERROR関数、REGEXEXTRACT関数を組み合わせます。
=IFERROR(ARABIC(REGEXEXTRACT(A2,"第([IVXLCDM]+)章")),REGEXEXTRACT(A2,"第(d+)章"))
ローマ数字を抽出してARABICに渡し、失敗した場合はアラビア数字を直接抽出する流れです。
逆に「アラビア数字に統一したものを再度ローマ数字に揃え直す」場合はROMAN関数を使います。
=ROMAN(B2)
ARABIC ⇄ ROMANの往復で、データのクレンジングと表記の再統一を自由に行えます。さらに桁区切りや前後の文字を付けたい場合はTEXT関数を重ねれば、見た目の整形まで一気通貫で済みます。
#VALUE!エラーの原因と対処法
ARABIC関数で発生するエラーは基本的に#VALUE!の1種類です。原因を把握しておけば対処は難しくありません。
エラーが出るパターン一覧
主な#VALUE!発生条件を整理しました。
| 入力 | 結果 | 原因 |
|---|---|---|
=ARABIC("ABC") | #VALUE! | ローマ数字として無効な文字 |
=ARABIC(14) | #VALUE! | 数値の直接入力(文字列でない) |
=ARABIC("Ⅰ") | #VALUE! | 環境依存文字(全角ローマ数字) |
=ARABIC("VV") | #VALUE! | 規則違反のローマ数字並び |

数値を直接渡すとエラーになる点は見落としやすいので注意しましょう。数値をそのまま扱いたい場面ではARABIC関数は不要です。ROMAN関数の入力側に渡す形を検討してください。
数値が文字列として保存されているケースでは、先にVALUE関数で数値化するなど、入力データの型を整えてから処理するとトラブルを防げます。
環境依存文字に注意
もっとも陥りやすいのが、全角の環境依存ローマ数字を入力してしまうケースです。
=ARABIC("Ⅰ") → #VALUE! エラー(全角ローマ数字)
=ARABIC("I") → 1(半角アルファベットI)
見た目はそっくりですが、Ⅰ(全角)とI(半角アルファベット)は別の文字です。ARABIC関数が正しく解釈できるのは半角アルファベットの I、V、X、L、C、D、M のみです。
外部からコピーしてきたデータが#VALUE!になる場合は、まず文字種を疑ってください。SUBSTITUTE関数で全角から半角に置換しておくと解決します。
=ARABIC(SUBSTITUTE(SUBSTITUTE(A2,"Ⅰ","I"),"Ⅴ","V"))
全角ローマ数字が大量に混在する場合は、Ⅰ〜Ⅻまでをまとめて置換するか、ASCII変換系のスクリプトを併用すると効率的です。
ARABIC関数のよくある質問
Q. ARABIC関数で対応できる最大の数値はいくつですか?
公式の標準範囲は1〜3999ですが、ARABIC関数自体は引数を255文字まで受け付けるため、理論上は最大255,000(M×255)まで処理できます。ただし実務でこの上限まで使うことはほぼなく、3999までを基本範囲として扱っておけば十分です。ROMAN関数側が3999までしか対応しないため、ROMANと往復で使う場面ではこの範囲に収めておきましょう。
Q. 全角ローマ数字(Ⅰ Ⅱ Ⅲ)は変換できますか?
そのままでは#VALUE!エラーになります。Ⅰ〜Ⅻなどの全角ローマ数字は環境依存文字で、ARABIC関数は半角アルファベット(I・V・X・L・C・D・M)のみを認識します。SUBSTITUTE関数で半角に置換してからARABICに渡すか、Google Apps ScriptでString.prototype.normalize("NFKC")を使ってNFKC正規化する方法もあります。
Q. ARABIC関数とROMAN関数の対応範囲が違うのはなぜですか?
ROMAN関数は古典的なローマ数字の表記ルールに従って 3999まで しか対応しません。これは「4000以上を表すには上線(バー)付きの記号など特殊表記が必要」という歴史的事情によるものです。一方ARABIC関数は入力文字列を機械的に解釈するため、長い「M」の連続も計算できます。実用上は両者の往復が成立する1〜3999の範囲で運用するのが安全です。
まとめ
スプレッドシートのARABIC関数について、基本の書き方から実務での活用、エラー対処までを解説しました。最後にポイントを整理します。
- 構文は
=ARABIC(roman_numeral)の引数1つだけ - 標準対応範囲は1〜3999、理論上は最大255,000まで
- セル参照やARRAYFORMULAで一括変換できる
- 負の値(-XIV)、非標準表記(IIII)、空文字列(””=0)にも対応
- 大文字小文字の区別なし、前後スペースは自動で無視
- エラーは
#VALUE!のみ。原因の多くは環境依存文字か数値の直接入力 - ROMAN関数とペアで使えば、表記統一のバッチ処理に活用できる
ローマ数字とアラビア数字の往復変換は、ARABIC関数とROMAN関数のペアを覚えておくだけで作業効率が大きく変わります。逆変換にあたるROMAN関数の使い方はスプレッドシートのROMAN関数の使い方|ローマ数字変換で詳しく解説しているので、合わせてチェックしてみてください。
Excel版のARABIC関数の使い方を確認したい方はExcelのARABIC関数|ローマ数字を数値に変換する使い方も参考になります。
