Функция excel перевод числа в текст прописью

  • Число прописью в Excel – формула
  • Сумма прописью с копейками в Excel
    • В русских рублях, все буквы строчные
    • В русских рублях, первая буква заглавная
    • В русских рублях с копейками прописью
    • В белорусских рублях
  • Сумма прописью — формула для Openoffice Calc
  • Сумма прописью в Google Spreadsheets
  • UDF-функции надстройки !SEMTools
  • Процедуры !SEMTools
  • Перевод чисел прописью в другие падежи

Число или сумма прописью — в ручном исполнении — непростая задача. А если его нужно печатать десятки раз на дню и с множеством документов, точно нужна автоматизация.

Идеальным решением была бы формула в Excel.

Есть ли такая формула? Да! А главное, что вам делать ничего не придется (только скопировать), потому что я уже сделал её за вас! Но обо всем по порядку.

Сопоставление чисел, сумм и их эквивалентов прописью

Если попытаться описать алгоритм, который будет учитывать все нюансы написания числа или суммы прописью, окажется, что все на так просто, как кажется:

  • в зависимости от того, на какую цифру заканчивается число, его падеж и число могут быть:
    • единственное, именительный (двадцать один рубль)
    • единственное, родительный (двадцать два/три/четыре рубля)
    • множественное, родительный (двадцать, двадцать пять/шесть/семь/восемь/девять рублей)
  • При этом даже из этого правила уже есть исключения – числа от 11 до 14 – множественного числа, хотя числа от 1 до 4 – единственного.
  • Ноль пишется цифрами, но не пишется прописью. Кроме случая с копейками – там он пишется в прописи, но цифрами.
  • При этом от нуля может зависеть то, как будет выглядеть число или сумма прописью.
  • Копейки женского рода, а рубли – мужского. Одна копейка, но один рубль.

И это далеко не все нюансы. Есть ли варианты, которые их все учитывают?

Большинство руководств в интернете предлагают надстройки. Также предлагаются формулы на основе именованных диапазонов.

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

В случае с именованными диапазонами – нужно будет создавать их заново (а их около десятка!).

Число прописью в Excel – примеры сопоставления

Возможна ли формула без применения VBA, макросов и надстроек?

Черт возьми, да! Я долго размышлял, прежде чем ее сделать, но мне это удалось.

Вот эта формула! Вставьте ее в любую ячейку, кроме A1, т.к. она преобразует значение этой самой ячейки:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>6;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>3;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);РИМСКОЕ(ЦЕЛОЕ(A1))));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")

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

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

на

Сумма прописью с копейками в Excel

Для записи суммы прописью с копейками по всем канонам, нужно соблюсти ряд условий:

  • Рубли пишутся словами, первая буква обычно заглавная;
  • Словоформа слова “рубль” должна соответствовать количеству;
  • Копейки пишутся цифрами, но падеж и число слова “копейка” тоже должны соответствовать числу.
Пример написания суммы прописью с копейками в Excel
Сумма прописью с копейками в Excel – пример таблицы соответствия суммы и текста

Трудно в это поверить, но и такая формула тоже существует. Аналогично, без применения VBA, макросов и надстроек.

Формула огромна, но замечательно справляется с любыми суммами до миллиарда. Работать будет в любой версии Excel от 2007 и старше – в 2003 не была доступна такая глубина вложений функций.

Вот и она, просто скопируйте ее, и она преобразует числовое значение ячейки A1 в сумму прописью с копейками.

В русских рублях, все буквы строчные

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

Тройной клик по формуле выделит её целиком

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")

В русских рублях, первая буква заглавная

В Excel нет простой функции, которая бы позволила сделать только первую букву ячейки заглавной, поэтому в первой конфигурации формула была в 2 раза длиннее из-за использования ЛЕВСИМВ и ДЛСТР.

Но в комментариях было предложено отличное решение – функцией ПОДСТАВИТЬ заменить пробелы на букву, которой в числах нет (например, Ф или Z), что сделает все как бы одним словом, на результате использовать функцию ПРОПНАЧ, и после заменить букву обратно на пробелы. Сейчас используется этот вариант формулы, он короче.

Тройной клик по формуле выделит её целиком.

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек");" ";"Z"));"z";" ");"Z";" ")

В русских рублях с копейками прописью

Если нужно, чтобы копейки тоже были написаны прописью, то формула будет чуть длиннее, такой:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ИНДЕКС({"десять";"одиннадцать";"двенадцать";"тринадцать";"четырнадцать";"пятнадцать";"шестнадцать";"семнадцать";"восемнадцать";"девятнадцать"};ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)-9);ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"2";"двадцать");"3";"тридцать");"4";"сорок");"5";"пятьдесят");"6";"шестьдесят");"7";"семьдесят");"8";"восемьдесят");"9";"девяносто");"0";"")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"1";"одна");"2";"две");"3";"три");"4";"четыре");"5";"пять");"6";"шесть");"7";"семь");"8";"восемь");"9";"девять");"0";""))&" копеек";"одна копеек";"одна копейка");"две копеек";"две копейки");"три копеек";"три копейки");"четыре копеек";"четыре копейки");"  копеек";"");" ";"Z"));"z";" ");"Z";" "))

В белорусских рублях

Тройной клик по формуле выделит ее целиком.

=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");1))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");2;200)&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")

Если вам не нужно делать первую букву заглавной, просто “оберните” всю эту гигантскую формулу функцией СТРОЧН.

Сумма прописью — формула для Openoffice Calc

У формулы выше были проблемы с импортом в Openoffice, т.к. тот в отличие от Excel (2007 и старше), поддерживает максимум 42 уровня вложенности в формулах, а не 64.

Поэтому пришлось полностью переделать логику формулы и сделать ее сложной формулой массивов.

Так она выглядит в Excel:

=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)&" "&ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2) &" копеек";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&ИНДЕКС({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};ПРАВСИМВ(ОКРУГЛ(A1*100;0))+1))

А так – после импорта в Openoffice Calc:

=UPPER(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)

Сумма прописью в Google Spreadsheets

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

Ниже пример таблицы с суммой прописью:

Посмотреть сам файл и скопировать к себе можно по ссылке:

https://docs.google.com/spreadsheets/d/1dmqEB3TehEGmWfaxRmIQ9LXjGal439_YgKxZhbK0Ods/edit?usp=sharing

UDF-функции надстройки !SEMTools

Для тех, у кого ОС Windows и Excel 2010 и выше, и кто не готов пользоваться указанными формулами, есть простое решение – установить надстройку, в которой присутствует код, скрывающий все эти вычисления “под капот”. Одна из таких – разработанная мной надстройка !SEMTools.

В ней для решения задачи преобразования числа и суммы в их прописной вариант есть 2 лаконичные функции:

Они доступны абсолютно бесплатно безо всяких ограничений в любой версии надстройки, приобретать полную версию не обязательно.

Единственное ограничение – эти формулы будут работать только на тех компьютерах, где установлена надстройка.

Процедуры !SEMTools

Еще более простое, но не всегда удобное решение – процедуры (макросы). В надстройке для Excel !SEMTools доступны макросы преобразования чисел в сумму и число прописью в 1 клик.

Вызов процедур находится в меню “Изменить символы” в группе “ИЗМЕНИТЬ” на панели надстройки. Макрос преобразует числа на месте, превращая их в текст. Можно выделить как одну, так и несколько ячеек:

демонстрация работы процедур число прописью и сумма прописью в !SEMTools
Число и сумма прописью – процедуры в !SEMTools

Функционал доступен в полной версии надстройки.

Перевод чисел прописью в другие падежи

Зачастую после получения числа или суммы прописью нужно указать его в другом падеже.

Например, “сумма в размере пятисот тысяч трехсот трех рублей”. !SEMTools справляется и с этой задачей – смотрите раздел склонение по падежам в Excel.

Надстройка !SEMTools для Excel поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!

Сумм прописью в Microsoft Excel

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

Использование надстройки

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

Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.

  1. Открываем программу Excel и переходим во вкладку «Файл».
  2. Переход в раздел Файл в Microsoft Excel

  3. Перемещаемся в раздел «Параметры».
  4. Переход в раздел Параметры в Microsoft Excel

  5. В активном окне параметров переходим в раздел «Надстройки».
  6. Переход в надстройки в Microsoft Excel

  7. Далее, в параметре настроек «Управление» устанавливаем значение «Надстройки Excel». Жмем на кнопку «Перейти…».
  8. Перемещение в надстройки в программе Microsoft Excel

  9. Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».
  10. Переход к поиску надстройки в Microsoft Excel

  11. В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».
  12. Выбор надстройки в Microsoft Excel

  13. Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».
  14. Активация надстройки в Microsoft Excel

  15. Для того, чтобы проверить как работает только что установленная надстройка пишем в любой свободной ячейке листа произвольное число. Выделяем любую другую ячейку. Кликаем по значку «Вставить функцию». Он расположен слева от строки формул.
  16. Запуск мастера функций в Microsoft Excel

  17. Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».
  18. Вызов функции Сумма прописью в Microsoft Excel

  19. Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.
  20. Числовой аргумент функции сумма_прописью в Microsoft Excel

    Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».

    Lumpics.ru

    Аргумент функции сумма_прописью в Microsoft Excel

  21. После этого, любое число, которое записано в ячейку, указанную вами, будет отображаться в денежном виде прописью в том месте, где установлена формула функции.

Результат функции сумма_прописью в Microsoft Excel

Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5) , то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».

Результат функции записанной вручную в Microsoft Excel

Если вы введете в ячейку формулу =Сумма_прописью(A2) , то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.

Результат функции записанной вручную с координатами ячеек в Microsoft Excel

Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.

Еще статьи по данной теме:

Помогла ли Вам статья?

Число прописью в Excel (динамический вариант)

​Смотрите также​ формулы, которую введем​ отмечаться?​Скачать число прописью в​ поэтому вводим переменную​ иначе — формируем​ «семьсот «: tys(7)​ 1, «двенадцать рублей»,​ в него следующий​ n = Right(n,​

​ «, «тысячи «,​На вкладке​ Case 8: Result​ Dollar» Case Else​ окупаемость или Фитнес​через меню Формулы/ Определенные​ вариант) на листе​Запишем число прописью в​ во вспомогательный столбец.​Вам же написали​ Excel.​

​ Sclon_Tys ) If​ десятки Case 7​ = «тысяч «:​ «двенадцать долларов»)) Edinicy(13)​ код:​ 1) End Select​

  • ​ «тысяч «) ‘Единицы’​Файл​
  • ​ = «Eighty «​ Dollars = Dollars​ для определенной цели.​ имена/ Присвоить имя​
  • ​ Служ размещены вспомогательные​ Excel без использования VBA.​ Функция ПЕЧСИМВ удаляет​
  • ​ — кривая. Зачем​Теперь вы можете быстро​ shag > 1​ ‘ — единицы​ mln(7) = «миллионов​

​ = «тринадцать «:​Function ЧислоПрописьюВалюта(SumBase As Double,​ Dim Двадцатка As​ Поз = 10​выберите команду​ Case 9: Result​ & » Dollars»​ В этой статье​ создайте именованную формулу​ диапазоны, содержащие некоторые​ Вспомогательные диапазоны разместим​

​ непечатаемые знаки. СЖПРОБЕЛЫ​ еще выкладывать?​ перевести сумму в​ Then If Mid(SumInt,​

  • ​ миллионов vl =​ «: mlrd(7) =​ EdinicyPoslednie(13) = IIf(Valuta​ Valuta As Integer)​ String Двадцатка =​
  • ​ strЕдиницы = Сотни(Mid(strЧисло,​Сохранить как​ = «Ninety «​ End Select Select​ предполагается, что вы​ ЧислоПрописью;​
  • ​ числа прописью в Excel.​ в личной книге​ – лишние пробелы.​ВладХГП​ слова прописью. Чтобы​ shag — 1,​ Mid(SumInt, shag, 1)​ «миллиардов » Desyatki(8)​ = 0, «тринадцать​ Dim Edinicy(0 To​ «» Select Case​ Поз, 1)) strЕдиницы​

​.​ Case Else End​ Case Cents Case​​ знакомы с языком​​в поле Диапазон введите​Теперь эти диапазоны длиннее​​ макросов. Кроме того,​​ Функция ЗНАЧЕН преобразует​: от спасибки так​

​ воспользоваться готовым решением​ 1) = 1​

​ If shag >​ = «восемьдесят «:​ евро», IIf(Valuta =​ 19) As String:​ n Case «0»:​ = strЕдиницы &​

​Щелкните раскрывающееся меню​ Select Result =​ «» Cents =​ VBA программирования и​ формулу указанную выше:​ (числа от 1​ добавим руб./коп. для​ текстовый формат в​ спасибки — а​

​ рекомендуем скачать пример​ Then Sclon_Tys =​ 2 Then If​​ Sotni(8) = «восемьсот​​ 1, «тринадцать рублей»,​
​ Dim EdinicyPoslednie(0 To​
​ Двадцатка = «»​
​ Десятки(Mid(strЧисло, Поз +​
​Тип файла​

​ Result & GetDigit​ » and No​ с помощью средств,​нажмите ОК;​ до 999) и​ записи денежных сумм,​ числовой.​ главное все элементарно​ числа прописью в​

​ Edinicy(Mid(SumInt, shag -​ (Mid(SumInt, shag -​ «: tys(8) =​ «тринадцать долларов»)) Edinicy(14)​ 19) As String​ Case «1» Select​ 1, 2), «м»)​и выберите​ _ (Right(TensText, 1))​ Cents» Case «One»​ которые используются для​

​в ячейке​ содержат слова тысяча​ например: четыреста сорок​Применение инструмента «Текст по​При импорте файлов или​ Excel. Данный файл​ 1, 2)) &​ 2, 1) =​ «тысяч «: mln(8)​ = «четырнадцать «:​ Dim Desyatki(0 To​

​ Case Sex Case​ If strМиллиарды &​Книгу Excel с поддержкой​ ‘ Retrieve ones​ Cents = «​ создания и отладки​В1​ и миллион с​ четыре руб. 00​ столбцам». Выделяем столбец​ копировании данных с​

​ содержит уже готовую​​ «тисяч » End​ 0 And Mid(SumInt,​​ = «миллионов «:​ EdinicyPoslednie(14) = IIf(Valuta​​ 9) As String:​​ «м»: Двадцатка =​ strМиллионы & strТысячи​
​ макросов​
​ place. End If​
​ and One Cent»​
​ процедур. Сотрудники службы​введите формулу =ЧислоПрописью​ учетом склонения. Также​

​ коп.​ с текстовыми аргументами,​ числовыми значениями часто​ пользовательскую функцию и​ If txt =​ shag — 1,​ mlrd(8) = «миллиардов​

​ = 0, «четырнадцать​ Dim Sotni(0 To​ «один » Case​ & strЕдиницы =​

  • ​.​​ GetTens = Result​​ Case Else Cents​
  • ​ поддержки Майкрософт могут​ячейка​ создан диапазон для​Иногда требуется записать число​
  • ​ которые нужно преобразовать​ возникает проблема: число​
  • ​ VBA-код макроса, который​
  • ​ txt & Sclon_Tys​​ 1) = 0​​ » Desyatki(9) =​
  • ​ евро», IIf(Valuta =​​ 9) As String:​​ «ж»: Двадцатка =​ «» Then strЕдиницы​

​Нажмите кнопку​​ End Function ‘​​ = » and​ пояснить конкретной процедуры.​В1​ отображения слова Рублей​ прописью: 256 записать​ в числа. На​ преобразуется в текст.​ доступен в модуле​ ‘-КОНЕЦ БЛОКА_______________________ Case​

​ And vl =​ «девяносто «: Sotni(9)​ 1, «четырнадцать рублей»,​ Dim mlrd(0 To​ «одна » Case​ = «ноль «​Сохранить​ Converts a number​ » & Cents​ Однако они не​будет содержать число​

excel2.ru

Преобразование чисел в слова

​ с учетом склонения.​​ как двести пятьдесят​ вкладке «Данные» находим​ В результате формулы​ из редактора.​ 3 ‘ -​ «0») Then GoTo​ = «девятьсот «:​ «четырнадцать долларов»)) Edinicy(15)​ 9) As String​ «с»: Двадцатка =​ ‘strЕдиницы = strЕдиницы​.​ from 1 to​ & » Cents»​ изменять эти примеры​ прописью.​Теперь все готово для​ шесть. Набирать этот​ кнопку «Текст по​ не работают, вычисления​

​ALISA​ сотни vl =​ 10 End If​ tys(9) = «тысяч​ = «пятнадцать «:​ Dim mln(0 To​ «одно » End​ & ИмяРазряда(» «,​К началу страницы​ 9 into text.​ End Select SpellNumber​ для обеспечения функциональных​Теперь ячейки​ записи формулы переводящей​ текст безумно скучно,​ столбцам». Откроется окно​ становятся невозможными. Как​: Уважаемые знатоки!!!! Знаю​ Mid(SumInt, shag, 1)​ If shag >​ «: mln(9) =​ EdinicyPoslednie(15) = IIf(Valuta​

​ 9) As String:​ Select Case «2»:​ Mid(strЧисло, Поз +​Часто нужно перевести число​ Function GetDigit(Digit) Select​ = Dollars &​

​ возможностей или создания​​А1В1​ исходное число (ячейка​ кроме того легко​ «Мастера». Нажимаем «Далее».​ это быстро исправить?​ вопрос банальный, но​ txt = txt​ 1 Then If​ «миллионов «: mlrd(9)​ = 0, «пятнадцать​ Dim tys(0 To​ Select Case Sex​ 1, 2), «рубль​ в текст в​ Case Val(Digit) Case​ Cents End Function​ процедур в соответствии​можно скопировать и​B6​ ошибиться, поэтому давно​ На третьем шаге​ Сначала посмотрим, как​ очень хочется, чтобы​ & Sotni(vl) Case​

Создание функции SpellNumber для преобразования чисел в слова

  1. ​ Mid(SumInt, shag -​​ = «миллиардов «​​ евро», IIf(Valuta =​​ 9) As String​​ Case «м»: Двадцатка​ «, «рубля «,​ Excel так, чтобы​

    ​ 1: GetDigit =​​ ‘ Converts a​ с конкретными требованиями.​ перенести в любое​) в текст:​

  2. ​ написаны макросы на​​ обращаем внимание на​​ исправить ошибку без​​ вы мне помогли!!!!​​ 2 ‘ -​

    В меню Insert выберите пункт Module.

  3. ​ 1, 1) =​

    ​ ‘——————————————— On Error​​ 1, «пятнадцать рублей»,​ Dim SumInt, x,​ = «два «​ «рублей «) ‘Сотые’​ оно отображалось прописью​

    ​ "One" Case 2:​ number from 100-999​Используйте сочетание клавиш​ место в книге,​=СЖПРОБЕЛЫ(​ VBA, которые легко​ формат данных столбца.​ макросов.​ Есть таблица, в​ десятки vl =​ 1 Then txt​ Resume Next SumInt​ "пятнадцать долларов")) Edinicy(16)​ shag, vl As​ Case "ж": Двадцатка​ 'strСотые = strКопейки​ (словами) на русском​ GetDigit = "Two"​ into text Function​Alt​ но они должны​ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&" "&​ справляются с этой​Последний способ подходит в​Excel помогает пользователю сразу​ которой по строкам​ Mid(SumInt, shag, 1)​ = txt &​ = Int(SumBase) For​ = "шестнадцать ":​ Integer: Dim txt,​ = "две "​ & " "​ или других языках.​ Case 3: GetDigit​ GetHundreds(ByVal MyNumber) Dim​+​ быть всегда на​ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&" "&​ задачей.​ том случае, если​ определить, значения в​ забивается сумма в​ If vl =​ Edinicy(Mid(SumInt, shag -​ x = Len(SumInt)​ EdinicyPoslednie(16) = IIf(Valuta​ Sclon_Tys As String​ Case "с": Двадцатка​ & ИмяРазряда(strКопейки, Right(strКопейки,​ Так как по​ = "Three" Case​ Result As String​F11​ одной строке и​ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))​В статье Число прописью​ значения находятся в​ ячейках отформатированы как​ числовом выражении. В​ "1" And Mid(SumInt,​ 1, 2)) &​ To 1 Step​ = 0, "шестнадцать​ '--------------------------------------------- Application.Volatile '---------------------------------------------​ = "Два "​ 2), ‘"копейка", "копейки",​ умолчанию нет готовой​ 4: GetDigit =​ If Val(MyNumber) =​, чтобы открыть​ в соседних столбцах,​Задача в принципе решена,​ (статичный вариант) приведено​ одном столбце.​ числа или как​ конце таблицы считается​ shag + 1,​ "мільйонів " Else:​ -1 shag =​ евро", IIf(Valuta =​ Edinicy(0) = "":​ End Select Case​ "копеек") ЧислоПропись =​ функции, создадим свою​ "Four" Case 5:​ 0 Then Exit​ редактор Visual Basic​ т.к. именованной формуле​ осталось только разместить​ решение этой задачи​​ текст. Числовые форматы​ общая сумма всех​ 1) <> 0​ txt = txt​ shag + 1​ 1, "шестнадцать рублей",​ EdinicyPoslednie(0) = IIf(Valuta​ "3": Двадцатка =​ strМиллиарды & strМиллионы​ пользовательскую функцию с​ GetDigit = "Five"​ Function MyNumber =​ (VBE).​ использована относительная ссылка.​ вспомогательные диапазоны в​ позволяющей перевести число​Преобразовать числа, сохраненные как​ выравниваются по правому​ чисел. В строке​ Then GoTo 10​ & Edinicy(vl) &​ Select Case x​ "шестнадцать долларов")) Edinicy(17)​ = 0, "евро",​ "три " Case​ & strТысячи &​ помощью макросов.​ Case 6: GetDigit​ Right("000" & MyNumber,​Примечание:​При пересылке файла, например,​ Личную книгу макросов​ в текстовую форму​ текст, в числа​ краю, текстовые –​ ИТОГО надо чтобы​ Else txt =​ mln(vl) 'числа в​ Case 12 '​ = "семнадцать ":​ IIf(Valuta = 1,​ "4": Двадцатка =​ strЕдиницы ЧислоПропись =​Для создания пользовательской функции,​ = "Six" Case​ 3) ' Convert​ Вы также можете открывать​ по электронной почте,​ PERSONAL.XLSB, для того​ по следующему алгоритму:​ можно с помощью​ по левому.​ общая сумма прописываль​ txt & Desyatki(vl)​ диапозоне от 11​ - сотни миллиардов​ EdinicyPoslednie(17) = IIf(Valuta​ "рублей", "долларов")) Edinicy(1)​ "четыре " Case​ UCase(Left(ЧислоПропись, 1)) &​ которая сможет перевести​ 7: GetDigit =​ the hundreds place.​ редактор Visual Basic,​ формула будет продолжать​ чтобы формула, переводящая​вводим число в определенную​ макроса.​Когда при импорте файлов​ текстом...............​ ' - если​ до 19 склоняются​ vl = Mid(SumInt,​ = 0, "семнадцать​ = "один ":​ "5": Двадцатка =​ Right(ЧислоПропись, Len(ЧислоПропись) -​ число в текст​ "Seven" Case 8:​ If Mid(MyNumber, 1,​ добавив вкладку "Разработчик"​ работать, не смотря​ число в текст​ ячейку;​Есть набор значений, сохраненных​
  4. ​ или сбое в​Serge​​ конец триады от​​ на «мільярдов» независимо​ shag, 1) txt​

    Код, вставленный в поле Module1 (Code).

  5. ​ евро», IIf(Valuta =​​ EdinicyPoslednie(1) = IIf(Valuta​​ «пять » Case​ 1) Exit Function​ прописью , нам​ GetDigit = «Eight»​

    ​ 1) <> «0»​​ на ленту.​ на то, что​ была доступна в​с помощью формул, вспомогательных​ в текстовом формате:​ Excel числовой формат​: «сумма прописью» в​ 11 до 19​

​ от последнего числа​

Использование функции SpellNumber в отдельных ячейках

  1. ​ = txt &​​ 1, «семнадцать рублей»,​​ = 0, «один​​ «6»: Двадцатка =​​ Число_Error: MsgBox Err.Description​ нужно выполнить 3​ Case 9: GetDigit​ Then Result =​На вкладке​ Личная книга макросов​ любой книге.​ диапазонов с текстом​

  2. ​Чтобы вставить макрос, на​​ становится текстовым, в​​ окошке поисковика…​

​ то перескакиваем на​

Сохранение книги с функцией SpellNumber

​ триады Else txt​ Sotni(vl) Case 11​ «семнадцать долларов»)) Edinicy(18)​ евро», IIf(Valuta =​ «шесть » Case​ End Function Function​​ простых шага:​​ = «Nine» Case​​ GetDigit(Mid(MyNumber, 1, 1))​​Insert​​ не пересылалась, т.е.​​В Windows XP эта​​ и имен получаем​​ вкладке «Разработчик» находим​

В диалоговом окне проекта VB щелкните

​ левом верхнем углу​Выбирайте на вкус​​ единицы, иначе -​ = txt &​​ ‘ — десятки​ = «восемнадцать «:​

  1. ​ 1, «один рубль»,​​ «7»: Двадцатка =​​ Сотни(n As String)​​Открыть редактор макросов ALT+F11.​​ Else: GetDigit =​

  2. ​ & » Hundred​​(Вставка) нажмите кнопку​​ Ваши коллеги получившие​​ книга находится в​ число прописью;​​ редактор Visual Basic.​

  3. ​ ячеек появляется зеленый​​ и цвет…​​ формируем десятки Case​

​ Edinicy(vl) & mln(vl)​

support.office.com

Как перевести сумму или число прописью в Excel

​ миллиардов vl =​ EdinicyPoslednie(18) = IIf(Valuta​ «один доллар»)) Edinicy(2)​ «семь » Case​ As String Сотни​Создать новый модуль и​ «» End Select​ » End If​Module​ файл, смогут с​ папке C:Documents and​

​копируем результат вычисления формулы​ Открывается окно редактора.​ треугольничек. Это знак​Guest​ 1 ‘ -​ End If ‘-КОНЕЦ​

  1. ​ Mid(SumInt, shag, 1)​
  2. ​ = 0, «восемнадцать​ = «два «:​ «8»: Двадцатка =​ = «» Select​ в нем нужно​ End Function​ ‘ Convert the​(Модуль).​ ним работать как​ Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда​Module.
  3. ​ (число прописью) в​ Для добавления кода​

​ ошибки. Ошибка также​

​: Спасибо большое, кажется​ единицы If Mid(SumInt,​ БЛОКА_______________________ Case 6​ If vl =​ евро», IIf(Valuta =​ EdinicyPoslednie(2) = IIf(Valuta​ «восемь » Case​ Case n Case​ написать функцию особенным​Вставьте строки кода в​ tens and ones​Скопируйте приведенный ниже код.​ Вы.​ она будет автоматически​ Буфер обмена;​ нажимаем F7. Вставляем​ возникает, если перед​ нашла!!! А без​ shag — 1,​ ‘ — сотни​ «1» And Mid(SumInt,​ 1, «восемнадцать рублей»,​ = 0, «два​ «9»: Двадцатка =​ 0: Сотни =​ способом: Function вместо​ поле​ place. If Mid(MyNumber,​Примечание:​Примечание:​ загружается при каждом​вставляем текст в любую​ следующий код:​ числом поставить апостроф.​ макросов, с помощью​ 1) <> 1​ тысяч vl =​ shag + 1,​ «восемнадцать долларов»)) Edinicy(19)​ евро», IIf(Valuta =​ «девять » Case​ «» Case 1:​ Sub. Тогда наша​Module1 (Code)​ 2, 1) <>​ Известные как Пользовательской функции​ Мы стараемся как можно​ запуске приложения Excel.​ открытую книгу «Как​Sub Conv() With ActiveSheet.UsedRange​Способов преобразования текста в​ какой-нибудь формулы этого​ Or Mid(SumInt, shag​ Mid(SumInt, shag, 1)​ 1) <> 0​ = «девятнадцать «:​ 1, «два рубля»,​ «10»: Двадцатка =​ Сотни = «сто​ функция «ЧислоПропись» будет​(Модуль 1 —​ «0» Then Result​ (UDF)этот код Автоматизация​ оперативнее обеспечивать вас​ В Windows Vista​ значение» (Главная/ Буфер​ arr = .Value​ число существует несколько.​ сделать нельзя?​ — 1, 2)​ txt = txt​ Then GoTo 10​ EdinicyPoslednie(19) = IIf(Valuta​ «два доллара»)) Edinicy(3)​ «десять » Case​ » Case 2:​ отображаться в списке​ код).​ = Result &​ задач для преобразования​ актуальными справочными материалами​ эта книга хранится​ обмена/ Вставить/ Вставить​ .NumberFormat = «General»​ Рассмотрим самые простые​vikttur​ = «10» Then​ & Sotni(vl) Case​ Else txt =​ = 0, «девятнадцать​ = «три «:​ «11»: Двадцатка =​ Сотни = «двести​ мастера функций (SHIFT+F3),​Нажмите клавиши​ GetTens(Mid(MyNumber, 2)) Else​ чисел в разных​ на вашем языке.​ в папке C:Usersимя_пользователяApplication​ как значение).​ .Value = arr​ и удобные.​: Значит, не то​ vl = Mid(SumInt,​ 5 ‘ -​ txt & Desyatki(vl)​ евро», IIf(Valuta =​ EdinicyPoslednie(3) = IIf(Valuta​ «одиннадцать » Case​ » Case 3:​ в категории «Определенные​Alt + Q​ Result = Result​ частях листа.​ Эта страница переведена​ DataMicrosoftExcelXLStart.​Это не всегда удобно.​ End With End​Использовать меню кнопки «Ошибка».​ нашел :)​ shag, 1) Else​ десятки тысяч vl​ ‘ — если​ 1, «девятнадцать рублей»,​ = 0, «три​ «12»: Двадцатка =​ Сотни = «триста​ пользователем».​, чтобы вернуться​ & GetDigit(Mid(MyNumber, 3))​Option Explicit ‘Main Function​ автоматически, поэтому ее​Если Личная книга макросов​ Хочется по аналогии​ Sub​ При выделении любой​A href=»http://www.planetaexcel.ru/forum.php?thread_id=9661»>;​ vl = Mid(SumInt,​ = Mid(SumInt, shag,​ конец триады от​ «девятнадцать долларов»)) »———————————————​ евро», IIf(Valuta =​ «двенадцать » Case​ » Case 4:​Вставить в модуль следующий​ в Microsoft Excel.​ End If GetHundreds​ Function SpellNumber(ByVal MyNumber)​ текст может содержать​ еще не была​ с функциями на​Чтобы он «заработал», нужно​ ячейки с ошибкой​Wasp49​ shag — 1,​ 1) If vl​ 11 до 19​ Desyatki(0) = «»:​ 1, «три рубля»,​ «13»: Двадцатка =​ Сотни = «четыреста​ код и сохранить:​ Функция SpellNumber теперь​ = Result End​ Dim Dollars, Cents,​ неточности и грамматические​ создана, то скопируйте​ VBA написать что​ сохранить. Но книга​ слева появляется соответствующий​: «Спасибо большое, кажется​ 2) txt =​ = 1 And​ то перескакиваем на​ Sotni(0) = «»:​ «три доллара»)) Edinicy(4)​ «тринадцать » Case​ » Case 5:​​ готов к использованию.​ Function ‘ Converts​ Temp Dim DecimalPlace,​ ошибки. Для нас​ лист Служ из​ то вроде =ЧислоПрописью(А1)​ Excel должна быть​ значок. Это и​ нашла!!! А без​ txt & EdinicyPoslednie(vl)​ Mid(SumInt, shag +​ единицы, иначе -​ tys(0) = «тисячь​ = «четыре «:​ «14»: Двадцатка =​ Сотни = «пятьсот​Function ЧислоПропись(Число As Currency)​Примечание:​ a number from​ Count ReDim Place(9)​ важно, чтобы эта​ файла примера в​ и получить результат.​ сохранена в формате​ есть кнопка «Ошибка».​ макросов, с помощью​ ‘-КОНЕЦ БЛОКА_______________________ End​ 1, 1) <>​ формируем десятки Case​ «: mln(0) =​ EdinicyPoslednie(4) = IIf(Valuta​ «четырнадцать » Case​ » Case 6:​ As String ‘до​ Эта функция работает только​ 10 to 99​ As String Place(2)​ статья была вам​ новую книгу, и​ Все промежуточные вычисления​ с поддержкой макросов.​ Если навести на​ какой-нибудь формулы этого​ Select 10: Next​

ЧислоПропись.

​ 0 Then GoTo​ 10 ‘ -​ «миллионов «: mlrd(0)​ = 0, «четыре​ «15»: Двадцатка =​ Сотни = «шестьсот​ 999 999 999​ для текущей книги.​ into text. Function​

​ = » Thousand​ полезна. Просим вас​ сохраните ее в​ должны быть «за​Теперь возвращаемся на страницу​ нее курсор, появится​ сделать нельзя?»​ x a =​ 10 Else txt​ единицы миллиардов vl​ = «миллиардов «​ евро», IIf(Valuta =​ «пятнадцать » Case​ » Case 7:​ 999 On Error​ Для использования этой​ GetTens(TensText) Dim Result​ » Place(3) =​ уделить пару секунд​ директорию C:Documents and​ кадром». Но, создание​ с цифрами. Выделяем​ знак раскрывающегося меню​Попробую найти у​ SumBase b =​ = txt &​ = Mid(SumInt, shag,​ Desyatki(1) = «десять​ 1, «четыре рубля»,​ «16»: Двадцатка =​ Сотни = «семьсот​ GoTo Число_Error Dim​ функции в другой​ As String Result​ » Million «​ и сообщить, помогла​ Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для​ пользовательских функций это​ столбец с данными.​ (черный треугольник). Выделяем​ себя в файлах​ Int(a) c =​ Desyatki(vl) ‘ -​ 1) If shag​ «: Sotni(1) =​ «четыре доллара»)) Edinicy(5)​ «шестнадцать » Case​ » Case 8:​ strМиллиарды As String,​ книге, необходимо повторить​ = «» ‘​ Place(4) = «​ ли она вам,​ XP) под именем​ прерогатива VBA.​ Нажимаем кнопку «Макросы».​ столбец с числами​ пропись на русском​ (a — b)​ если конец триады​ > 1 Then​ «сто «: tys(1)​ = «пять «:​ «17»: Двадцатка =​ Сотни = «восемьсот​ strМиллионы As String,​ шаги, скопируйте и​ Null out the​ Billion » Place(5)​ с помощью кнопок​ PERSONAL.XLSB.​Тем не менее, можно​ В открывшемся окне​ в текстовом формате.​ языке без маросов.​ * 100 If​ от 11 до​ If Mid(SumInt, shag​ = «тысяча «:​ EdinicyPoslednie(5) = IIf(Valuta​ «семнадцать » Case​ » Case 9:​ strТысячи As String,​ вставьте код в​ temporary function value.​ = » Trillion​ внизу страницы. Для​Если Личная книга макросов​ предложить следующее решение​ – список доступных​ Раскрываем меню кнопки​ есть на английском​ c = 0​ 19 то перескакиваем​ — 1, 1)​ mln(1) = «миллион​ = 0, «пять​ «18»: Двадцатка =​ Сотни = «девятьсот​ strЕдиницы As String,​ этой книге.​ If Val(Left(TensText, 1))​ » ‘ String​ удобства также приводим​ уже была ранее​ с помощью обычных​ для данной книги​ «Ошибка». Нажимаем «Преобразовать​ (но там все​ Then c =​ на единицы, иначе​ = 1 Then​ «: mlrd(1) =​ евро», IIf(Valuta =​ «восемнадцать » Case​ » End Select​ strСотые As String​К началу страницы​ = 1 Then​ representation of amount.​ ссылку на оригинал​ создана, то через​ формул:​ макросов. Выбираем нужный.​ в число».​ проще — нет​ CStr(c) + «0»​ — формируем десятки​ txt = txt​ «миллиарда » Desyatki(2)​ 1, «пять рублей»,​ «19»: Двадцатка =​ End Function Function​ Dim Поз As​Введите формулу​ ‘ If value​ MyNumber = Trim(Str(MyNumber))​ (на английском языке).​ меню Вид/ Окно/​разместить в Личной книге​ Жмем «Выполнить».​Применить любые математические действия.​ падежей). Смысл такой​ d = «»​ Case 4 ‘​ & Edinicy(Mid(SumInt, shag​ = «двадцать «:​ «пять долларов»)) Edinicy(6)​ «девятнадцать » End​ Десятки(n As String,​ Integer strЧисло =​= SpellNumber​ between 10-19… Select​ ‘ Position of​Нет функции по умолчанию,​ Отобразить отобразите ее,​ макросов (PERSONAL.XLSB) вспомогательные​Цифры переместились вправо.​ Подойдут простейшие операции,​ — создайте массив​ If Valuta =​ — единицы тысяч​ — 1, 2))​ Sotni(2) = «двести​ = «шесть «:​ Select Десятки =​ Sex As String)​ Format(Int(Число), «000000000000») ‘Миллиарды’​(​ Case Val(TensText) Case​ decimal place 0​ отображающий чисел в​ скопируйте в нее​ диапазоны, содержащие некоторые​Следовательно, значения в ячейках​ которые не изменяют​ (табличку) с цифрами​ 1 Then d​ vl = Mid(SumInt,​ & «мільярдів «​ «: tys(2) =​ EdinicyPoslednie(6) = IIf(Valuta​ Десятки & Двадцатка​ As String Десятки​ Поз = 1​A1​ 10: Result =​ if none. DecimalPlace​ виде английских слов​ лист Служ, сохраните​ числа прописью (от​ «стали» числами.​ результат (умножение /​ от 0 до​ = «коп.» Else​ shag, 1) If​ Else txt =​ «тысячи «: mln(2)​ = 0, «шесть​ End Function Function​ = «» Select​ strМиллиарды = Сотни(Mid(strЧисло,​) в ячейку, которую​ «Ten» Case 11:​ = InStr(MyNumber, «.»)​ на листе Excel,​ Личную книгу макросов​ 0 до 999);​Если в столбце встречаются​ деление на единицу,​ 100 плюс ещё​ d = «цен.»​ shag > 2​ txt & Edinicy(vl)​ = «миллиона «:​ евро», IIf(Valuta =​ ИмяРазряда(Строка As String,​ Case Left(n, 1)​ Поз, 1)) strМиллиарды​ вы хотите отобразить​ Result = «Eleven»​ ‘ Convert cents​ но вы можете​ (можно ее потом​создать формулу, переводящую в​ аргументы с определенным​ прибавление / отнимание​ 200, 300 и​ If Valuta >​ Then If (Mid(SumInt,​ & mlrd(vl) ‘числа​ mlrd(2) = «миллиарда​ 1, «шесть рублей»,​ n As String,​ Case «0»: Десятки​ = strМиллиарды &​ письменного номер, где​ Case 12: Result​ and set MyNumber​ добавить эту возможность​ скрыть Вид/ Окно/​ текст любое число​ числом десятичных знаков​ нуля, возведение в​ т.д. и соответственно​ 2 Or Valuta​ shag — 2,​ в диапозоне от​ » Desyatki(3) =​ «шесть долларов»)) Edinicy(7)​ Имя1 As String,​ = «»: n​ Десятки(Mid(strЧисло, Поз +​ A1 — ячейку,​ = «Twelve» Case​ to dollar amount.​ путем вставки следующий​ Скрыть).​ от 0 до​ (например, 3,45), можно​ первую степень и​ пропись этих чисел​ 2 Or Valuta​ 1) = 0​ 11 до 19​ «тридцать «: Sotni(3)​ = «семь «:​ Имя24 As String,​ = Right(n, 1)​ 1, 2), «м»)​ содержащую число вы​ 13: Result =​ If DecimalPlace >​ код функции SpellNumber​Теперь откройте​ 1 млрд. с​ использовать другой макрос.​ т.д.).​ (с учетом падежей).​ < 0 Then​ And Mid(SumInt, shag​ склоняются на «мільярдов»​ = «триста «:​ EdinicyPoslednie(7) = IIf(Valuta​ ИмяПроч As String)​ Case «1»: Десятки​ strМиллиарды = strМиллиарды​ хотите преобразовать. Можно также​ «Thirteen» Case 14:​ 0 Then Cents​ в модуле VBA​книгу, в которой нужно​ помощью вспомогательных диапазонов​Sub Conv() With​Добавить специальную вставку. Здесь​ А затем с​ GoTo 11 ЧислоПрописьюВалюта​ — 1, 1)​ независимо от последнего​ tys(3) = «тысячи​ = 0, «семь​ As String If​ = «» Case​ & ИмяРазряда(strМиллиарды, Mid(strЧисло,​ вручную ввести значение​ Result = «Fourteen»​ = GetTens(Left(Mid(MyNumber, DecimalPlace​ (Visual Basic for​ записать число прописью​ и имен;​ ActiveSheet.UsedRange .Replace «,»,».»​ также применяется простое​ помощью разбивки числа​ = txt +​ = 0 And​ числа триады Else​ «: mln(3) =​ евро», IIf(Valuta =​ Строка <> «»​ «2»: Десятки =​ Поз + 1,​ как = SpellNumber(22.50).​ Case 15: Result​ + 1) &​ Applications). Эта функция​. Исходное число разместите,​в любой книге, где​ arr = .Value​ арифметическое действие. Но​ и ВПР.​ » » +​ vl = «0»)​ txt = txt​ «миллиона «: mlrd(3)​ 1, «семь рублей»,​ Then ИмяРазряда =​ «двадцать «: n​ 2), «миллиард «,​Нажмите клавишу​ = «Fifteen» Case​ _ «00», 2))​ позволяет преобразовывать доллара​ например, в ячейке​ требуется записать число​ .NumberFormat = «General»​ вспомогательный столбец создавать​P.S.А вообще с​ CStr(c) + d​ Then GoTo 10​ & Edinicy(vl) &​ = «миллиарда «​ «семь долларов»)) Edinicy(8)​ «» Select Case​ = Right(n, 1)​ «миллиарда «, «миллиардов​Ввод​ 16: Result =​ MyNumber = Trim(Left(MyNumber,​ и кратное сумм​А1​ прописью создать Именованную​ .Value = arr​ не нужно. В​ макросами лучше​ 11: End Function​ End If Sclon_Tys​ mlrd(vl) End If​ Desyatki(4) = «сорок​ = «восемь «:​ Left(n, 1) Case​ Case «3»: Десятки​ «) ‘Миллионы’ Поз​, чтобы подтвердить формулу.​ «Sixteen» Case 17:​ DecimalPlace — 1))​ для слов с​. Введите в нужную​ формулу ЧислоПрописью с​ End With End​ отдельной ячейке написать​axi​Если мы указываем число​ = Edinicy(vl) &​ ‘-КОНЕЦ БЛОКА_______________________ Case​ «: Sotni(4) =​ EdinicyPoslednie(8) = IIf(Valuta​ «0», «2», «3»,​ = «тридцать «:​ = 4 strМиллионы​К началу страницы​ Result = «Seventeen»​ End If Count​ помощью формулы, 22,50​ ячейку формулу:​ относительной ссылкой на​ Sub​ цифру 1. Скопировать​: Посмотрите вот такое​ (от 0 до​ tys(vl) ‘ -​ 9 ‘ -​ «четыреста «: tys(4)​ = 0, «восемь​ «4», «5», «6»,​ n = Right(n,​ = Сотни(Mid(strЧисло, Поз,​Excel не может сохранить​ Case 18: Result​ = 1 Do​ читается как двадцати​=ЕСЛИ(A1;СЖПРОБЕЛЫ(​ исходное число (относительную​Читайте так же: как​ ячейку в буфер​ решение​ 2)в параметре второй​ вводим переменную Sclon_Tys​ сотни миллионов vl​ = «тысячи «:​ евро», IIf(Valuta =​ «7», «8», «9»:​ 1) Case «4»:​ 1)) strМиллионы =​ книгу с помощью​ = «Eighteen» Case​ While MyNumber <>​ двух центы и​ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «&​ ссылку можно создать​ перевести число и​ обмена (с помощью​Владимир​ функции «ЧислоПрописьюВалюта» то​ из-за иного склонения​ = Mid(SumInt, shag,​ mln(4) = «миллиона​ 1, «восемь рублей»,​

ЧислоПрописьюВалюта.

​ n = Right(n,​ Десятки = «сорок​ strМиллионы & Десятки(Mid(strЧисло,​ функции макросов в​ 19: Result =​ «» Temp =​ т. Это может​

  • ​ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «&​
  • ​ так, чтобы она​
  • ​ сумму прописью в​

​ кнопки «Копировать» или​:​ функция автоматически подставит​ тысяч в русском​ 1) txt =​ «: mlrd(4) =​ «восемь долларов»)) Edinicy(9)​ 1) End Select​ «: n =​ Поз + 1,​ формате стандартной книги​

​ «Nineteen» Case Else​ GetHundreds(Right(MyNumber, 3)) If​

​ быть очень полезным​ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00»)&»​ позволяла выводить число​ Excel.​ сочетания клавиш Ctrl​Аля, был человек, который​ нужную валюту в​ языке If vl​ txt & Sotni(vl)​ «миллиарда » Desyatki(5)​ = «девять «:​ Select Case n​

exceltable.com

Преобразование числа в текст (сумма прописью)

​ Right(n, 1) Case​​ 2), «м») strМиллионы​ без поддержки макросов​ End Select Else​ Temp <> «»​ при использовании Excel​ коп.»);»ноль руб. 00​ прописью, например, в​Скачать примеры преобразования текста​ + C). Выделить​ сам с собой​ сумме прописью:​ = 1 Then​ Case 8 ‘​ = «пятьдесят «:​

​ EdinicyPoslednie(9) = IIf(Valuta​​ Case «1»: ИмяРазряда​ «5»: Десятки =​
​ = strМиллионы &​ (XLSX). Если щелкнуть​

​ ‘ If value​​ Then Dollars =​ как шаблон для​ коп.»)​ соседней ячейке слева​ в число.​

​ столбец с редактируемыми​​ говорил, но по​1-рубли;​
​ Sclon_Tys = «одна​

​ — десятки миллионов​​ Sotni(5) = «пятьсот​ = 0, «девять​ = Имя1 Case​ «пятьдесят «: n​ ИмяРазряда(strМиллионы, Mid(strЧисло, Поз​

​файл​ between 20-99… Select​ Temp & Place(Count)​ печати проверки.​Формула отобразит число прописью.​ от исходного числа).​Таким образом, возникающую при​ числами. В контекстном​ делу -​2-доллары;​ » & tys(vl)​ vl = Mid(SumInt,​ «: tys(5) =​ евро», IIf(Valuta =​ «2», «3», «4»:​ = Right(n, 1)​ + 1, 2),​>​ Case Val(Left(TensText, 1))​

​ & Dollars If​Если вы хотите преобразования​

​ Ячейки, содержащие исходное​​В результате вышеуказанных манипуляций​ импорте или копировании​

​ меню кнопки «Вставить»​​Guest​

​0-евро;​ ‘ — для​ shag, 1) If​ «тысяч «: mln(5)​

​ 1, «девять рублей»,​​ ИмяРазряда = Имя24​ Case «6»: Десятки​

​ «миллион «, «миллиона​​Сохранить​ Case 2: Result​ Len(MyNumber) > 3​ числовых значений в​ число и формулу,​

​ можно будет, например,​​ числовых данных ошибку​ нажать «Специальная вставка».​: работает и с​
​Как видите, этот VBA-код​ тысяч склонение «один»​ vl = «1»​

​ = «миллионов «:​​ «девять долларов»)) Edinicy(11)​ Case Else: ИмяРазряда​ = «шестьдесят «:​

planetaexcel.ru

Преобразование текста в число в ячейке Excel

​ «, «миллионов «)​. Откроется диалоговое окно​ = «Twenty «​ Then MyNumber =​ текстовом формате без​ можно перенести в​ записав в ячейке​ легко устранить. Преобразовать​ В открывшемся окне​ офисом 2к10​ макроса преобразует числа​ и «два» неприменимо​

Как преобразовать текст в число в Excel

​ And Mid(SumInt, shag​ mlrd(5) = «миллиардов​ = «одиннадцать «:​ = ИмяПроч End​ n = Right(n,​ ‘Тысячи’ Поз =​проекта VB​ Case 3: Result​

​ Left(MyNumber, Len(MyNumber) -​ отображения их как​ любое место в​G6​ текст в число​ установить галочку напротив​MCH​ в слова. После​ ( поэтому вводим​ + 1, 1)​

Ошибка значения.

​ » Desyatki(6) =​ EdinicyPoslednie(11) = IIf(Valuta​ Select End If​ 1) Case «7»:​

  1. ​ 7 strТысячи =​. Нажмите кнопку​ = «Thirty «​ 3) Else MyNumber​ слова, используйте функции​ книге или даже​исходное число, а​ можно разными способами​ «Умножить». После нажатия​: Функция кривая, на​ вставки данного кода​ переменную Sclon_Tys )​ <> 0 Then​ «шестьдесят «: Sotni(6)​ = 0, «одиннадцать​Преобразовать в число.
  2. ​ End Function​ Десятки = «семьдесят​ Сотни(Mid(strЧисло, Поз, 1))​Нет​ Case 4: Result​ = «» End​ текст .​ в другую книгу.​ в ячейке​Математические операции.
  3. ​ (с помощью макросов​ ОК текстовый формат​ числах 0, 1000000,​ в модуль редактора​ If vl =​ GoTo 10 Else​ = «шестьсот «:​ евро», IIf(Valuta =​Можно написать алгоритм макро​ «: n =​ strТысячи = strТысячи​.​ = «Forty «​ If Count =​Примечание:​Чтобы еще больше приблизиться​G7​ и без них).​ преобразуется в числовой.​ 1000000000 и др.​ макросов, у нас​Специальная вставка.
  4. ​ 2 Then Sclon_Tys​ txt = txt​ tys(6) = «тысяч​ 1, «одиннадцать рублей»,​ программы по-другому и​ Right(n, 1) Case​ & Десятки(Mid(strЧисло, Поз​Можно сохранить файл в​ Case 5: Result​ Count + 1​ Microsoft примеры программирования только​ к идеалу создадим​формулу =ЧислоПрописью, и​Печьсимв.
  5. ​ Сделать это просто​Удаление непечатаемых символов. Иногда​ дает не правильное​ работает новая функция,​ = «дві «​ & Desyatki(vl) ‘​ «: mln(6) =​ «одиннадцать долларов»)) Edinicy(12)​ еще сделать так,​ «8»: Десятки =​ + 1, 2),​ формате​

Текст по столбцам.

​ = «Fifty «​ Loop Select Case​ для иллюстрации и​ именованную формулу ЧислоПрописью.​

​ получить нужный результат.​

Макрос «Текст – число»

​ и быстро. А​ числовой формат не​ написание​ которую можно вызвать​

​ & tys(vl) ‘​ — если конец​

Набор значений.

​ «миллионов «: mlrd(6)​ = «двенадцать «:​ чтобы она дописывала​ «восемьдесят «: n​ «ж») strТысячи =​Книга Excel с поддержкой​ Case 6: Result​

​ Dollars Case «»​ без гарантий выраженное​ Для этого:​Все это реализовано в​ впоследствии с числовыми​ распознается программой из-за​

​vikttur​ из мастера (кнопка​ — для тысяч​ триады от 11​ = «миллиардов «​

​ EdinicyPoslednie(12) = IIf(Valuta​ валюту суммы прописью.​ = Right(n, 1)​ strТысячи & ИмяРазряда(strТысячи,​ макросов (xlsm)​ = «Sixty «​ Dollars = «No​ или подразумевается. Включает​выделите ячейку​

Макрос.

​ файле примера.​

Пример.

​ аргументами производятся все​ невидимых символов. Удалим​

​: Безымянный, Вы в​ fx возле строки​ склонение «один» и​ до 19 то​ Desyatki(7) = «семьдесят​

​ = 0, «двенадцать​ Для этого создайте​ Case «9»: Десятки​ Mid(strЧисло, Поз +​, чтобы сохранить файл​ Case 7: Result​ Dollars» Case «One»​

​ в себя, но​B1​Как и в примере​ необходимые операции.​

​ их с помощью​ каждой теме будете​

​ формул).​ «два» неприменимо (​ перескакиваем на единицы,​ «: Sotni(7) =​ евро», IIf(Valuta =​ Module2 и введите​ = «девяносто «:​ 1, 2), «тысяча​ в текущем формате.​ = «Seventy «​ Dollars = «One​ не ограничивается гарантий​;​

exceltable.com

​ статьи Число прописью (статичный​

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

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

числа словами в Excel.

Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:

  1. Открыть редактор макросов ALT+F11.
  2. Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub. Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем».
  3. Module.

  4. Вставить в модуль следующий код и сохранить:



Function ЧислоПропись(Число As CurrencyAs String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String, strМиллионы As String, strТысячи As String, strЕдиницы As String, strСотые As String
Dim Поз As Integer

 
strЧисло = Format(Int(Число), 

«000000000000»)

‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), «миллиард ««миллиарда ««миллиардов «)

‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), «миллион ««миллиона ««миллионов «)

‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), «ж»)
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), «тысяча ««тысячи ««тысяч «)

‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = «» Then strЕдиницы = «ноль «
‘strЕдиницы = strЕдиницы & ИмяРазряда(» «, Mid(strЧисло, Поз + 1, 2), «рубль «, «рубля «, «рублей «)

‘Сотые’
‘strСотые = strКопейки & » » & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘»копейка», «копейки», «копеек»)

 
ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) — 1)

Exit Function

 
Число_Error:
    MsgBox Err.Description

End Function

Function Сотни(n As StringAs String
Сотни = «»
Select Case n
    Case 0: Сотни = «»
    Case 1: Сотни = «сто «
    Case 2: Сотни = «двести «
    Case 3: Сотни = «триста «
    Case 4: Сотни = «четыреста «
    Case 5: Сотни = «пятьсот «
    Case 6: Сотни = «шестьсот «
    Case 7: Сотни = «семьсот «
    Case 8: Сотни = «восемьсот «
    Case 9: Сотни = «девятьсот «
End Select
End Function

Function Десятки(n As String, Sex As StringAs String
Десятки = «»
Select Case Left(n, 1)
    Case «0»: Десятки = «»: n = Right(n, 1)
    Case «1»: Десятки = «»
    Case «2»: Десятки = «двадцать «: n = Right(n, 1)
    Case «3»: Десятки = «тридцать «: n = Right(n, 1)
    Case «4»: Десятки = «сорок «: n = Right(n, 1)
    Case «5»: Десятки = «пятьдесят «: n = Right(n, 1)
    Case «6»: Десятки = «шестьдесят «: n = Right(n, 1)
    Case «7»: Десятки = «семьдесят «: n = Right(n, 1)
    Case «8»: Десятки = «восемьдесят «: n = Right(n, 1)
    Case «9»: Десятки = «девяносто «: n = Right(n, 1)
End Select

Dim Двадцатка As String
Двадцатка = «»
Select Case n
    Case «0»: Двадцатка = «»
    Case «1»
        Select Case Sex
            Case «м»: Двадцатка = «один «
            Case «ж»: Двадцатка = «одна «
            Case «с»: Двадцатка = «одно «
        End Select
    Case «2»:
        Select Case Sex
            Case «м»: Двадцатка = «два «
            Case «ж»: Двадцатка = «две «
            Case «с»: Двадцатка = «два «
        End Select
    Case «3»: Двадцатка = «три «
    Case «4»: Двадцатка = «четыре «
    Case «5»: Двадцатка = «пять «
    Case «6»: Двадцатка = «шесть «
    Case «7»: Двадцатка = «семь «
    Case «8»: Двадцатка = «восемь «
    Case «9»: Двадцатка = «девять «
    Case «10»: Двадцатка = «десять «
    Case «11»: Двадцатка = «одиннадцать «
    Case «12»: Двадцатка = «двенадцать «
    Case «13»: Двадцатка = «тринадцать «
    Case «14»: Двадцатка = «четырнадцать «
    Case «15»: Двадцатка = «пятнадцать «
    Case «16»: Двадцатка = «шестнадцать «
    Case «17»: Двадцатка = «семнадцать «
    Case «18»: Двадцатка = «восемнадцать «
    Case «19»: Двадцатка = «девятнадцать «
End Select

 
Десятки = Десятки & Двадцатка

End Function

Function ИмяРазряда(Строка As String, n As String, Имя1 As String, Имя24 As String, ИмяПроч As StringAs String

If Строка <> «» Then
    ИмяРазряда = «»
    Select Case Left(n, 1)
        Case «0»«2»«3»«4»«5»«6»«7»«8»«9»: n = Right(n, 1)
    End Select

Select Case n
        Case «1»: ИмяРазряда = Имя1
        Case «2»«3»«4»: ИмяРазряда = Имя24
        Case Else: ИмяРазряда = ИмяПроч
    End Select
End If

End Function

ЧислоПропись.

Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:

Function ЧислоПрописьюВалюта(Число As DoubleOptional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = «Функция преобразовывает число суммы текстовыми словами»
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = » n1″
Dim Edinicy(0 To 19) As StringDim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As StringDim Sotni(0 To 9) As StringDim mlrd(0 To 9) As String
Dim mln(0 To 9) As StringDim tys(0 To 9) As String
Dim SumInt, x, shag, vl As IntegerDim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = «»: EdinicyPoslednie(0) = IIf(Валюта = 0, «евро», IIf(Валюта = 1, «рублей»«долларов»))
Edinicy(1) = «один «: EdinicyPoslednie(1) = IIf(Валюта = 0, «один евро», IIf(Валюта = 1, «один рубль»«один доллар»))
Edinicy(2) = «два «: EdinicyPoslednie(2) = IIf(Валюта = 0, «два евро», IIf(Валюта = 1, «два рубля»«два доллара»))
Edinicy(3) = «три «: EdinicyPoslednie(3) = IIf(Валюта = 0, «три евро», IIf(Валюта = 1, «три рубля»«три доллара»))
Edinicy(4) = «четыре «: EdinicyPoslednie(4) = IIf(Валюта = 0, «четыре евро», IIf(Валюта = 1, «четыре рубля»«четыре доллара»))
Edinicy(5) = «пять «: EdinicyPoslednie(5) = IIf(Валюта = 0, «пять евро», IIf(Валюта = 1, «пять рублей»«пять долларов»))
Edinicy(6) = «шесть «: EdinicyPoslednie(6) = IIf(Валюта = 0, «шесть евро», IIf(Валюта = 1, «шесть рублей»«шесть долларов»))
Edinicy(7) = «семь «: EdinicyPoslednie(7) = IIf(Валюта = 0, «семь евро», IIf(Валюта = 1, «семь рублей»«семь долларов»))
Edinicy(8) = «восемь «: EdinicyPoslednie(8) = IIf(Валюта = 0, «восемь евро», IIf(Валюта = 1, «восемь рублей»«восемь долларов»))
Edinicy(9) = «девять «: EdinicyPoslednie(9) = IIf(Валюта = 0, «девять евро», IIf(Валюта = 1, «девять рублей»«девять долларов»))
Edinicy(11) = «одиннадцать «: EdinicyPoslednie(11) = IIf(Валюта = 0, «одиннадцать евро», IIf(Валюта = 1, «одиннадцать рублей»«одиннадцать долларов»))
Edinicy(12) = «надцать «: EdinicyPoslednie(12) = IIf(Валюта = 0, «надцать евро», IIf(Валюта = 1, «надцать рублей»«надцать долларов»))
Edinicy(13) = «тринадцать «: EdinicyPoslednie(13) = IIf(Валюта = 0, «тринадцать евро», IIf(Валюта = 1, «тринадцать рублей»«тринадцать долларов»))
Edinicy(14) = «четырнадцать «: EdinicyPoslednie(14) = IIf(Валюта = 0, «четырнадцать евро», IIf(Валюта = 1, «четырнадцать рублей»«четырнадцать долларов»))
Edinicy(15) = «пятнадцать «: EdinicyPoslednie(15) = IIf(Валюта = 0, «пятнадцать евро», IIf(Валюта = 1, «пятнадцать рублей»«пятнадцать долларов»))
Edinicy(16) = «шестнадцать «: EdinicyPoslednie(16) = IIf(Валюта = 0, «шестнадцать евро», IIf(Валюта = 1, «шестнадцать рублей»«шестнадцать долларов»))
Edinicy(17) = «семнадцать «: EdinicyPoslednie(17) = IIf(Валюта = 0, «семнадцать евро», IIf(Валюта = 1, «семнадцать рублей»«семнадцать долларов»))
Edinicy(18) = «восемнадцать «: EdinicyPoslednie(18) = IIf(Валюта = 0, «восемнадцать евро», IIf(Валюта = 1, «восемнадцать рублей»«восемнадцать долларов»))
Edinicy(19) = «девятнадцать «: EdinicyPoslednie(19) = IIf(Валюта = 0, «девятнадцать евро», IIf(Валюта = 1, «девятнадцать рублей»«девятнадцать долларов»))
»———————————————
Desyatki(0) = «»: Sotni(0) = «»: tys(0) = «тисячь «: mln(0) = «миллионов «: mlrd(0) = «миллиардов «
Desyatki(1) = «десять «: Sotni(1) = «сто «: tys(1) = «тысяча «: mln(1) = «миллион «: mlrd(1) = «миллиарда «
Desyatki(2) = «двадцать «: Sotni(2) = «двести «: tys(2) = «тысячи «: mln(2) = «миллиона «: mlrd(2) = «миллиарда «
Desyatki(3) = «тридцать «: Sotni(3) = «триста «: tys(3) = «тысячи «: mln(3) = «миллиона «: mlrd(3) = «миллиарда «
Desyatki(4) = «сорок «: Sotni(4) = «четыреста «: tys(4) = «тысячи «: mln(4) = «миллиона «: mlrd(4) = «миллиарда «
Desyatki(5) = «пятьдесят «: Sotni(5) = «пятьсот «: tys(5) = «тысяч «: mln(5) = «миллионов «: mlrd(5) = «миллиардов «
Desyatki(6) = «шестьдесят «: Sotni(6) = «шестьсот «: tys(6) = «тысяч «: mln(6) = «миллионов «: mlrd(6) = «миллиардов «
Desyatki(7) = «семьдесят «: Sotni(7) = «семьсот «: tys(7) = «тысяч «: mln(7) = «миллионов «: mlrd(7) = «миллиардов «
Desyatki(8) = «восемьдесят «: Sotni(8) = «восемьсот «: tys(8) = «тысяч «: mln(8) = «миллионов «: mlrd(8) = «миллиардов «
Desyatki(9) = «девяносто «: Sotni(9) = «девятьсот «: tys(9) = «тысяч «: mln(9) = «миллионов «: mlrd(9) = «миллиардов «
‘———————————————

On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
    shag = shag + 1
    Select Case x
        Case 12 ‘ — сотни миллиардов
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 11 ‘ — десятки  миллиардов
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 10 ‘ — единицы  миллиардов
            vl = Mid(SumInt, shag, 1)
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиарда « Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на «мільярдов» независимо от последнего числа триады
            Else
                txt = txt & Edinicy(vl) & mlrd(vl)
            End If

‘-КОНЕЦ БЛОКА_______________________

Case 9 ‘ — сотни миллионов
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 8 ‘ — десятки  миллионов
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 7 ‘ — единицы  миллионов
            vl = Mid(SumInt, shag, 1)
            If shag > 2 Then
                If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0»Then GoTo 10
            End If
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиона « Else: txt = txt & Edinicy(vl) & mln(vl)  ‘числа в диапозоне от 11 до 19 склоняются на «миллиардов» независимо от последнего числа триады
            Else
                txt = txt & Edinicy(vl) & mln(vl)
            End If
        ‘-КОНЕЦ БЛОКА_______________________

Case 6 ‘ — сотни тысяч
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 5 ‘ — десятки  тысяч
            vl = Mid(SumInt, shag, 1)
            If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 4 ‘ — единицы  тысяч
            vl = Mid(SumInt, shag, 1)
            If shag > 2 Then
                If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0»Then GoTo 10
            End If
            Sclon_Tys = Edinicy(vl) & tys(vl) ‘ — вводим переменную Sclon_Tys из-за иного склонения  тысяч в русском языке
            If vl = 1 Then Sclon_Tys = «одна « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную  Sclon_Tys )
            If vl = 2 Then Sclon_Tys = «две « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную  Sclon_Tys )
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag — 1, 2)) & «тисяч «
            End If
            txt = txt & Sclon_Tys

‘-КОНЕЦ БЛОКА_______________________
        Case 3 ‘ — сотни
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 2 ‘ — десятки
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 1 ‘ — единицы
            If Mid(SumInt, shag — 1, 1) <> 1 Or Mid(SumInt, shag — 1, 2) = «10» Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag — 1, 2)
                txt = txt & EdinicyPoslednie(vl)

‘-КОНЕЦ БЛОКА_______________________

End Select
10:    Next x
a = Число
b = Int(a)
c = (Round(a — b, 2)) * 100
If c < 10 And c >= 1 Then c = «0» + CStr(c)
If c = 0 Then c = CStr(c) + «0»
d = «»
If Валюта = 1 Then d = «коп.» Else d = «цен.»
If Валюта > 2 Or Валюта < 0 Then MsgBox «Укажите параметр 0-2»
If Валюта > 2 Or Валюта < 0 Then GoTo 11
If Копейки = 0 Then
d = «»
c = «»
End If
If Копейки = 2 Then d = «»
If Копейки > 2 Or Копейи < 0 Then MsgBox «Укажите параметр 0, 1 или 2»
If Копейки > 2 Or Копейки < 0 Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + » « + CStr(c) + d
11:
End Function

Sub DescribeFunction()
   Dim FuncName As String
   Dim FuncDesc As String
   Dim Category As String
   Dim ArgDesc(1 To 3) As String

 
   FuncName = 

«ЧислоПрописьюВалюта»
   FuncDesc = «Функция преобразовывает число суммы текстовыми словами»
   Category = 1 ‘Text category
   ArgDesc(1) = «Исходная сумма»
   ArgDesc(2) = «(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары.»
   ArgDesc(3) = «(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов).»

 
   Application.MacroOptions _
      Macro:=FuncName, _
      Description:=FuncDesc, _
      Category:=Category, _
      ArgumentDescriptions:=ArgDesc

End Sub
 

Также не забудьте добавить в рабочую книгу код вызова макроса регистрации DescribeFunction, чтобы отображать описание атрибутов для пользовательской функции:

Private Sub Workbook_Open()
DescribeFunction
End Sub
 

Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»

ЧислоПрописьюВалюта.

Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:

  • 1-рубли;
  • 2-доллары;
  • 0-евро;

Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).

Скачать число прописью в Excel руб RUB.

Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:

Скачать функцию ЧислоСловоВалюта ГРН UAH

ЧислоСловоВалюта гривня.

Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.

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

Как в Excel сделать сумму прописью

Скачать файл надстройки

Чтобы получить эту возможность, вы можете скачать надстройку «Сумма прописью» в Excel бесплатно на нашем сайте.

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

Эта функция «сумма_прописью» работает в Excel 2007, 2010, 2016

Данная надстройка работает только для рублей. Если вам нужна другая валюта, скачайте еще файл sumprop.xla. Действуя по аналогии подключите надстройку для получения суммы прописью в Excel.

Для проверки введем в ячейке A3 произвольное число. Пусть это будет десятичная дробь. Также вызовем окно вставки функций и найдем новые функции для вывода суммы прописью.

Как видите, нам стали доступны:

  • Сумма Прописью
  • Сумма Прописью Доллары
  • Сумма Прописью Евро
  • Сумма Прописью Евро

Переведем число в евро. Выбираем соответствующую функцию и кликаем по ячейке с числом.

После нажатия ОК получаем результат.

С помощью этих инструментов преобразование числа в текст прописью в Excel выполняется очень просто. Если по каким-то причинам вы не хотите устанавливать их в Excel, можно воспользоваться другим способом.

Формула суммы прописью в Excel — как написать число

Для вывода числа прописью в Excel можно создать формулу. Приведем пример:

ПОДСТАВИТЬ(ПРОПНАЧ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);1;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A3;n0);2;1)+1;ПСТР(ТЕКСТ(A3;n0);3;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);1;3);»миллиард»&ВПР(ПСТР(ТЕКСТ(A3;n0);3;1)*И(ПСТР(ТЕКСТ(A3;n0);2;1)-1);мил;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);4;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A3;n0);5;1)+1;ПСТР(ТЕКСТ(A3;n0);6;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);4;3);»миллион»&ВПР(ПСТР(ТЕКСТ(A3;n0);6;1)*И(ПСТР(ТЕКСТ(A3;n0);5;1)-1);мил;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);7;1)+1)&ИНДЕКС(n1x;ПСТР(ТЕКСТ(A3;n0);8;1)+1;ПСТР(ТЕКСТ(A3;n0);9;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);7;3);ВПР(ПСТР(ТЕКСТ(A3;n0);9;1)*И(ПСТР(ТЕКСТ(A3;n0);8;1)-1);тыс;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);10;1)+1)&ИНДЕКС(ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);14;6);n1x;n0x);ПСТР(ТЕКСТ(A3;n0);11;1)+1;ПСТР(ТЕКСТ(A3;n0);12;1)+1));»z»;» «)&ЕСЛИ(ОТБР(ТЕКСТ(A3;n0));;»Ноль «)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);14;6);ЕСЛИ(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);11;2)-11;100);9);10);»целых «;»целая «)&ПОДСТАВИТЬ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);14;6)/10^5+1)&ИНДЕКС(n1x;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/10^4;10)+1;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000;10)+1)&ЕСЛИ(ЦЕЛОЕ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000);ВПР(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000;10)*(ОСТАТ(ЦЕЛОЕ(ПСТР(ТЕКСТ(A3;n0);14;6)/10^4);10)<>1);тыс;2);»»)&ИНДЕКС(n_4;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/100;10)+1)&ИНДЕКС(n1x;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/10;10)+1;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6);10)+1);»z»;» «)&ИНДЕКС(доля;ДЛСТР(ПСТР(ТЕКСТ(A3;n0);14;6));(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)-11;100);9);10)>0)+1);)

Для ее использования вам необходимо указать несколько массивов Excel:

  • n_1 ={«»;»одинz»;»дваz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}
  • n_2 ={«десятьz»;»одиннадцатьz»;»двенадцатьz»;»тринадцатьz»;»четырнадцатьz»;»пятнадцатьz»;»шестнадцатьz»;»семнадцатьz»;»восемнадцатьz»;»девятнадцатьz»}
  • n_3 ={«»:1:»двадцатьz»:»тридцатьz»:»сорокz»:»пятьдесятz»:»шестьдесятz»:»семьдесятz»:»восемьдесятz»:»девяностоz»}
  • n_4 ={«»;»стоz»;»двестиz»;»тристаz»;»четырестаz»;»пятьсотz»;»шестьсотz»;»семьсотz»;»восемьсотz»;»девятьсотz»}
  • n_5 ={«»;»однаz»;»двеz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}
  • n0 =»000000000000″&ПСТР(1/2;2;1)&»0#####»
  • n0x =ЕСЛИ(n_3=1;n_2;n_3&n_1)
  • n1x =ЕСЛИ(n_3=1;n_2;n_3&n_5)
  • доля ={«десятая»;»десятых»:»сотая»;»сотых»:»тысячная»;»тысячных»:»десятитысячная»;»десятитысячных»:»стотысячная»;»стотысячных»:»миллионная «;»миллионных»}
  • мил ={0;»овz»:1;»z»:2;»аz»:5;»овz»}
  • тыс ={0;»тысячz»:1;»тысячаz»:2;»тысячиz»:5;»тысячz»}

Просто скопируйте эту таблицу на лист Excel, а формулу вставляйте туда, где необходима сумма прописью. Вышеприведенная конструкция предназначена для ячейки A3. Не забудьте поменять адрес.

В англоязычном Excel формула суммы прописью будет выглядеть следующим образом:

SUBSTITUTE(PROPER(INDEX(n_4,MID(TEXT(A1,n0),1,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),2,1)+1,MID(TEXT(A1,n0),3,1)+1)&IF(-MID(TEXT(A1,n0),1,3),»миллиард»&VLOOKUP(MID(TEXT(A1,n0),3,1)*AND(MID(TEXT(A1,n0),2,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),4,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),5,1)+1,MID(TEXT(A1,n0),6,1)+1)&IF(-MID(TEXT(A1,n0),4,3),»миллион»&VLOOKUP(MID(TEXT(A1,n0),6,1)*AND(MID(TEXT(A1,n0),5,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),7,1)+1)&INDEX(n1x,MID(TEXT(A1,n0),8,1)+1,MID(TEXT(A1,n0),9,1)+1)&IF(-MID(TEXT(A1,n0),7,3),VLOOKUP(MID(TEXT(A1,n0),9,1)*AND(MID(TEXT(A1,n0),8,1)-1),тыс,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),10,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),11,1)+1,MID(TEXT(A1,n0),12,1)+1)),»z»,» «)&IF(TRUNC(TEXT(A1,n0)),»»,»Ноль «)&»рубл»&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1,n0),11,2)-11,100),9),10),{0,»ь «;1,»я «;4,»ей «},2)&RIGHT(TEXT(A1,n0),2)&» копе»&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1,n0),2)-11,100),9),10),{0,»йка»;1,»йки»;4,»ек»},2)

Как видим, это не самый удобный способ преобразовать число в текст прописью в Excel.

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

Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль.

В него добавьте следующий код.

Function SUMMPROPIS(n As Double) As String
 Dim Chis1, Chis2, Chis3, Chis4, Chis5 As Variant
 Chis1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Chis2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят", "девяносто ")
 Chis3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
 Chis4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Chis5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 If n <= 0 Then
 SUMMPROPIS = "ноль"
 Exit Function
End If
 cifr = Retclass(n, 1)
 des = Retclass(n, 2)
 hund = Retclass(n, 3)
 thous = Retclass(n, 4)
 desthous = Retclass(n, 5)
 hundthous = Retclass(n, 6)
 mil = Retclass(n, 7)
 desmil = Retclass(n, 8)Select Case desmil
 Case 1
 mil_txt = Chis5(mil) & "миллионов "
 GoTo www
 Case 2 To 9
 desmil_txt = Chis2(desmil)
 End Select
 Select Case mil
 Case 1
 mil_txt = Chis1(mil) & "миллион "
 Case 2, 3, 4
 mil_txt = Chis1(mil) & "миллиона "
 Case 5 To 20
 mil_txt = Chis1(mil) & "миллионов "
 End Select
www:
 hundthous_txt = Chis3(hundthous)
 Select Case desthous
 Case 1
 thous_txt = Chis5(thous) & "тысяч "
 GoTo eee
 Case 2 To 9
 desthous_txt = Chis2(desthous)
 End Select
 Select Case thous
 Case 0
 If desthous > 0 Then thous_txt = Chis4(thous) & "тысяч "
 Case 1
 thous_txt = Chis4(thous) & "тысяча "
 Case 2, 3, 4
 thous_txt = Chis4(thous) & "тысячи "
 Case 5 To 9
 thous_txt = Chis4(thous) & "тысяч "
 End Select
 If desthous = 0 And thous = 0 And hundthous <> 0 Then hundthous_txt = hundthous_txt & " тысяч "
eee:
 hund_txt = Chis3(hund)
 Select Case des
 Case 1
 cifr_txt = Chis5(cifr)
 GoTo rrr
 Case 2 To 9
 des_txt = Chis2(des)
 End Select 
 cifr_txt = Chis1(cifr)
rrr:
 SUMMPROPIS = desmil_txt & mil_txt & hundthous_txt & desthous_txt & thous_txt & hund_txt & des_txt & cifr_txt
End Function
Private Function Retclass(M, I)
 Retclass = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))
End Function

Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем».

В качестве аргумента укажите адрес с числом.

Перевод в сумму прописью осуществляется только для целых чисел.

Дробное число требует дополнительной формулы:

 =SUMMPROPIS(A7)&" руб. "&ТЕКСТ((A7-ЦЕЛОЕ(A7))*100;"00")&" коп."

Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа.

Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!

Отличного Вам дня!

Как создается сумма прописью в Excel?

Добрый день уважаемый читатель!

Статья посвящена такому интересному вопросу: «Как создается сумма прописью в Excel?». Эта возможность позволяет нам всю массу информации и расчетов, которые сведены в один результат, оформить как финансовой документ, которые нельзя трактовать двузначно. Недаром же любые банковские, юридические и финансовые документы оформляются и цифрами и буквами. Окромя всего, такие суммы не позволяют ошибаться, где же должна стоять запятая и просто отлично выглядят в сравнении с рядом цифр. Подведя итог, скажу, что любой пользователь Excel, который работает с цифрами и временем, а также печатает документы с их использованием, очень нуждается в инструменте создающим сумму прописью.

Решить эту проблему можно несколькими способами:

Создание сумм прописью с помощью формул

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

Ради общего интереса я предоставлю вам пример файла с работающей формулой, которую я нашёл на excelworld.ru, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.

С помощью пользовательской функции

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

Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:Documents and SettingsUserApplication DataMicrosoftAddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. В результате мы получаем возможность получить следующие данные:

С помощью VBA

Вот еще один способ на любителя. Конечно создать сумму прописью в Excel с помощью макроса не самый распространённый способ, но им достаточно часто пользовались и пользуются до сих пор. Большой сложности он не представляет, вам нужно:

  • Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
  • С помощью меню «Insert» — «Module», создать пустой новый модуль;
  • Скопировать предоставленный код макроса в тело модуля.

Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.

Как преобразовать число в текст прописью и наоборот? Сумма прописью в Excel 2007/2010/2013/2016

Хочу начать эту статью короткой историей из своего опыта. Было время, когда приходилось трудиться куратором договоров и при составлении этих самых договоров набирать на клавиатуре сумму договора прописью.

И поскольку реестр договоров велся в Excel, то возник соблазн воспользоваться какой-нибудь формулой, которая бы перевела мне число, набранное цифрами, в число написанное прописью, причем по-русски. Перебрав все стандартные формулы в Excel, и найдя в категории «текстовые» функцию БАТТЕКСТ с описанием «преобразует число в текст», признаюсь, обрадовался. Разочарование наступило очень быстро, когда число, преобразованное в текст прописью оказалось на непонятном мне языке.

Как преобразовать число в текст прописью?

После этого была создана надстройка, в которой были объединены все наиболее востребованные инструменты для преобразования чисел в текст прописью на русском языке. Кроме людей, работающих с договорами, эта надстройка может стать незаменимым инструментом в повседневной работе бухгалтеров, менеджеров, экономистов, финансистов и вообще всех пользователей, кто использует в своей деятельности Microsoft Office Excel для работы с договорами, платежками, приходниками, расходниками, счетами-фактурами и прочими документами, формируемыми в Excel.

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

1. Одним кликом мыши вызвать диалоговое окно макроса прямо с панели инструментов Excel;

2. преобразовать любое число от 0 до 999 999 999 999 в прописной текст ;

3. преобразовать все числа в выбранном Вами диапазоне;

4. использовать при написании чисел прописью одну из валют на выбор: рубли, доллары, евро, тенге, гривны;

5. выбрать строчную либо заглавную букву в каждом первом слове суммы прописью;

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

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

Как преобразовать текст, написанный прописью в число цифрами?

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

1. Одним кликом мыши вызвать диалоговое окно макроса прямо с панели инструментов Excel;

2. преобразовать любую сумму, написанную прописью в число от 0 до 999 999 999, 99;

3. найти и преобразовать все суммы прописью в выбранном Вами диапазоне;

4. находить и преобразовывать суммы, написанные прописью с использованием любых валют: рублей, гривен, долларов, евро и др.;

5. выбрать любую позицию для вставки числа относительно ячейки с суммой прописью;

6. использовать пользовательскую функцию, аналогично стандартной формуле, которая позволит трансформировать сумму прописью в число.

*Для этой надстройки действуют следующие ограничения:

1) Предельная сумма прописью, которая может быть преобразована в число — Девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять рублей 99 копеек;

2) В сумме прописью обязательно должна присутствовать какая-либо валюта: рубли, гривны, доллары, евро, йены, юани и так далее.

Сумма прописью в Microsoft Excel

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

Использование надстройки

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

Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.

  1. Открываем программу Excel и переходим во вкладку «Файл».

Перемещаемся в раздел «Параметры».

В активном окне параметров переходим в раздел «Надстройки».

Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».

В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».

Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».

Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».

Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.

Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».

  • После этого, любое число, которое записано в ячейку, указанную вами, будет отображаться в денежном виде прописью в том месте, где установлена формула функции.
  • Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5) , то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».

    Если вы введете в ячейку формулу =Сумма_прописью(A2) , то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.

    Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Число прописью в Excel: инструкция, как написать сумму

    Сумма прописью в Excel

    Windows 10 на калькуляторе

    Windows 10 не видит флешку

    Не работают наушники на компьютере Windows 10

    Ноутбук с Windows 10 не видит наушники

    Не видит компьютеры в сети Windows 10

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

    Как в Excel сделать сумму прописью

    Чтобы получить эту возможность, вы можете скачать надстройку «Сумма прописью» в Excel бесплатно на нашем сайте.

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

    Эта функция «сумма_прописью» работает в Excel 2007, 2010, 2016

    Данная надстройка работает только для рублей. Если вам нужна другая валюта, скачайте еще файл sumprop.xla. Действуя по аналогии подключите надстройку для получения суммы прописью в Excel.

    Для проверки введем в ячейке A3 произвольное число. Пусть это будет десятичная дробь. Также вызовем окно вставки функций и найдем новые функции для вывода суммы прописью.

    Как видите, нам стали доступны:

    • Сумма Прописью
    • Сумма Прописью Доллары
    • Сумма Прописью Евро
    • Сумма Прописью Евро

    Переведем число в евро. Выбираем соответствующую функцию и кликаем по ячейке с числом.

    После нажатия ОК получаем результат.

    С помощью этих инструментов преобразование числа в текст прописью в Excel выполняется очень просто. Если по каким-то причинам вы не хотите устанавливать их в Excel, можно воспользоваться другим способом.

    Формула суммы прописью в Excel — как написать число

    Для вывода числа прописью в Excel можно создать формулу. Приведем пример:

    Для ее использования вам необходимо указать несколько массивов Excel:

    Просто скопируйте эту таблицу на лист Excel, а формулу вставляйте туда, где необходима сумма прописью. Вышеприведенная конструкция предназначена для ячейки A3. Не забудьте поменять адрес.

    В англоязычном Excel формула суммы прописью будет выглядеть следующим образом:

    SUBSTITUTE(PROPER(INDEX(n_4,MID(TEXT(A1,n0),1,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),2,1)+1,MID(TEXT(A1,n0),3,1)+1)&IF(-MID(TEXT(A1,n0),1,3),»миллиард»&VLOOKUP(MID(TEXT(A1,n0),3,1)*AND(MID(TEXT(A1,n0),2,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),4,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),5,1)+1,MID(TEXT(A1,n0),6,1)+1)&IF(-MID(TEXT(A1,n0),4,3),»миллион»&VLOOKUP(MID(TEXT(A1,n0),6,1)*AND(MID(TEXT(A1,n0),5,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),7,1)+1)&INDEX(n1x,MID(TEXT(A1,n0),8,1)+1,MID(TEXT(A1,n0),9,1)+1)&IF(-MID(TEXT(A1,n0),7,3),VLOOKUP(MID(TEXT(A1,n0),9,1)*AND(MID(TEXT(A1,n0),8,1)-1),тыс,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),10,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),11,1)+1,MID(TEXT(A1,n0),12,1)+1)),»z»,» «)&IF(TRUNC(TEXT(A1,n0)),»»,»Ноль «)&»рубл»&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1,n0),11,2)-11,100),9),10),<0,»ь «;1,»я «;4,»ей «>,2)&RIGHT(TEXT(A1,n0),2)&» копе»&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1,n0),2)-11,100),9),10),<0,»йка»;1,»йки»;4,»ек»>,2)

    Как видим, это не самый удобный способ преобразовать число в текст прописью в Excel.

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

    Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль.

    В него добавьте следующий код.

    Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем».

    В качестве аргумента укажите адрес с числом.

    Перевод в сумму прописью осуществляется только для целых чисел.

    Дробное число требует дополнительной формулы:

    Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа.

    Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!

    Сумма прописью в Excel

    Денежная сумма прописью на рабочем листе Excel. Преобразование с помощью блока ячеек с формулами. Применение пользовательской функции «СуммаПрописью».

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

    В этой статье рассмотрены способы преобразования денежного значения в самый употребительный текстовый формат: 0,00 = Ноль рублей 00 копеек.

    Блок ячеек с формулами

    Скачайте файл Excel с блоком ячеек с формулами, преобразующими число в сумму прописью, и примером размещения ссылок.

    Работать с блоком ячеек чрезвычайно просто:

    • Скопируйте диапазон с формулами и вставьте в нужный файл.
    • Замените в блоке входную ссылку рядом со словом «Вход».
    • В ячейку, где должна отображаться сумма прописью, добавьте ссылку на выходную ячейку блока (рядом со словом «Выход»).

    Пример размещения ссылок смотрите в скачанном файле. При желании, диапазон ячеек с формулами можно скрыть.

    Преимущества блока ячеек с формулами:

    • это самый простой для реализации способ автоматизации перевода числовых выражений в сумму прописью;
    • файлы с блоками ячеек правильно работают у других пользователей программы Excel без дополнительного разрешения выполнения макросов.

    Недостатки блока ячеек с формулами:

    • не совсем удобно для пользователя каждый раз переносить блок ячеек с формулами из файла в файл;
    • если диапазон ячеек с формулами скрыт или размещен вне видимого экрана, можно случайно удалить часть формул вместе с удаляемыми строками или столбцами.

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

    Функция «СуммаПрописью»

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

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

    Чтобы функция была доступна из всех рабочих книг на отдельном компьютере, ее код следует добавить в персональную (личную) книгу макросов (PERSONAL.XLSB). В этом случае функция будет работать на другом компьютере, если только ее код будет размещен в персональной книге макросов на другом компьютере.

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

    1. Скачайте архив и извлеките из него файл «Module.bas» с кодом функции.
    2. Откройте любую книгу Excel, можно новую.
    3. Сочетанием левой клавиши Alt+F11 откройте редактор Visual Basic for Applications.

    1. Дважды кликните на строке «VBA Project (PERSONAL.XLSB)» или один раз на крестике слева для открытия вложенного списка. Если эта позиция уже развернута переходите к пункту 5.

    1. Дважды кликните на строке «Microsoft Excel Objects» или один раз на крестике слева для открытия списка объектов. Если эта позиция уже развернута переходите к пункту 6.

    1. Кликнув правой кнопкой на строке «ЭтаКнига», откройте контекстное меню и выберите в нем пункт «Import File. ».

    1. В открывшемся диалоге выбора файлов найдите извлеченный ранее из архива «Module.bas» и выберите его двойным кликом. Модуль с функцией будет автоматически загружен.

    Теперь можно в ячейки на листах любых рабочих книг вставлять формулу: «=PERSONAL.XLSB!СуммаПрописью(АдресЯчейки)» или, что намного удобнее, выбирать функцию с помощью мастера. Откройте мастер функций, выберите категорию «Определенные пользователем» и в списке доступных функций появится строка «PERSONAL.XLSB!СуммаПрописью», которую можно выбрать, а на втором шаге вставить адрес ячейки с числовым значением.

    Формула будет доступна во всех книгах Excel, но только на компьютере, на котором находится персональная книга макросов PERSONAL.XLSB с загруженным модулем.

    Если книгу планируется передавать на другие машины, тогда в шаге 6 надо правой кнопкой кликнуть на строке «ЭтаКнига», относящейся не к «VBA Project (PERSONAL.XLSB)», а относящейся к «VBA Project (ВашаКнига)» с именем вашей книги. Тогда модуль с функцией загрузится непосредственно в вашу рабочую книгу Excel и будет доступен для этой книги на любом компьютере. В этом случае формула в ячейке будет иметь вид: «=СуммаПрописью(АдресЯчейки)».

    С кодом функции «СуммаПрописью» вы можете ознакомиться в этой статье.

    Дано: Excel c числами и суммами в рублях в ячейках.
    Задача: написать данные числа прописью без использования макросов и каких-либо надстроек программы Excel, т.е. написать число прописью при помощи стандартных формул.

    Пример файла excel с таким решением можно скачать здесь.
    См. также Сумма прописью онлайн (если просто нужно получить результат).
    Что означает прописью?
    Данный файл производит следующие манипуляции с числами:

    1. Формула 1 преобразовывает число в сумму прописью следующего формата:
    «0 (пропись) рублей 00 копеек»

    2. Формула 2 преобразовывает число в сумму прописью следующего формата:
    «Пропись рублей 00 копеек»

    3. Формула 3 просто переводит число в текст: число = пропись

    Вот формулы, которые пишут сумму прописью:

    1) Формула 1:

    =ПОДСТАВИТЬ(ТЕКСТ(ОТБР(A1;0);«# ##0_ «) & «(« & ПОДСТАВИТЬ(ПРОПНАЧ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);1;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);2;1)+1;ПСТР(ТЕКСТ(A1;n0);3;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);1;3);«миллиард»&ВПР(ПСТР(ТЕКСТ(A1;n0);3;1)*И(ПСТР(ТЕКСТ(A1;n0);2;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);4;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);5;1)+1;ПСТР(ТЕКСТ(A1;n0);6;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);4;3);«миллион»&ВПР(ПСТР(ТЕКСТ(A1;n0);6;1)*И(ПСТР(ТЕКСТ(A1;n0);5;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);7;1)+1)&ИНДЕКС(n1x;ПСТР(ТЕКСТ(A1;n0);8;1)+1;ПСТР(ТЕКСТ(A1;n0);9;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);7;3);ВПР(ПСТР(ТЕКСТ(A1;n0);9;1)*И(ПСТР(ТЕКСТ(A1;n0);8;1)-1);тыс;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);10;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);11;1)+1;ПСТР(ТЕКСТ(A1;n0);12;1)+1));«z»;» «)&ЕСЛИ(ОТБР(ТЕКСТ(A1;n0));«»;«Ноль «)&«) рубл»&ВПР(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A1;n0);11;2)-11;100);9);10);{0;«ь «:1;«я «:4;«ей «};2)&ПРАВСИМВ(ТЕКСТ(A1;n0);2)&» копе»&ВПР(ОСТАТ(МАКС(ОСТАТ(ПРАВСИМВ(ТЕКСТ(A1;n0);2)-11;100);9);10);{0;«йка»:1;«йки»:4;«ек»};2);» )»;«)»)

    2) Формула 2

    =ПОДСТАВИТЬ(ПРОПНАЧ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);1;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);2;1)+1;ПСТР(ТЕКСТ(A1;n0);3;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);1;3);«миллиард»&ВПР(ПСТР(ТЕКСТ(A1;n0);3;1)*И(ПСТР(ТЕКСТ(A1;n0);2;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);4;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);5;1)+1;ПСТР(ТЕКСТ(A1;n0);6;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);4;3);«миллион»&ВПР(ПСТР(ТЕКСТ(A1;n0);6;1)*И(ПСТР(ТЕКСТ(A1;n0);5;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);7;1)+1)&ИНДЕКС(n1x;ПСТР(ТЕКСТ(A1;n0);8;1)+1;ПСТР(ТЕКСТ(A1;n0);9;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);7;3);ВПР(ПСТР(ТЕКСТ(A1;n0);9;1)*И(ПСТР(ТЕКСТ(A1;n0);8;1)-1);тыс;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);10;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);11;1)+1;ПСТР(ТЕКСТ(A1;n0);12;1)+1));«z»;» «)&ЕСЛИ(ОТБР(ТЕКСТ(A1;n0));«»;«Ноль «)&«рубл»&ВПР(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A1;n0);11;2)-11;100);9);10);{0;«ь «:1;«я «:4;«ей «};2)&ПРАВСИМВ(ТЕКСТ(A1;n0);2)&» копе»&ВПР(ОСТАТ(МАКС(ОСТАТ(ПРАВСИМВ(ТЕКСТ(A1;n0);2)-11;100);9);10);{0;«йка»:1;«йки»:4;«ек»};2)

    3) Формула 3

    =ПОДСТАВИТЬ(ПРОПНАЧ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);1;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);2;1)+1;ПСТР(ТЕКСТ(A1;n0);3;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);1;3);«миллиард»&ВПР(ПСТР(ТЕКСТ(A1;n0);3;1)*И(ПСТР(ТЕКСТ(A1;n0);2;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);4;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);5;1)+1;ПСТР(ТЕКСТ(A1;n0);6;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);4;3);«миллион»&ВПР(ПСТР(ТЕКСТ(A1;n0);6;1)*И(ПСТР(ТЕКСТ(A1;n0);5;1)-1);мил;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);7;1)+1)&ИНДЕКС(n1x;ПСТР(ТЕКСТ(A1;n0);8;1)+1;ПСТР(ТЕКСТ(A1;n0);9;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A1;n0);7;3);ВПР(ПСТР(ТЕКСТ(A1;n0);9;1)*И(ПСТР(ТЕКСТ(A1;n0);8;1)-1);тыс;2);«»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A1;n0);10;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A1;n0);11;1)+1;ПСТР(ТЕКСТ(A1;n0);12;1)+1));«z»;» «)&ЕСЛИ(ОТБР(ТЕКСТ(A1;n0));«»;«Ноль «)

    При необходимости формулу можно подогнать под нужный формат.

    Как использовать данную формулу?
    Вы можете взять файл примера и внести в него свои данные, чтобы получить результат.
    Если же у Вас уже есть готовый файл с заполненными данными и Вам необходимо добавить возможность написания суммы прописью, то чтобы формула заработала, необходимо сделать некоторые подготовительные действия, а именно добавить справочники, которые использует формула. В данном примере справочники заданы как именованные диапазоны (это решение хорошо тем, что пользователь эти диапазоны не видит на листах и соответственно не сможет лишний раз что-то испортить).

    Итак, нам необходимо сделать следующие справочники:

    Имя диапазона: n_1
    Диапазон: ={«»;»одинz»;»дваz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}

    Имя диапазона: n_2
    Диапазон: ={«десятьz»;»одиннадцатьz»;»двенадцатьz»;»тринадцатьz»;»четырнадцатьz»;»пятнадцатьz»;»шестнадцатьz»;»семнадцатьz»;»восемнадцатьz»;»девятнадцатьz»}

    Имя диапазона: n_3
    Диапазон: ={«»:1:»двадцатьz»:»тридцатьz»:»сорокz»:»пятьдесятz»:»шестьдесятz»:»семьдесятz»:»восемьдесятz»:»девяностоz»}

    Имя диапазона: n_4
    Диапазон: ={«»;»стоz»;»двестиz»;»тристаz»;»четырестаz»;»пятьсотz»;»шестьсотz»;»семьсотz»;»восемьсотz»;»девятьсотz»}

    Имя диапазона: n_5
    Диапазон: ={«»;»однаz»;»двеz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}

    Имя диапазона: n0
    Диапазон: =»000000000000″&ПСТР(1/2;2;1)&»00″

    Имя диапазона: n0x
    Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_1)

    Имя диапазона: n1x
    Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_5)

    Имя диапазона: мил
    Диапазон: ={0;»овz»:1;»z»:2;»аz»:5;»овz»}

    Имя диапазона: тыс
    Диапазон: ={0;»тысячz»:1;»тысячаz»:2;»тысячиz»:5;»тысячz»}

    Чтобы создать справочник таких диапазонов, переходим на вкладку «Формулы» — «Диспетчер имен«:

    В открывшемся окне нажимаем кнопку «Создать» и в форме вводим данные первого диапазона из таблицы:

    Далее таким же образом вводим все остальные диапазоны из таблицы:

    Всё, теперь можно использовать указанные выше формулы: вставьте формулу в ячейку, где необходимо отобразить число прописью, а в самой формуле (можно через любой текстовый редактор) замените адрес «A1» на адрес той ячейки, где располагается исходное число.

     

    Ella S.


    Основано на материалах форума excelworld.ru/forum/3-9902

    Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.


    Запишем число прописью в Excel без использования

    VBA

    . Вспомогательные диапазоны разместим в личной книге макросов. Кроме того, добавим руб./коп. для записи денежных сумм, например: четыреста сорок четыре руб. 00 коп.

    Иногда требуется записать число прописью:

    256

    записать как

    двести пятьдесят шесть

    . Набирать этот текст безумно скучно, кроме того легко ошибиться, поэтому давно написаны макросы на VBA, которые легко справляются с этой задачей.

    В статье

    Число прописью (статичный вариант)

    приведено решение этой задачи позволяющей перевести число в текстовую форму по следующему алгоритму:

    • вводим число в определенную ячейку;
    • с помощью формул, вспомогательных диапазонов с текстом и

      имен

      получаем число прописью;

    • копируем результат вычисления формулы (число прописью) в

      Буфер обмена

      ;
    • вставляем текст в любую открытую книгу «Как значение» (

      ).

    Это не всегда удобно. Хочется по аналогии с функциями на VBA написать что то вроде =ЧислоПрописью(А1) и получить результат. Все промежуточные вычисления должны быть «за кадром». Но, создание пользовательских функций это прерогатива VBA.

    Тем не менее, можно предложить следующее решение с помощью обычных формул:

    • разместить в Личной книге макросов (PERSONAL.XLSB) вспомогательные диапазоны, содержащие некоторые числа прописью (от 0 до 999);
    • создать формулу, переводящую в текст любое число от 0 до 1 млрд. с помощью вспомогательных диапазонов и

      имен

      ;

    • в любой книге, где требуется записать число прописью создать

      Именованную формулу

      ЧислоПрописью

      с

      относительной

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

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

    G

    6

    исходное число, а в ячейке

    G7

    формулу

    =ЧислоПрописью

    , и получить нужный результат.

    Все это реализовано в

    файле примера

    .

    Как и в примере статьи

    Число прописью (статичный вариант)

    на листе

    Служ

    размещены вспомогательные диапазоны, содержащие некоторые числа прописью в Excel.

    Теперь эти диапазоны длиннее (числа от 1 до 999) и содержат слова

    тысяча

    и

    миллион

    с учетом склонения. Также создан диапазон для отображения слова

    Рублей

    с учетом склонения.

    Теперь все готово для записи формулы переводящей исходное число (ячейка

    B

    6

    ) в текст:

    =СЖПРОБЕЛЫ( ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «& ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «& ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))

    Задача в принципе решена, осталось только разместить вспомогательные диапазоны в Личную книгу макросов PERSONAL.XLSB, для того чтобы формула, переводящая число в текст была доступна в любой книге.

    В Windows XP эта книга находится в папке C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда она будет автоматически загружается при каждом запуске приложения Excel. В Windows Vista эта книга хранится в папке C:Usersимя_пользователяApplication DataMicrosoftExcelXLStart.

    Если Личная книга макросов еще не была создана, то скопируйте лист

    Служ

    из файла примера в новую книгу, и сохраните ее в директорию C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для XP) под именем PERSONAL.XLSB.

    Если Личная книга макросов уже была ранее создана, то через меню

    отобразите ее, скопируйте в нее лист

    Служ,

    сохраните Личную книгу макросов (можно ее потом скрыть

    ).

    Теперь откройте

    книгу, в которой нужно записать число прописью

    . Исходное число разместите, например, в ячейке

    А1

    . Введите в нужную ячейку формулу:

    =ЕСЛИ(A1;СЖПРОБЕЛЫ( ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «& ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «& ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00″)&» коп.»);»ноль руб. 00 коп.»)

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

    Чтобы еще больше приблизиться к идеалу создадим

    именованную формулу

    ЧислоПрописью

    . Для этого:

    • выделите ячейку

      B1

      ;
    • через меню

      создайте именованную формулу

      ЧислоПрописью;

    • в поле

      Диапазон

      введите формулу указанную выше:
    • нажмите ОК;
    • в ячейке

      В1

      введите формулу

      =ЧислоПрописью
    • ячейка

      В1

      будет содержать число прописью.

    Теперь ячейки

    А1

    и

    В1

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

    относительная ссылка

    .


    При пересылке файла, например, по электронной почте, формула будет продолжать работать, не смотря на то, что Личная книга макросов не пересылалась, т.е. Ваши коллеги получившие файл, смогут с ним работать как Вы.

    Like this post? Please share to your friends:
  • Функция excel перевод текста в число excel
  • Функция image в excel на русском языке
  • Функция excel оптимальное решение
  • Функция ifs в excel что это
  • Функция excel определяющая цвет ячейки