ROMAN Function: Convert Numbers to Roman Numerals (Fun & Practical)

Learn how to use Excel's ROMAN function to convert numbers to Roman numerals. Covers all 5 form styles, chapter labels, self-updating year formulas, ARABIC for reverse conversion, and 8 practical examples.
Chapter headings, legal sections, Super Bowl editions, and copyright years all use Roman numerals. Writing them manually for large numbers like MMXXVI is slow and error-prone. Excel’s ROMAN function converts any integer from 1 to 3999 into its Roman numeral equivalent instantly. It also offers five notation levels — from strict classical (CDXCIX) to simplified (ID) — and pairs with the ARABIC function to convert back for calculations. This guide covers 8 practical examples including chapter labels, self-updating copyright years, lowercase preface numbering, sequential outlines with ROW, event edition labels, and everything you need to know about the form argument.

Chapter headings, legal section numbers, Super Bowl editions, copyright years — all of these use Roman numerals. Writing them manually is slow and error-prone, especially for large numbers like MMXXVI. The ROMAN function converts any integer from 1 to 3999 into its Roman numeral equivalent in one formula. It also offers five levels of simplification, from strict classical notation to the most concise shortened forms.

Furthermore, ROMAN pairs with the ARABIC function to work in both directions. ARABIC converts Roman numerals back to numbers for calculations when needed. This guide covers the syntax, the form argument in full, and eight practical examples from document formatting to self-updating year labels.

Availability: ROMAN works in all Excel versions from Excel 2000 onwards, including Microsoft 365, Excel 2024, 2021, 2019, and 2016. It also works in Google Sheets and LibreOffice Calc with identical syntax.

What Is the ROMAN Function Syntax?

ROMAN takes two arguments — the number to convert and an optional form style.

=ROMAN(number, [form])
ArgumentRequired?What it does
numberRequiredA positive whole number between 1 and 3999. Decimals are truncated (not rounded). Zero, negative numbers, and numbers above 3999 all return #VALUE!. The result is always a text string.
formOptionalA number from 0 to 4 (or TRUE/FALSE) that controls the style of the Roman numeral. 0 (or FALSE) = classic notation. 4 (or TRUE) = most simplified. Higher values produce shorter, non-standard abbreviations. Defaults to 0 if omitted.

How Does the Form Argument Work?

The form argument selects the convention used for the output. Form 0 applies the strict classical system you see in textbooks. Forms 1 through 4 introduce progressive simplifications — non-standard shorthand forms that produce shorter strings. Most users need form 0 only. The simplified forms are mainly useful for decorative or space-constrained contexts.

FormStyle nameROMAN(499, form)ROMAN(1999, form)
0Classic (default)CDXCIXMCMXCIX
1Less formalLDVLIVMLMVLIV
2More conciseXDIXMXMIX
3ConciseVDIVMVMIV
4SimplifiedIDMIM

Notice how form 4 compresses 499 from six characters (CDXCIX) to two (ID). However, forms 1 through 4 use subtraction patterns that classical Roman numeral conventions do not recognise. Consequently, use form 0 for any document where the reader expects traditional notation.

Use form 0 for all formal documents: Forms 1–4 produce abbreviations that look like Roman numerals but do not follow the classical rules. "ID" for 499 is not a recognised form. Legal documents, academic papers, and official outlines should always use form 0 — or omit the argument entirely.

Quick Reference — Common Roman Numeral Conversions

The table below shows frequently needed values. Each appears exactly as ROMAN(number, 0) returns it.

ArabicRomanArabicRomanArabicRoman
1I 10X 100C
4IV 40XL 400CD
5V 50L 500D
9IX 90XC 900CM
2026MMXXVI 3999MMMCMXCIX 1000M

Examples 1–4: Core Conversion Patterns

1
Basic conversion — any number from 1 to 3999

The simplest use is passing a cell reference directly to ROMAN. The function converts the integer part of the number and returns a text string. Decimal values are truncated, not rounded — so 4.9 becomes 4 (IV), not 5 (V).

A — Number
B — ROMAN(A)
A — Number
B — ROMAN(A)
1
I
14
XIV
4
IV
50
L
9
IX
1000
M
12
XII
3999
MMMCMXCIX
Basic conversion — classic form (form 0 is the default): =ROMAN(A2) → "XIV" for 14, "MMMCMXCIX" for 3999 Explicit form 0 — same result, clearer intent for readers of the formula: =ROMAN(A2, 0) → identical to omitting the form argument Hardcoded number — useful for a single label in a report: =ROMAN(2026) → "MMXXVI" Decimal truncation — ROMAN ignores the decimal part: 4.9 → "IV" (not "V"). Use ROUND if needed. =ROMAN(ROUND(A2, 0)) → rounds before converting
2
Document chapter and section labels — "Chapter IV" style

Concatenating ROMAN with a text prefix creates formatted chapter or section labels automatically. The label updates whenever the source number changes, making it ideal for dynamically ordered documents where sections are renumbered frequently.

A — Number
B — Chapter label
C — Section label
1
Chapter I
§ I — Introduction
4
Chapter IV
§ IV — Methods
12
Chapter XII
§ XII — Conclusions
Chapter label — "Chapter " prefix with Roman numeral: "Chapter " & =ROMAN(A2) → "Chapter IV" for 4, "Chapter XII" for 12 Section number with title from column B: "§ " & =ROMAN(A2) & " — " & B2 → "§ IV — Methods" Outline heading — "I." style with period: Common in legal and academic outlines. =ROMAN(A2) & "." → "I." "II." "III." — for numbered list headings
3
Self-updating current year in Roman numerals

Nesting YEAR(TODAY()) inside ROMAN produces the current year as a Roman numeral. It updates automatically each time the workbook recalculates — ideal for copyright notices and report footers.

Current year as a Roman numeral — self-updating: TODAY() gives today's date. YEAR extracts the four-digit year. ROMAN converts it. Result in 2026: "MMXXVI". =ROMAN(YEAR(TODAY())) → "MMXXVI" in 2026 Copyright notice — combines text with the self-updating year: "© Copyright " & =ROMAN(YEAR(TODAY())) & " ExcelGuru.io" → "© Copyright MMXXVI ExcelGuru.io" Specific past year — for historical documents or anniversary labels: =ROMAN(YEAR(A2)) → Converts the year portion of a date cell to Roman numerals Film/broadcast production year style — combined with a title: Common format for film credits and broadcast programmes. B2 & " (" & =ROMAN(YEAR(A2)) & ")" → "The Grand Tour (MMXXVI)"
4
IFERROR guard — handle invalid inputs gracefully

ROMAN returns #VALUE! for zero, negative numbers, numbers above 3999, and non-numeric input. In shared workbooks or templates where users enter numbers directly, IFERROR prevents these errors from disrupting the layout.

Basic IFERROR guard — returns a blank instead of #VALUE!: Prevents the error from appearing in report cells. =IFERROR(=ROMAN(A2), "") Return a friendly message instead of a blank: Tells the user what went wrong without exposing the raw error. =IFERROR(=ROMAN(A2), "Enter 1–3999") IF guard — validate before converting: Checks the range before calling ROMAN, so no error even occurs. =IF(AND(A2>=1, A2<=3999, INT(A2)=A2), =ROMAN(A2), "Invalid — must be a whole number 1 to 3999") Handle the zero case separately — ROMAN(0) returns #VALUE!: Zero has no Roman representation, so treat it as a special case. =IF(A2=0, "—", =IFERROR(=ROMAN(A2), "N/A"))

Examples 5–8: Creative and Advanced Uses

Styling, Reversing, and Combining

5
Lowercase Roman numerals for preface pages and appendices

Academic and publishing conventions often use lowercase Roman numerals (i, ii, iii, iv) for front matter — prefaces, tables of contents, and acknowledgements. ROMAN always returns uppercase. Wrapping it in LOWER() converts the output to the lowercase style.

ROMAN always returns UPPERCASE. LOWER converts to lowercase. Useful for preface numbering, footnote markers, or appendix labels. =LOWER(=ROMAN(A2)) → "iv" for 4, "xii" for 12, "mmxxvi" for 2026 Page label for front matter — lowercase "Page iv" style: "Page " & =LOWER(=ROMAN(A2)) → "Page iv" Mixed-case label — "Appendix D.iv" style: Uppercase chapter letter, lowercase section number. "Appendix D." & =LOWER(=ROMAN(A2)) → "Appendix D.iv"
6
Sequential outline — auto-number a list with Roman numerals

Using the ROW function as the input to ROMAN generates sequential Roman numerals automatically — no manual numbering required. Consequently, inserting or deleting rows in a list renumbers all subsequent items instantly without any formula editing.

Auto-number the rows of a list with Roman numerals. ROW(A1) returns 1 in the first row, 2 in the second, and so on. Copy the formula down — it auto-adjusts the row reference. =ROMAN(ROW(A1)) → Row 1: "I" Row 2: "II" Row 3: "III" ... Start from a different number — add an offset: Starts numbering from V (5) if your list begins at item 5. =ROMAN(ROW(A1) + 4) → Row 1: "V" Row 2: "VI" Row 3: "VII" Numbered outline item — combines the number with the item text in column B: =ROMAN(ROW(A1)) & ". " & B2 → "I. Introduction" "II. Methodology" "III. Results"
ROW(A1) inside ROMAN is one of the most practical combinations in Excel. Insert a new row and every item below renumbers instantly. That takes minutes to fix manually — zero effort with this formula.
7
Reverse conversion — ARABIC converts Roman numerals back to numbers

ROMAN converts numbers to text. ARABIC reverses this — it converts a Roman numeral text string back to an Arabic number. This pairing is essential when you need to calculate with Roman numerals. Specifically, it helps with imported historical data or content where the format cannot be changed.

ARABIC is the reverse of ROMAN. It converts a Roman numeral string to a number you can calculate with. =ARABIC("XIV") → 14 =ARABIC("MMXXVI") → 2026 =ARABIC("MMMCMXCIX") → 3999 Use ARABIC on a cell reference containing Roman numeral text: A2 holds "XIV" as text. ARABIC converts it to 14 for calculations. =ARABIC(A2) → Returns the numeric value of the Roman numeral in A2 Sum a column of Roman numerals — SUMPRODUCT + ARABIC: Each Roman numeral in A2:A10 is converted to a number before summing. =SUMPRODUCT(ARABIC(A2:A10)) → Sums the numeric values of all Roman numerals in the range ← Ctrl+Shift+Enter in Excel 2019 and earlier if ARABIC isn't array-capable Round-trip verification — convert to Roman then back: Useful for confirming that a Roman numeral is correctly formed. =ARABIC(=ROMAN(A2)) = A2 → TRUE if the conversion is clean, FALSE if A2 had a decimal
8
Event and edition numbering — Super Bowls, Olympiads, anniversaries

Edition numbers for recurring events often use Roman numerals — Super Bowl LVIII, the Paris 2024 Olympiad, wedding anniversaries. ROMAN makes this trivially easy for any event table, producing the correct numeral for each edition without manual lookup or typing.

A2 holds the edition number (e.g. 60 for Super Bowl LX). B2 holds the event name ("Super Bowl"). C2 holds the year (2026). Edition label — "Super Bowl LX" style: B2 & " " & =ROMAN(A2) → "Super Bowl LX" Anniversary label with year: A2 = number of years (25), B2 = occasion ("Anniversary"). =ROMAN(A2) & " " & B2 → "XXV Anniversary" Olympic edition — Olympiad number with host year: The modern Olympics use ordinal numbers in Roman form for the edition. "The " & =ROMAN(A2) & " Olympiad — " & C2 → "The XXXIII Olympiad — 2024"

Common ROMAN Issues and How to Fix Them

#VALUE! — number is out of range or invalid

ROMAN returns #VALUE! for four reasons: the number is zero, the number is negative, the number exceeds 3999, or the input is text rather than a number. Check the source cell with ISNUMBER(A2) — if it returns FALSE, the cell holds text-formatted numbers. Use VALUE(A2) to convert before passing to ROMAN. Additionally, wrap the formula in IFERROR to prevent the error from appearing in the output cell.

Decimal numbers produce unexpected output

ROMAN truncates decimals without rounding. A value of 4.9 returns "IV" (4), not "V" (5). If the source data has decimals and you want the nearest whole number, wrap in ROUND before ROMAN: =ROMAN(ROUND(A2, 0)). Alternatively, use INT to always round down: =ROMAN(INT(A2)).

ROMAN result does not match expected classical notation

If the form argument is set to 1–4, the output uses non-classical abbreviations that look different from standard Roman numerals. For example, form 4 converts 499 to "ID" instead of "CDXCIX". Always use form 0 (or omit the argument) for conventionally correct output. Additionally, verify that the form argument cell does not contain a non-zero value from a previous formula.

ROMAN output is text — it cannot be used in calculations: =ROMAN(5) returns the text string "V", not the number 5. SUM, AVERAGE, and all numeric functions ignore it. If you need to perform arithmetic on Roman numeral values, use ARABIC() to convert them back to numbers first.

Frequently Asked Questions

  • What does the ROMAN function do in Excel?+
    ROMAN converts a positive whole number between 1 and 3999 into its Roman numeral equivalent as a text string. For example, =ROMAN(14) returns "XIV" and =ROMAN(2026) returns "MMXXVI". The result is always text — not a number — so it cannot be used in arithmetic directly. An optional form argument (0–4) controls the notation style, where 0 produces classical Roman numerals and 4 produces the most simplified version.
  • Why does ROMAN return #VALUE!?+
    ROMAN returns #VALUE! in four situations: the number is zero (Roman numerals have no zero), the number is negative, the number exceeds 3999, or the input is not a valid number. Wrap the formula in IFERROR to handle these gracefully: =IFERROR(ROMAN(A2), "Invalid"). Alternatively, use an IF guard to validate the range before converting: =IF(AND(A2>=1, A2<=3999), ROMAN(A2), "Enter 1–3999").
  • How do I convert Roman numerals back to numbers in Excel?+
    Use the ARABIC function — it is the exact reverse of ROMAN. =ARABIC("XIV") returns 14, and =ARABIC("MMXXVI") returns 2026. ARABIC also works on cell references: =ARABIC(A2) converts the Roman numeral text in A2 to a number. This is particularly useful when you need to sum or compare Roman numerals from imported historical data. ARABIC is available in Excel 2013 and later versions.

More Questions About ROMAN

  • How do I display Roman numerals in lowercase?+
    ROMAN always returns uppercase letters. Wrap the formula in LOWER() to convert the result to lowercase: =LOWER(ROMAN(A2)) returns "iv" for 4, "xii" for 12, and "mmxxvi" for 2026. Lowercase Roman numerals are conventional for book front matter — prefaces, acknowledgements, and tables of contents — where section numbers appear as i, ii, iii.
  • What is the highest number ROMAN can convert?+
    The maximum is 3999, which returns "MMMCMXCIX". This limit follows the traditional Roman numeral system, which has no standard symbol above M (1000) for larger quantities. Numbers above 3999 return #VALUE!. For values above 3999, a common workaround is to concatenate: display "MMMMCXLVII" for 4147 by dividing the number into thousands and remainder parts. However, this produces a non-standard result that most readers would not recognise as valid Roman notation.
  • When should I use the form argument?+
    In almost all practical cases, omit the form argument (or set it to 0) to get classical Roman numerals. Forms 1 through 4 produce progressive abbreviations that deviate from the standard notation — "ID" for 499 instead of "CDXCIX". These simplified forms are not widely recognised and should not be used in formal documents. The only reasonable use for forms 1–4 is in decorative or space-constrained contexts where the exact classical form is less important than brevity.