Как преобразовать римские цифры в арабские в Excel

Обновлено: 21.11.2024

Можете ли вы помочь мне составить формулу, которая преобразует (классические) римские цифры в числа? например:

MMMCCCLVII — 3357

римские цифры в ячейках a2:a20, формула в ячейках b2:b20

заранее спасибо!!

xlstime

Активный участник

попробуйте формулу ниже и перетащите

=ПОИСКПОЗ(A2,ИНДЕКС(ROMAN(СТРОКА(ДВССЫЛ("1:3999"))),0),0)

* 3999, потому что в Excel функция Roman поддерживается только до 3999.

Здравствуйте, эксперты Excel!

Можете ли вы помочь мне составить формулу, которая преобразует (классические) римские цифры в числа? например:

MMMCCCLVII — 3357

римские цифры в ячейках a2:a20, формула в ячейках b2:b20

заранее спасибо!!

Ниндзя Excel

Мне нравится это решение

xlstime

Активный участник

Мне нравится это решение

НАРАЯНК991

Ниндзя Excel

даст тот же результат.

если он вводится как формула массива, используйте CTRL SHIFT ENTER.

pinoy-exceler

Новый участник

попробуйте формулу ниже и перетащите

=ПОИСКПОЗ(A2,ИНДЕКС(ROMAN(СТРОКА(ДВССЫЛ("1:3999"))),0),0)

* 3999, потому что в Excel функция Roman поддерживается только до 3999.

pinoy-exceler

Новый участник

даст тот же результат.

если он вводится как формула массива, используйте CTRL SHIFT ENTER.

Спасибо, Нараян! теперь, если не сложно, можем ли мы преобразовать результат в слова, не прибегая к VBA =)
например:

MMMCCCLVII до 3357 до "три тысячи триста пятьдесят семь"

заранее спасибо.

НАРАЯНК991

Ниндзя Excel

Спасибо, Нараян! теперь, если не сложно, можем ли мы преобразовать результат в слова, не прибегая к VBA =)
например:

MMMCCCLVII до 3357 до "три тысячи триста пятьдесят семь"

заранее спасибо.

В Интернете есть доступные формулы для преобразования чисел в слова , и если вы ограничиваете себя только целочисленными значениями от 1 до 3999 , они вполне могут справиться с этой задачей.

Однако в целом они ненадежны.

Если вы хотите проверить один из них, перейдите по этой ссылке:

pinoy-exceler

Новый участник

Спасибо за ссылку, Нараян. В итоге я создал 6 вспомогательных столбцов и матрицу 28x2, чтобы решить проблему. Не очень элегантно, но работает. Спасибо всем за помощь.

xlstime

Активный участник

Было бы здорово, если бы вы могли поделиться с нами своим решением

Спасибо за ссылку, Нараян. В итоге я создал 6 вспомогательных столбцов и матрицу 28x2, чтобы решить проблему. Не очень элегантно, но работает. Спасибо всем за помощь.

Ниндзя Excel

Даниэль Ферри, известный как Excel Hero, написал это в своем блоге ExcelHero на Linkedin около 4 лет назад

Надеюсь, я правильно скопировал

"Преобразование чисел в письменный текст с помощью VBA довольно просто. Но я никогда не видел хорошего метода формул рабочего листа, который делает то же самое. Я составил формулу для этого, но это монстр. с чего начать. Я уверен, что есть более эффективные способы сделать это, так что давайте посмотрим, кто придумает лучшую формулу.
Вот правила:
1. A1 содержит число, которое может быть любое ЦЕЛОЕ число от 1 до 999999.
2. Создайте формулу, которая отвечает на значение A1 и возвращает письменное представление на АНГЛИЙСКОМ ЯЗЫКЕ.
3. Пример: сорок шесть миллионов сто семнадцать тысяч пятьсот двадцать- семь
4. Для правильного английского числа от 21 до 99 должны быть разделены дефисом.
5. В формуле могут использоваться именованные константы и константы массива, но никакие другие имена или VBA.
6 . Вспомогательных ячеек нет.
7. Лучшие формулы короче, нагляднее, используют меньше вызовов функций.

Вот моя первая попытка, доказывающая, что это возможно.

Он использует одну именованную константу, три именованных константы массива и по-прежнему имеет длину 1371 символ.

И, барабанная дробь, вот зверь:
=REPT(INDEX(nwords1,MID(TEXT(A1,n0),1,1)+1)&REPT("сотня",--MID(TEXT (A1,n0),1,3)>99)&REPT(" ",(--MID(ТЕКСТ(A1,n0),1,3)>99)*(--MID(ТЕКСТ(A1,n0), 3,1)>0))&ИНДЕКС(nwords3,(--MID(ТЕКСТ(A1,n0),2,2)>19)*MID(ТЕКСТ(A1,n0),2,1)+1)&REPT( "-",(--MID(ТЕКСТ(A1,n0),2,2)>20)*(--MID(ТЕКСТ(A1,n0),3,1)>0))&INDEX(nwords2,(( СРЕДН(ТЕКСТ(A1,n0),2,2)-8)*(--СРЕДН(ТЕКСТ(A1,n0),2,2)>9)*(--СРЕДН(ТЕКСТ(A1,n0),2 ,2) 19)))&" миллион ",(ДЛСТР(A1)>6)) & ПОВТОР(ИНДЕКС(nwords1,MID(ТЕКСТ(A1,n0),4,1)+1)&ПОВТОР("сотня", --MID(ТЕКСТ(A1,n0),4,3)>99)&REPT(" ",(--MID(TEXT(A1,n0),4,3)>99)*(--MID(TEXT( A1,n0),6,1)>0))&INDEX(nwords3,(--MID(ТЕКСТ(A1,n0),5,2)>19)*MID(ТЕКСТ(A1,n0),5,1) +1)&ПОВТОР("-",(--СРЕДН(ТЕКСТ(A1,n0),5,2)>20)*(--СРЕДН(ТЕКСТ(A1,n0),6,1)>0))&ИНДЕКС (nwords2,((MID(ТЕКСТ(A1,n0),5,2)-8)*(--MID(ТЕКСТ(A1,n0),5,2)>9)*(--MID(ТЕКСТ(A1 ,n0),5,2) 19)))&" тысяча ",(ДЛСТР(A1)>3)) & ИНДЕКС(nслов1,(ДЛСТР(A1)>2)*ЛЕВО(ПРАВО(A1,3),1 )+1)&ПОВТОР(" сто",ДЛСТР(A1)>2)&ПОВТОР(" ",(ДЛСТР(A1)>2)*(--(ПРАВО(A1,1))>0))&ИНДЕКС(nwords3, (--ВПРАВО(A1 ,2)>19)*НАЛЕВО(ПРАВО(A1,2),1)+1)&ПОВТОР("-",(--ПРАВО(A1,2)>20)*(--ПРАВО(A1,1)> 0))&ИНДЕКС(nwords2,((ПРАВИЛЬНО(A1,2)-8)*(--ПРАВИЛЬНО(A1,2)>9)*(--ПРАВИЛЬНО(A1,2) 19)))"

pinoy-exceler

Новый участник

Ого, вот это мега-формула. Это будет трудно отредактировать/оценить, когда дела пойдут наперекосяк, но, тем не менее, это потрясающе. в любом случае, я загрузил свое не очень элегантное решение, состоящее из (8) вспомогательных ячеек и матрицы для сопоставления строковых значений. Я знаю, что мне далеко до вашего уровня мастерства, поэтому, пожалуйста, не издевайтесь над моим решением. Спасибо всем за вашу помощь.

Вложения

bosco_yip

Ниндзя Excel

Попробуйте эту модифицированную формулу после преобразования римских цифр в числа и ограничения значений от 1 до 3999…………

1] Перейдите к Формуле >> Определить имя и определите 2 имени диапазона:

Затем в формуле D2 скопируйте вниз:

=TRIM(IF(C2>999,INDEX(n_1,1+LEFT(C2))&" Тысяча","")&IF(C2>99,INDEX(n_1,1+LEFT(RIGHT(C2,3) )))&" Сотня"&ЕСЛИ(ПРАВО(C2,2)="00",""," и"),"")&ЕСЛИ(MOD(C2,100)

Вложения

pinoy-exceler

Новый участник

Попробуйте эту измененную формулу после преобразования римских цифр в числа и ограничения значений от 1 до 3999…………

1] Перейдите к Формуле >> Определить имя и определите 2 имени диапазона:

Затем в формуле D2 скопируйте вниз:

=TRIM(IF(C2>999,INDEX(n_1,1+LEFT(C2))&" Тысяча","")&IF(C2>99,INDEX(n_1,1+LEFT(RIGHT(C2,3) )))&" Сотня"&ЕСЛИ(ПРАВО(C2,2)="00",""," и"),"")&ЕСЛИ(MOD(C2,100)

xlstime

Активный участник

Замечательно. спасибо всем

bosco_yip

Ниндзя Excel

Попробуйте эту модифицированную формулу после преобразования римских цифр в числа и ограничения значений от 1 до 3999…………

1] Перейдите к Формуле >> Определить имя и определите 2 имени диапазона:

Затем в формуле D2 скопируйте вниз:

=TRIM(IF(C2>999,INDEX(n_1,1+LEFT(C2))&" Тысяча","")&IF(C2>99,INDEX(n_1,1+LEFT(RIGHT(C2,3) )))&" Сотня"&ЕСЛИ(ПРАВО(C2,2)="00",""," и"),"")&ЕСЛИ(MOD(C2,100) 999,ИНДЕКС(n_1,1+ЛЕВО(C2 ))&" Тысяча"&ЕСЛИ((ПРАВИЛЬНО(C2,3)="000"),"",ЕСЛИ((ПРАВИЛЬНО(C2,2)="00")," и",ЕСЛИ(-MID(C2, 2,1),""," и"))),"")&ЕСЛИ(-ПРАВО(ЦЕЛОЕ(C2/100)),ИНДЕКС(n_1,1+ЛЕВО(ПРАВО(C2,3)))&" Сотни "&ЕСЛИ(ПРАВО(C2,2)="00",""," и"),"")&ЕСЛИ(MOD(C2,100)

Вложения

бины53

Активный участник

Есть особая функция,

Необходимо загрузить плагин bfx.exe

бобхц

Ниндзя Excel

Если у вас есть римская цифра до 3999 в ячейке A1, попробуйте эту формулу для преобразования в B1

pinoy-exceler

Новый участник

Обнаружена ошибка в приведенной выше формуле и в измененной формуле:

=ОТРЕЗАТЬ(ЕСЛИ(C2>999,ИНДЕКС(n_1,1+ЛЕВО(C2))&" Тысяча"&ЕСЛИ((ПРАВО(C2,3)="000"),"",ЕСЛИ((ПРАВО( C2,2)="00")," and",IF(-MID(C2,2,1),""," and"))),"")&IF(-RIGHT(INT(C2/100) ),ИНДЕКС(n_1,1+ЛЕВЫЙ(ПРАВО(C2,3)))&" Сотня"&ЕСЛИ(ПРАВО(C2,2)="00",""," и"),"")&ЕСЛИ(MOD( C2 100)

Администратор

Всем интересных формул.

Как насчет АРАБСКОГО()? Он работает в Excel 2013 или более поздней версии.

Ниндзя Excel

Я буду обсуждать функцию
=MATCH(A2,INDEX(ROMAN(ROW(INDIRECT("1:3999"))),0),0) позже в статье
Formula Forensics. на этой неделе

Исключающее ИЛИ LX

Активный участник

Я буду обсуждать функцию
=MATCH(A2,INDEX(ROMAN(ROW(INDIRECT("1:3999"))),0),0) позже в статье
Formula Forensics. на этой неделе

Поскольку вы выбрали настройку без СПП вместо эквивалентной настройки СПП, например:

=MATCH(A2,ROMAN(ROW(INDIRECT("1:3999") ))0)

возможно, было бы лучше включить обсуждение достоинств обеих версий?

Лично меня немного беспокоит растущее число формул, которые я вижу, которые используют этот метод вставки одной или нескольких дополнительных функций INDEX в конструкцию исключительно с целью сделать ее не-CSE.

Я не говорю, что не помнить о фиксации формулы с определенной комбинацией клавиш — это плохо. Даже опытные пользователи Excel, не говоря уже о новичках, время от времени совершают эту ошибку. Таким образом, при прочих равных условиях, при выборе между формулой, которая требует СПП, и формулой, которая не требует, разумно и логично выбрать последнюю.

Однако в данном случае все не совсем одинаково. Интересно, сколько из тех, кто использует этот метод включения дополнительных принудительных функций INDEX, знают, что полученная конструкция, хотя и не CSE, на самом деле требует больше ресурсов, чем эквивалентная версия CSE? Этого, если подумать, следовало ожидать: в конце концов, в версии, отличной от CSE, есть дополнительный вызов функции.

Естественно, разница между двумя настройками не будет большой, если количество таких формул в книге невелико. Однако, если мы говорим о многих конструкциях, то разрыв во времени расчета для версии CSE и версии без CSE-INDEX начинает увеличиваться.

Я бы никогда не сказал, что такая практика (вставка одной или нескольких дополнительных функций ИНДЕКС во избежание CSE) неверна. Единственное, что меня беспокоит, это то, что, по-видимому, уже существует некоторое недопонимание относительно формул массива в Excel, что их каким-то образом следует опасаться, даже избегать любой ценой. (Немало раз меня просили решить проблему, которая запрещает использование формул массива — на вопрос, почему, один из опрошенных даже ответил, что слышал, что формулы массива «могут повредить ваш компьютер»!)

Дело в том, что, если не принимать во внимание требуемую комбинацию клавиш (и давайте вспомним, что это не так уж сложно, на самом деле!), в формулах массива вообще нечего «опасаться». Наоборот, это замечательные вещи, которые открывают перед пользователем Excel много новых возможностей. Таким образом, мы должны максимально способствовать их использованию, а не искать способы избежать их. И в связи с этим, на мой взгляд, использование ИНДЕКС таким образом может быть просто виновным.

Функция Excel ARABIC преобразует римские цифры в виде текста в арабские цифры. Например, формула =АРАБСКИЙ("VII") возвращает 7.

  • roman_text — римская цифра в тексте, который вы хотите преобразовать.

Функция ARABIC преобразует римскую цифру в число в форме арабских цифр. Результатом ARABIC является числовое значение.

ARABIC принимает только один аргумент, roman_text, который должен быть латинским числом, представленным в виде текстовой строки. Например, приведенная ниже формула преобразует "VII" в число 7:

Другие примеры

Функция ROMAN выполняет обратное преобразование:

Римские цифры

В таблице ниже перечислены доступные римские числа с их эквивалентным значением арабского числа.

Примечания

Примеры АРАБСКИХ формул

Целью этого примера является суммирование диапазона римских чисел. Проблема заключается в том, что римские числа отображаются в Excel как текст, а не числовые значения. Если вы попытаетесь использовать функцию СУММ для прямого суммирования диапазона римских чисел.

Функция Excel ROMAN преобразует число в римскую цифру в виде текста. Например, формула =ROMAN(4) возвращает IV.

Загрузить более 100 важных функций Excel

Получите более 100 функций Excel, которые вы должны знать, в одном удобном PDF-файле.

Темы

Ключевые функции

Здравствуйте! Меня зовут Дэйв Брунс. Я управляю компанией Exceljet вместе со своей женой Лизой. Наша цель — помочь вам быстрее работать в Excel. Мы создаем короткие видеоролики и наглядные примеры формул, функций, сводных таблиц, условного форматирования и диаграмм. Подробнее.

Римская система счисления – это система счисления, в которой числа представляются путем объединения букв латинского алфавита.Римская система счисления была стандартным способом записи чисел по всей Европе в Средние века.

В этой статье я научу вас, как легко преобразовать арабские или английские цифры в римские и наоборот с помощью Microsoft Excel или Word.

Без лишних слов, приступим.

Оглавление

Преобразование римских цифр в числа

Преобразование римских цифр в числа можно легко выполнить с помощью Excel. Если вы хотите преобразовать только одну римскую цифру или огромный их список, Excel может помочь вам с арабской функцией.

Функция ARABIC преобразует римские цифры в арабские. Она была добавлена ​​в Excel 2013. Таким образом, эта функция не будет работать для вас, если вы используете более старую версию Excel, предшествующую Excel 2013.

Без лишних слов ниже показано, как можно преобразовать римские цифры в числа с помощью арабской функции Excel.

Синтаксис:

=АРАБСКИЙ (roman_text)

Например, следующая формула преобразует xii в 12:

=АРАБСКИЙ ("xii")

Вы также можете включить в формулу ссылки на другую ячейку или ячейки. Это позволяет вашей формуле динамически работать с данными, содержащимися в тех ячейках, на которые вы ссылаетесь.

Например, если ваша формула ссылается на ячейку A3 и вы меняете значение, содержащееся в ячейке A3, результат формулы изменится, чтобы отразить новое значение. Если вы не используете ссылки в формулах, вам потребуется отредактировать формулы, чтобы иметь возможность изменять значения.

Загрузить конвертер римских цифр в Excel

Нет времени на создание этой формулы?

Я создал несколько красивых шаблонов, которые можно использовать для преобразования римских цифр в арабские и обратно.

Вы можете скачать эти шаблоны ниже бесплатно.

Преобразование чисел в римские с помощью Excel

В первом разделе показано, как преобразовать римские цифры в арабские с помощью Microsoft Excel.

Вы также можете сделать прямо противоположное, используя функцию ROMAN.

Функция ROMAN в Excel используется для преобразования арабских цифр в римские.

Эта функция поясняется ниже с примерами.

Синтаксис

=ROMAN(число, [форма])

Например, следующая формула преобразует 24 в XXIV:

Как и в первом примере с арабской функцией, вы также можете включить в формулу ссылки на другую ячейку. Это позволяет вашей формуле динамически работать с данными, содержащимися в ячейках, на которые вы ссылаетесь.

Например, если ваша формула ссылается на ячейку A3 и вы изменили значение, содержащееся в ячейке A3, результат формулы в ячейке B3 также изменится, чтобы отразить новое значение. Если вы не используете ссылки в формуле, вам придется отредактировать саму формулу, чтобы иметь возможность изменять значения.

Использование Microsoft Word

Вы также можете преобразовать арабские числа в римские цифры в Microsoft Word, независимо от того, хотите ли вы преобразовать нумерованный список в формат нумерации римских цифр или просто хотите преобразовать одно большое число.

Чтобы преобразовать числа в римские цифры в Word, щелкните внутри документа Word, где необходимо выполнить преобразование, и нажмите сочетание клавиш Ctrl+F9 на клавиатуре. Появятся две фигурные скобки (известные как символы поля). Введите =Number\*ROMAN между двумя фигурными скобками и нажмите F9, чтобы преобразовать арабское число в римское.

Примечание. Вам необходимо заменить цифру в коде арабской цифрой, которую вы хотите преобразовать в римскую цифру.

Для получения более подробных инструкций по выполнению этой задачи следуйте следующим инструкциям:

  • Поместите указатель вставки туда, где вы хотите выполнить преобразование.
  • Нажмите Ctrl+F9 на клавиатуре. Этот ярлык отобразит эти две фигурные скобки (известные как символы поля).
  • Вставьте следующий код между этими фигурными скобками.

=Числа\*ROMAN

Где Numbers – это число, которое вы хотите преобразовать в римскую цифру.

Например, если вы хотите преобразовать число 24 в римские цифры, код поля должен быть .

См. иллюстрацию ниже:

Убедитесь, что число, которое вы хотите преобразовать, стоит перед обратной косой чертой в коде. Таким образом, если вы хотите преобразовать любое число в римскую цифру, следуйте приведенным выше инструкциям и вместо использования числа 24, как мы сделали в приведенном выше примере, введите число по вашему выбору, а затем нажмите клавишу F9.

Преобразование нумерованного списка в список с римскими цифрами в Word

Если у вас есть нумерованный список в документе Word, вы можете изменить стиль нумерации либо на римские цифры нижнего регистра, либо на римские цифры верхнего регистра.

Следующие шаги покажут вам, как это сделать:

  • Сначала выделите список. Или просто нажмите внутри элементов списка.
  • Затем перейдите на вкладку "Главная", в группе "Абзац" щелкните стрелку раскрывающегося списка "Нумерация" и выберите стиль нумерации римскими цифрами в раскрывающемся меню.

Все номера списка будут преобразованы в список римских цифр.

Преобразование обычной даты в дату римскими цифрами в Excel

Используя Excel, вы можете создать очень простой конвертер римских цифр, который преобразует даты в формат римских цифр.

В отличие от арабских чисел существует 7 римских цифр: I, V, X, L, C, D и M, где V равно 5, а M равно 1000.

Основное правило: когда впереди стоит большее число, то прибавляем, когда впереди меньшее число, то минусуем. Например:

  • VI: где V равно 5, а I равно 1, V больше и впереди, поэтому сложите 2 числа вместе 5+1 = 6
  • IL: где L равно 50, а I равно 1, I меньше и впереди, поэтому минус два числа вместе 50-1 = 49
  • там, где буквы совпадают, сложить: III = 1 + 1 + 1 = 3

Чтобы преобразовать римскую цифру в арабскую, разбейте арабскую цифру и обратитесь к приведенной ниже таблице конвертации.

Символ Значение
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
< td>CCC< td>IX
ЧислоТысячиСотни ДесяткиЕдиницы
1 MCXI
2MMCCXXII
3МММXXXIII
4 CDXL IV
5 DLV
6 DCLXVI
7 DCCLXXVII
8 DCCCLXXXVIII
9 CMXC

Пример 1: преобразовать 2300 в римскую цифру.

Шаг 1. Разбейте число 2384 на тысячи, сотни, десятки и единицы;

2384 = 2000 + 300

Шаг 2. Используя приведенную выше таблицу, проверьте римские цифры для каждого числа;

Шаг 3. Соедините все римские цифры вместе.

2300 = 2000 + 300 = ММ + CCC = ММССС

Результаты: 2300 — это MMCCC, если записать римскими цифрами.

Пример 2: преобразовать 2384 в римскую цифру.

Шаг 1. Разбейте число 2384 на тысячи, сотни, десятки и единицы;

2384 = 2000 + 300 + 80 + 4

Шаг 2. Используя приведенную выше таблицу, проверьте римские цифры для каждого числа;

  • 2000 = млн.
  • 300 = ССС
  • 80 = LXXX
  • 4 = IV

Шаг 3. Соедините все римские цифры вместе.

2384 = 2000 + 300 + 80 + 4 = ММ + CCC + LXXX + IV = MMCCCLXXXIV

Результаты: 2384 – это MMCCCLXXXIV при записи римскими цифрами.

Читайте также: