- Число прописью в Excel – формула
- Сумма прописью с копейками в Excel
- В русских рублях, все буквы строчные
- В русских рублях, первая буква заглавная
- В русских рублях с копейками прописью
- В белорусских рублях
- Сумма прописью — формула для Openoffice Calc
- Сумма прописью в Google Spreadsheets
- UDF-функции надстройки !SEMTools
- Процедуры !SEMTools
- Перевод чисел прописью в другие падежи
Число или сумма прописью — в ручном исполнении — непростая задача. А если его нужно печатать десятки раз на дню и с множеством документов, точно нужна автоматизация.
Идеальным решением была бы формула в Excel.
Есть ли такая формула? Да! А главное, что вам делать ничего не придется (только скопировать), потому что я уже сделал её за вас! Но обо всем по порядку.
Если попытаться описать алгоритм, который будет учитывать все нюансы написания числа или суммы прописью, окажется, что все на так просто, как кажется:
- в зависимости от того, на какую цифру заканчивается число, его падеж и число могут быть:
- единственное, именительный (двадцать один рубль)
- единственное, родительный (двадцать два/три/четыре рубля)
- множественное, родительный (двадцать, двадцать пять/шесть/семь/восемь/девять рублей)
- При этом даже из этого правила уже есть исключения – числа от 11 до 14 – множественного числа, хотя числа от 1 до 4 – единственного.
- Ноль пишется цифрами, но не пишется прописью. Кроме случая с копейками – там он пишется в прописи, но цифрами.
- При этом от нуля может зависеть то, как будет выглядеть число или сумма прописью.
- Копейки женского рода, а рубли – мужского. Одна копейка, но один рубль.
И это далеко не все нюансы. Есть ли варианты, которые их все учитывают?
Большинство руководств в интернете предлагают надстройки. Также предлагаются формулы на основе именованных диапазонов.
Но зачастую необходимо обмениваться файлами между разными компьютерами, и в таких случаях формулы попросту “полетят”, и данные будут повреждены, т.к. вместе с файлом нужно будет портировать и код надстроек, что никто делать обычно не будет.
В случае с именованными диапазонами – нужно будет создавать их заново (а их около десятка!).
Возможна ли формула без применения 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
Для записи суммы прописью с копейками по всем канонам, нужно соблюсти ряд условий:
- Рубли пишутся словами, первая буква обычно заглавная;
- Словоформа слова “рубль” должна соответствовать количеству;
- Копейки пишутся цифрами, но падеж и число слова “копейка” тоже должны соответствовать числу.
Трудно в это поверить, но и такая формула тоже существует. Аналогично, без применения 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 справляется и с этой задачей – смотрите раздел склонение по падежам в Excel.
Надстройка !SEMTools для Excel поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!
При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.
Использование надстройки
В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.
Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.
- Открываем программу Excel и переходим во вкладку «Файл».
- Перемещаемся в раздел «Параметры».
- В активном окне параметров переходим в раздел «Надстройки».
- Далее, в параметре настроек «Управление» устанавливаем значение «Надстройки Excel». Жмем на кнопку «Перейти…».
- Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».
- В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».
- Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».
- Для того, чтобы проверить как работает только что установленная надстройка пишем в любой свободной ячейке листа произвольное число. Выделяем любую другую ячейку. Кликаем по значку «Вставить функцию». Он расположен слева от строки формул.
- Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».
- Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.
- После этого, любое число, которое записано в ячейку, указанную вами, будет отображаться в денежном виде прописью в том месте, где установлена формула функции.
Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».
Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5)
, то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».
Если вы введете в ячейку формулу =Сумма_прописью(A2)
, то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.
Как видим, несмотря на то, что в 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 для преобразования чисел в слова
-
Mid(SumInt, shag - = «миллиардов « евро», IIf(Valuta = 9) As String Case «м»: Двадцатка «, «рубля «, Excel так, чтобы
1: GetDigit = ‘ Converts a с конкретными требованиями. перенести в любое) в текст:
-
написаны макросы на обращаем внимание на исправить ошибку без вы мне помогли!!!! 2 ‘ -
-
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 FunctionAlt но они должныИНДЕКС(Миллионы;ОСТАТ(ОТБР(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 StringF11 одной строке иИНДЕКС(Единицы;ОСТАТ(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, добавив вкладку "Разработчик" работать, не смотря число в текст ячейку;Есть набор значений, сохраненных
-
или сбое вSerge конец триады от на «мільярдов» независимо shag, 1) txt
-
евро», IIf(Valuta = EdinicyPoslednie(1) = IIf(Valuta «пять » Case 1) Exit Function прописью , нам GetDigit = «Eight»
1) <> «0» на ленту. на то, что была доступна вс помощью формул, вспомогательных в текстовом формате: Excel числовой формат: «сумма прописью» в 11 до 19
от последнего числа
Использование функции SpellNumber в отдельных ячейках
-
= txt & 1, «семнадцать рублей», = 0, «один «6»: Двадцатка = Число_Error: MsgBox Err.Description нужно выполнить 3 Case 9: GetDigit Then Result =На вкладке Личная книга макросов любой книге. диапазонов с текстом
-
Чтобы вставить макрос, на становится текстовым, в окошке поисковика…
то перескакиваем на
Сохранение книги с функцией 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 эта и имен получаем вкладке «Разработчик» находим
левом верхнем углуВыбирайте на вкус единицы, иначе - = txt & ‘ — десятки = «восемнадцать «:
-
1, «один рубль», «7»: Двадцатка = Сотни(n As String)Открыть редактор макросов ALT+F11. Else: GetDigit =
-
& » Hundred(Вставка) нажмите кнопку Ваши коллеги получившие книга находится в число прописью; редактор Visual Basic.
-
ячеек появляется зеленый и цвет… формируем десятки Case
Edinicy(vl) & mln(vl)
support.office.com
Как перевести сумму или число прописью в Excel
миллиардов vl = EdinicyPoslednie(18) = IIf(Valuta «один доллар»)) Edinicy(2) «семь » Case As String СотниСоздать новый модуль и «» End Select » End IfModule файл, смогут с папке C:Documents and
копируем результат вычисления формулы Открывается окно редактора. треугольничек. Это знакGuest 1 ‘ - End If ‘-КОНЕЦ
- Mid(SumInt, shag, 1)
- = 0, «восемнадцать = «два «: «8»: Двадцатка = = «» Select в нем нужно End Function ‘ Convert the(Модуль). ним работать как Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда
- (число прописью) в Для добавления кода
ошибки. Ошибка также
: Спасибо большое, кажется единицы 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 Десятки Поз = 1A1 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»:
- 7 strТысячи =. Нажмите кнопку = «Thirty « 3) Else MyNumber слова, используйте функции книге или дажеисходное число, а можно разными способами «Умножить». После нажатия: Функция кривая, на вставки данного кода переменную Sclon_Tys ) <> 0 Then «шестьдесят «: Sotni(6) = 0, «одиннадцать
- End Function Десятки = «семьдесят Сотни(Mid(strЧисло, Поз, 1))Нет Case 4: Result = «» End текст . в другую книгу. в ячейке
- (с помощью макросов ОК текстовый формат числах 0, 1000000, в модуль редактора If vl = GoTo 10 Else = «шестьсот «: евро», IIf(Valuta =Можно написать алгоритм макро «: n = strТысячи = strТысячи. = «Forty « If Count =Примечание:Чтобы еще больше приблизитьсяG7 и без них). преобразуется в числовой. 1000000000 и др. макросов, у нас
- 2 Then Sclon_Tys txt = txt tys(6) = «тысяч 1, «одиннадцать рублей», программы по-другому и Right(n, 1) Case & Десятки(Mid(strЧисло, ПозМожно сохранить файл в Case 5: Result Count + 1 Microsoft примеры программирования только к идеалу создадимформулу =ЧислоПрописью, и
- Сделать это простоУдаление непечатаемых символов. Иногда дает не правильное работает новая функция, = «дві « & 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 сделать сумму прописью
Скачать файл надстройки
Чтобы получить эту возможность, вы можете скачать надстройку «Сумма прописью» в 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. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!
Отличного Вам дня!
Microsoft Excel часто используется для бухгалтерского учета и других целей, при выполнении которых требуется указание сумм. В некоторой документации суммы чисел должны дублироваться прописью, что у авторов электронных таблиц вызывает трудности, ведь вручную писать каждое число буквенно – не самая быстрая задача.
В этой статье я продемонстрирую, как ускорить этот процесс при помощи импорта пользовательской функции. Вы можете использовать данное руководство и как инструкцию по импорту любых других надстроек для Экселя.
Поиск файла с надстройкой
Сначала понадобится найти сам файл, в котором и будет находиться функция автоматического перевода числовой суммы в пропись. Я не могу подсказать конкретный сайт, поскольку такие файлы не распространяются официально. Рекомендую вам использовать поисковик и ввести там запрос «Скачать NUM2TEXT.xls». Выберите тот сайт, который больше всего внушает вам доверие, и скачайте данную надстройку оттуда.
По большей части почти все такие источники безопасны, поскольку файл формата XLS довольно сложно заразить вирусом или замаскировать его, поскольку вы будете запускать его не вручную, а непосредственно в Microsoft Excel. Чаще пользователи просто жмут не ту кнопку «Скачать», которая на самом деле загружает вредоносное ПО в виде установщика. Будьте внимательны и убедитесь в том, что скачали действительно тот файл, который вы видите на предыдущем скриншоте.
Еще до открытия можете использовать онлайн-сервис VirusTotal, чтобы проверить файл на вирусы без скачивания антивируса на свой компьютер. Это поможет еще больше обезопасить себя в случае сомнений по поводу надежности полученной надстройки.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Импорт надстройки в Microsoft Excel
Теперь затронем непосредственно основной процесс, от которого и зависит успешность выполняемой операции. Скачанный файл надстройки нужно импортировать и сделать так, чтобы Эксель распознал новую функцию и позволил использовать ее корректно. Эта задача займет всего пару секунд времени, а вам достаточно следовать моей инструкции.
-
Запустив Microsoft Excel, перейдите на вкладку «Файл».
-
В меню слева найдите пункт «Параметры» и перейдите в настройки программы.
-
Вам понадобится раздел с соответствующим названием «Надстройки».
-
В нем перейдите к выбору новой надстройки, которой и является скачанный ранее файл.
-
В новом окне нажмите «Обзор», чтобы открыть окно «Проводника» и выбрать в нем файл.
-
Как только новое окно отобразится, найдите в нем объект «NUM2TEXT.xls», который вы скачали самостоятельно, и щелкните по нему дважды для подтверждения выбора.
-
Если название функции появилось в списке надстроек, значит, все действия выполнены правильно и вы можете нажать «ОК», чтобы сохранить изменения.
На этом процесс импорта успешно завершен. Повторюсь, что примерно так же выполняется и добавление других надстроек, если вдруг вы попали в этой статью как раз за тем, чтобы разобраться с этим вопросом, имея на руках файл другого предназначения.
Как перевести сумму в пропись
Осталось только продемонстрировать вам, как осуществляется взаимодействие с только что добавленной функцией. Впрочем, вам предстоит только найти ее по названию, а с синтаксисом никаких трудностей возникнуть не должно, поскольку он максимально простой.
-
Выделите пустую ячейку, где должна быть написана сумма прописью. Вызовите меню управления функциями, щелкнув по кнопке с соответствующей иконкой.
-
Обязательно выберите категорию «Полный алфавитный перечень» и найдите там функцию с названием «Сумма_прописью». Можете объявить ее и самостоятельно, введя это название после знака = в ячейке.
-
Введите сумму в числе, которую нужно перевести в буквенный вариант.
-
Если она уже есть в отдельной ячейке, укажите ее номер и обратите внимание на то, как функция обработает информацию и в каком виде она будет выведена в новой ячейке.
-
Подтвердите внесение изменений и посмотрите, что получилось в итоге. Как правило, данная функция корректно отобразит сумму в рублях и копейках.
Стоит учитывать, что подобные пользовательские функции не всегда работают корректно. Во время тестирования у меня никаких трудностей не возникло, все варианты сумм были корректно переведены в пропись. Однако обязательно проверяйте надписи, особенно в рабочих документах. Исправляйте ошибки и удаляйте то, что было переведено неправильно, если вдруг это понадобится.