ROMAN function

ROMAN converts a numeric value between 1 and 3999 to a text string representing that number in Roman numerals.

=ROMAN(number, [form])

Generate a ROMAN formula

Describe what you need. The generator will reach for ROMAN where ROMAN is the right tool, and tell you when it is not.

How to get a better answer
  • Name your columns by letter and by header: "column F (Net Value)" beats "the amount column".
  • State every condition, including the negatives — "not cancelled" changes the formula's shape.
  • Say where the data starts if it is not row 1, and whether it will grow.
  • Check the settings above match your spreadsheet: the wrong argument separator is a syntax error on your machine.

Arguments

How ROMAN reads its arguments
numberrequiredformoptionalROMAN
ArgumentRequiredDescription
numberRequiredA number from 1 to 3999; must be numeric or a reference to a cell containing a number. Returns #NUM! if outside this range.
formOptionalOptional. 0 or FALSE (default) for subtractive style; 1 or TRUE for simplified style. Omit for standard Roman numerals.

Returns

A text string in Roman numeral format (e.g., "III", "IV", "XII").

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Rank properties by market speed and label with Roman numerals

AddressBedsBathsList PriceDays on MarketSpeed Rank
123 Oak St32$425,00015II
456 Maple Ave21$350,00028IV
789 Pine Rd43$575,0008I
321 Elm Court32.5$465,00022III
654 Birch Ln21.5$310,00035V
=ROMAN(RANK(E2,$E$2:$E$6,1))

Result: II

RANK assigns 1 to the fastest-selling property (8 days), 2 to the next fastest (15 days), and so on. ROMAN then converts that ranking to Roman numerals, so rank 2 becomes II. This creates a quick visual label for market competitiveness without showing the actual days, making it easy to scan which properties sold fastest.

2. Label properties by bedroom count using Roman numerals

AddressBedsBathsList PriceDays on Market
123 Oak St32$425,00015
456 Maple Ave21$350,00028
789 Pine Rd43$575,0008
321 Elm Court32.5$465,00022
654 Birch Ln21.5$310,00035
=ROMAN(B2)

Result: III

When column B contains 3 (bedrooms), ROMAN(3) returns "III". A 4-bedroom property returns "IV"; a 2-bedroom returns "II". This is useful for creating formatted property descriptions in marketing copy ("III Bed, II Bath Estate") or stylized comparison charts that highlight property features at a glance.

3. Create a price tier indicator using Roman numerals

AddressBedsBathsList PriceDays on MarketPrice Tier
123 Oak St3242500015III
456 Maple Ave2135000028III
789 Pine Rd435750008IV
321 Elm Court32.546500022III
654 Birch Ln21.531000035II
=ROMAN(ROUNDUP(D2/150000,0))

Result: III

This formula divides the list price by $150,000 and rounds up to create tiers (1-4), then converts to Roman numerals. A $425,000 property yields tier 3 (III), a $310,000 property yields tier 2 (II), and a $575,000 property yields tier 4 (IV). This provides a quick visual way to scan price ranges in regional markets without displaying exact prices on a shared listing sheet.

Common errors

Which ROMAN error are you seeing?
ROMAN returned an error#NUM!
Ensure the number is between 1 and 3999 inclusive. If using a derived value (like RANK or ROUNDUP), verify the result falls within bounds. For large numbers like prices, divide by a large enough factor (e.g., divide price by 150,000) so the result stays under 4000.
#VALUE!
Ensure the number argument is purely numeric. If pulling from a cell, verify it contains only the number (no text or units). Use VALUE() to convert text to a number if needed, e.g., =ROMAN(VALUE(SUBSTITUTE(B2," bedrooms","")).
#REF!
Verify that all ranges in the formula are correct and the referenced cells or sheets exist. Use Find & Replace (Ctrl+H / Cmd+H) to locate and fix broken references, or rebuild the formula with the correct cell addresses and sheet names.
ErrorWhy it happensHow to fix it
#NUM!The number argument is outside the valid range of 1–3999. For example, =ROMAN(0), =ROMAN(-5), or =ROMAN(4000) all produce #NUM! because Roman numerals have no representation for zero, negative numbers, or values exceeding 3999.Ensure the number is between 1 and 3999 inclusive. If using a derived value (like RANK or ROUNDUP), verify the result falls within bounds. For large numbers like prices, divide by a large enough factor (e.g., divide price by 150,000) so the result stays under 4000.
#VALUE!The number argument is text or references a cell containing text instead of a numeric value. For example, =ROMAN("ABC") or =ROMAN(B2) when B2 contains "3 bedrooms" (not just the number 3). If the form parameter is supplied, it must also be numeric (not text like "true").Ensure the number argument is purely numeric. If pulling from a cell, verify it contains only the number (no text or units). Use VALUE() to convert text to a number if needed, e.g., =ROMAN(VALUE(SUBSTITUTE(B2," bedrooms","")).
#REF!A cell reference in the formula points to a cell or range that no longer exists or is invalid. For example, if you use =ROMAN(RANK(E2,$E$2:$E$6,1)) but delete rows 5–6, the range $E$2:$E$6 becomes invalid. Broken references can also occur from incorrect sheet references.Verify that all ranges in the formula are correct and the referenced cells or sheets exist. Use Find & Replace (Ctrl+H / Cmd+H) to locate and fix broken references, or rebuild the formula with the correct cell addresses and sheet names.

Tips and when to use something else

  • ROMAN is useful for stylized labels and rankings, but keep actual calculations in numbers. Use ROMAN only at the display stage, not in the middle of formulas.
  • ROMAN returns text, not a number. If you need math on the result, keep calculations in numeric form and convert only for final display. For instance, compute RANK first, then convert only the final rank to Roman.
  • The form parameter rarely matters in practice; leave it omitted or set to 0 for standard subtractive style (IV for 4, IX for 9). Set form=1 only if a design requirement specifically calls for the simplified notation.
  • For conversions beyond numerals (e.g., numbers to words, or large numbers), consider TEXT() function which offers more flexible formatting options and can handle larger numbers with custom patterns.

Frequently asked questions

Can ROMAN convert numbers larger than 3999?
No. ROMAN only works with integers from 1 to 3999 and returns #NUM! for any value outside this range. If you need to represent larger numbers in a label, divide them down (e.g., divide by 1000 or 10000) or use TEXT() for more flexible formatting.
Is the output from ROMAN a number or text?
ROMAN returns text ("III", "IV", etc.), not a numeric value. If you need the output for calculations, convert it back using VALUE(), but that's rarely useful. For most purposes, perform all mathematics first, then call ROMAN only on the final result for display.
What does the form parameter actually change?
The form parameter controls the typographic style of Roman numerals. Form=0 (default) uses subtractive notation (4=IV, 9=IX, 40=XL). Form=1 uses simplified notation (4=IIII, 9=VIIII, 40=XXXX). Most users leave form blank and never notice the difference; only change it if a specific design or academic style guide requires simplified notation.
When should I use ROMAN instead of just typing the Roman numeral directly?
Use ROMAN when the number changes based on data or formulas—for example, auto-generating "I", "II", "III" rankings that update when data changes. If the Roman numeral is static and never changes, typing it directly is simpler. ROMAN is valuable in dashboards and dynamic listings where rankings or labels recalculate automatically.

Need a different formula?

The full generator is not scoped to one function — describe any spreadsheet problem and it will pick.

Open the formula generator

Reviewed 2026-09-17