スプレッドシートのARABIC関数の使い方|ローマ数字を数値に変換

スポンサーリンク

スプレッドシートで「XIV」や「MMXI」といったローマ数字が混ざったデータを見て、困ったことはありませんか。手作業で1つずつ数字に置き換えるのは大変ですし、件数が多いとミスも起きやすいですよね。

そんなときに役立つのが、Googleスプレッドシートの ARABIC関数 です。ローマ数字の文字列を渡すだけで、対応するアラビア数字(普通の数字)に一発変換してくれます。

この記事では、スプレッドシートのARABIC関数の基本的な書き方から、負の値・非標準ローマ数字・空文字列など知っておきたい変換パターン、#VALUE!エラーの対処法、ROMAN関数との組み合わせまで、実務で使える形で丁寧に解説します。

ARABIC関数とは?基本の書き方

ARABIC関数は「アラビック」と読みます。英語の “Arabic numeral”(アラビア数字)が語源で、ローマ数字をアラビア数字に変換することを表します。

Googleスプレッドシートでローマ数字の文字列をアラビア数字(通常の数値)に変換するための関数です。たとえば「XIV」を渡せば14、「MMXI」を渡せば2011が返ってきます。

ROMAN関数の逆変換にあたる関数で、両者をペアで覚えておくとローマ数字とアラビア数字を相互変換する場面で非常に便利です。Excel 2013以降にも搭載されていますが、Googleスプレッドシートでも同じ仕様で利用できます。

構文と引数の説明

ARABIC関数の構文はとてもシンプルです。

=ARABIC(roman_numeral)

引数は1つだけです。変換したいローマ数字の文字列、またはローマ数字が入力されたセルの参照を指定します。

引数内容
roman_numeralローマ数字の文字列、またはセル参照“XIV” / A2

公式ドキュメントによると、入力範囲は 1〜3999 が標準です。ただし引数の最大文字数は255文字まで受け付けるため、理論上は最大255,000(M×255)まで処理できます。

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

シンプルですが、関数の動作確認やちょっとした変換にはこの書き方が手軽です。

セル参照で一覧を一括変換する

実務でよく使うのは、ローマ数字が並んだ列を一括で変換するパターンです。たとえばA列にローマ数字が入っているとします。

=ARABIC(A2)

セル参照を渡してフィルハンドルで下方向にコピーすれば、列全体のローマ数字をアラビア数字に変換できます。

A列(ローマ数字)B列(=ARABIC(A2))
I1
IV4
IX9
XIV14
MMXXIV2024

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で空チェックを入れるのが安全です。

実務シナリオ:ROMAN関数と組み合わせた表記統一

ARABIC関数は、ROMAN関数と組み合わせると「表記の統一」に強力な威力を発揮します。

ローマ数字→アラビア数字の書式統一バッチ処理

たとえば、複数の担当者がバラバラの形式で入力した「章番号」リストがあるとします。

元データ形式
第I章ローマ数字
第2章アラビア数字
第III章ローマ数字

このように混在しているデータをすべて「アラビア数字」に統一したい場合、ARABIC関数とIFERROR、REGEXEXTRACTを組み合わせます。

=IFERROR(ARABIC(REGEXEXTRACT(A2,"第([IVXLCDM]+)章")),REGEXEXTRACT(A2,"第(d+)章"))

ローマ数字を抽出してARABICに渡し、失敗した場合はアラビア数字を直接抽出する流れです。

逆に「アラビア数字に統一したものを再度ローマ数字に揃え直す」場合はROMAN関数を使います。

=ROMAN(B2)

ARABIC ⇄ ROMANの往復で、データのクレンジングと表記の再統一を自由に行えます。

#VALUE!エラーの原因と対処法

ARABIC関数で発生するエラーは基本的に#VALUE!の1種類です。原因を把握しておけば対処は難しくありません。

エラーが出るパターン一覧

主な#VALUE!発生条件を整理しました。

入力結果原因
=ARABIC("ABC")#VALUE!ローマ数字として無効な文字
=ARABIC(14)#VALUE!数値の直接入力(文字列でない)
=ARABIC("Ⅰ")#VALUE!環境依存文字(全角ローマ数字)
=ARABIC("VV")#VALUE!規則違反のローマ数字並び

数値を直接渡すとエラーになる点は見落としやすいので注意しましょう。数値をそのまま扱いたい場面ではARABIC関数は不要です。ROMAN関数の入力側に渡す形を検討してください。

環境依存文字に注意

もっとも陥りやすいのが、全角の環境依存ローマ数字を入力してしまうケースです。

=ARABIC("Ⅰ")   → #VALUE! エラー(全角ローマ数字)
=ARABIC("I")    → 1(半角アルファベットI)

見た目はそっくりですが、(全角)とI(半角アルファベット)は別の文字です。ARABIC関数が正しく解釈できるのは半角アルファベットの I、V、X、L、C、D、M のみです。

外部からコピーしてきたデータが#VALUE!になる場合は、まず文字種を疑ってください。SUBSTITUTE関数で全角から半角に置換しておくと解決します。

=ARABIC(SUBSTITUTE(SUBSTITUTE(A2,"Ⅰ","I"),"Ⅴ","V"))

まとめ

スプレッドシートのARABIC関数について、基本の書き方から実務での活用、エラー対処までを解説しました。最後にポイントを整理します。

  • 構文は =ARABIC(roman_numeral) の引数1つだけ
  • セル参照やARRAYFORMULAで一括変換できる
  • 負の値(-XIV)、非標準表記(IIII)、空文字列(””=0)にも対応
  • 大文字小文字の区別なし、前後スペースは自動で無視
  • エラーは#VALUE!のみ。原因の多くは環境依存文字か数値の直接入力
  • ROMAN関数とペアで使えば、表記統一のバッチ処理に活用できる

ローマ数字とアラビア数字の往復変換は、ARABIC関数とROMAN関数のペアを覚えておくだけで作業効率が大きく変わります。逆変換にあたるROMAN関数の使い方はスプレッドシートのROMAN関数の使い方|ローマ数字変換で詳しく解説しているので、合わせてチェックしてみてください。

Excel版のARABIC関数の使い方を確認したい方はExcelのARABIC関数|ローマ数字を数値に変換する使い方も参考になります。

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