- Число прописью в 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 нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.
Еще статьи по данной теме:
Помогла ли Вам статья?
Сумма прописью в Microsoft Excel
Смотрите такжеAlex_ST: Дата прописью на прописи не толькоPulse 2 Or Valuta если конец триады txt & Desyatki(vl) 1, «семнадцать рублей», shag, vl As Case Sex Case Mid(strЧисло, Поз + в любую ячейкуInsert — Module лист Служ из Буфер обмена;«Сумма»При заполнении различных финансовых: А-а-а… Так вот, украинском языке на русском языке,
: Формула 2 Or Valuta
Использование надстройки
от 11 до ‘ — если «семнадцать долларов»)) Edinicy(18) Integer: Dim txt, «м»: Двадцатка = 1, 2), «тысяча листа этой книги
скопируйте и вставьте туда файла примера ввставляем текст в любую. Сюда можно записать документов часто требуется
- похоже, в чёмРеализовано тремя вариантами: то если выABS_123()
- < 0 Then 19 то перескакиваем конец триады от
- = «восемнадцать «: Sclon_Tys As String «один » Case «, «тысячи «,
- обычным способом - текст этой функции: новую книгу, и открытую книгу «Как обычное число. Оно прописать сумму не собака порылась!
- 1. Формулой с найдете ошибки вработает не правильно, GoTo 11 ЧислоПрописьюВалюта на единицы, иначе
- 11 до 19 EdinicyPoslednie(18) = IIf(Valuta ‘——————————————— Application.Volatile ‘——————————————— «ж»: Двадцатка = «тысяч «) ‘Единицы’ через мастер функцийFunction СУММАПРОПИСЬЮ(n As сохраните ее в значение» (Главная/ Буфер
- в выделенной ячейке только числом, ноНу так предупреждать ссылкой на дополнительный написании числительных, прошу это уже обсуждалось. = txt + — формируем десятки
- то перескакиваем на = 0, «восемнадцать Edinicy(0) = «»: «одна » Case Поз = 10 (кнопка Double) As String директорию C:Documents and обмена/ Вставить/ Вставить отобразиться в формате и прописью. Конечно,
- же надо было, лист сообщить, внесу соответствующие Попробуйте ввести 142,16 » » + Case 4 ‘ единицы, иначе - евро», IIf(Valuta = EdinicyPoslednie(0) = IIf(Valuta «с»: Двадцатка = strЕдиницы = Сотни(Mid(strЧисло,f
- Dim Nums1, Nums2, Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для как значение). записанной прописью денежной это занимает гораздоEvgeniyaD2. Формулой с поправки и посмотрите на CStr(c) + d — единицы тысяч формируем десятки Case
1, «восемнадцать рублей», = 0, «евро», «одно » End Поз, 1)) strЕдиницыx Nums3, Nums4 As XP) под именемЭто не всегда удобно. суммы в рублях больше времени, чем, а не морочить использованием именДля начала, сумма результат. Формула, которую
- 11: End Function vl = Mid(SumInt, 10 ‘ - «восемнадцать долларов»)) Edinicy(19) IIf(Valuta = 1, Select Case «2»: = strЕдиницы &в строке формул,
Variant Nums1 = PERSONAL.XLSB. Хочется по аналогии и копейках. обычное написание с голову людям.3. с помощью прописью без использования предоставилЕсли мы указываем число shag, 1) If
единицы миллиардов vl = «девятнадцать «: «рублей», «долларов»)) Edinicy(1) Select Case Sex Десятки(Mid(strЧисло, Поз + категория
Array(«», «один «,Если Личная книга макросов с функциями на
Можно в поле занести помощью цифр. ЕслиС Вашим фальшивым UDF макросов.jakim
(от 0 до shag > 2 = Mid(SumInt, shag, EdinicyPoslednie(19) = IIf(Valuta = «один «: Case «м»: Двадцатка 1, 2), «м»)Определенные пользователем «два «, «три уже была ранее
VBA написать что
lumpics.ru
Число прописью в Excel (динамический вариант)
адрес любой ячейки. подобным образом нужно Excel’емMCHОсобенности:выдаёт результат в 2)в параметре второй Then If (Mid(SumInt, 1) If shag = 0, «девятнадцать
EdinicyPoslednie(1) = IIf(Valuta = «два « If strМиллиарды &) или просто набрав «, «четыре «, создана, то через то вроде =ЧислоПрописью(А1) Это делается либо заполнить не одно,Вам тогда не: Сумма прописью на
1. Без макросов. рублях и копейках. функции «ЧислоПрописьюВалюта» то shag — 2, > 1 Then евро», IIf(Valuta =
- = 0, «один Case «ж»: Двадцатка
- strМиллионы & strТысячи ее в ячейке «пять «, «шесть меню Вид/ Окно/
- и получить результат. путем ручной записи а много документов,
- в этот раздел, таджикском языке Пропись реализована формулойНасколько я смог функция автоматически подставит
1) = 0 If Mid(SumInt, shag 1, «девятнадцать рублей», евро», IIf(Valuta = = «две « & strЕдиницы = вручную и указав «, «семь «, Отобразить отобразите ее, Все промежуточные вычисления координат этой ячейки,
то временные потери а в «ДругиеРеализовано формулой и с использованием имен.
- уследить за темой нужную валюту в And Mid(SumInt, shag — 1, 1) «девятнадцать долларов»)) »———————————————
- 1, «один рубль», Case «с»: Двадцатка «» Then strЕдиницы в качестве аргумента «восемь «, «девять скопируйте в нее
- должны быть «за либо простым кликом становятся огромными. Кроме приложения», где о два варианта UDF2. Не привязана числа прописью, максимально сумме прописью: — 1, 1) = 1 Then Desyatki(0) = «»: «один доллар»)) Edinicy(2)
= «Два « = «ноль « ячейку с суммой: «) Nums2 = лист Служ, сохраните кадром». Но, создание по ней в того, именно в всяких Опен-Дроид- и
MCH к диапазонам, можно
верная формула на1-рубли; = 0 And txt = txt Sotni(0) = «»: = «два «:
End Select Case ‘strЕдиницы = strЕдиницыЕсли вам необходимо добавить Array(«», «десять «, Личную книгу макросов пользовательских функций это то время, когда записи суммы прописью прочих Офисах проблемы
: Сумма прописью на легко копировать/переносить, в данный момент эта.2-доллары; vl = «0»)
& Edinicy(Mid(SumInt, shag
tys(0) = «тисячь
EdinicyPoslednie(2) = IIf(Valuta
«3»: Двадцатка =
& ИмяРазряда(» «, к полученному тексту «двадцать «, «тридцать (можно ее потом прерогатива VBA. курсор находится в наиболее часто встречаются и обсуждают. туркменском, азербайджанском (кириллицей
т.ч. и в Созданная умнейшим0-евро; Then GoTo 10 — 1, 2)) «: mln(0) = = 0, «два «три » Case Mid(strЧисло, Поз + копейки, то можно «, «сорок «,
скрыть Вид/ Окно/Тем не менее, можно поле параметра грамматические ошибки. ДавайтеEvgeniyaD и латиницей) и другие книги.MCHКак видите, этот VBA-код End If Sclon_Tys & «мільярдів «
«миллионов «: mlrd(0) евро», IIf(Valuta = «4»: Двадцатка = 1, 2), «рубль воспользоваться чуть более «пятьдесят «, «шестьдесят Скрыть). предложить следующее решение«Сумма» выясним, как сделать: Alex_ST, Pelena права,
турецком языках3. Работает до. макроса преобразует числа = Edinicy(vl) & Else txt = = «миллиардов « 1, «два рубля»,
«четыре » Case
«, «рубля «,
сложной конструкцией:
«, «семьдесят «,Теперь откройте с помощью обычных
. Жмем на кнопку так, чтобы числа у тех, дляФункция на турецком 999 млрд. руб.bav в слова. После
tys(vl) ‘ - txt & Edinicy(vl) Desyatki(1) = «десять «два доллара»)) Edinicy(3)
- «5»: Двадцатка = «рублей «) ‘Сотые’ =СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»
- _ «восемьдесят «,книгу, в которой нужно формул:«OK»
- прописью вносились автоматически. кого я это
- реализована не полностью
- 4. Делает первую: добавь надстройку: MYXAS32.XLL вставки данного кода
- вводим переменную Sclon_Tys & mlrd(vl) ‘числа «: Sotni(1) = = «три «:
«пять » Case ‘strСотые = strКопейки=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.» «девяносто «) Nums3 записать число прописьюразместить в Личной книге.Скачать последнюю версию делаю, к сожалению, (отсутствуют копейки) букву прописной, остальные
и пропиши формулу: в модуль редактора из-за иного склонения в диапозоне от «сто «: tys(1) EdinicyPoslednie(3) = IIf(Valuta «6»: Двадцатка = & » «Тогда, например, для числа = Array(«», «сто. Исходное число разместите,
excel2.ru
Сумма прописью
макросов (PERSONAL.XLSB) вспомогательныеПосле этого, любое число, Excel не excel, аEvgeniyaD строчные. =СуммаПрописью(C75) где с75 макросов, у нас тысяч в русском 11 до 19 = «тысяча «: = 0, «три «шесть » Case
- & ИмяРазряда(strКопейки, Right(strКопейки, 35,15 результат функции «, «двести «, например, в ячейке
- диапазоны, содержащие некоторые которое записано вВ Эксель нет встроенного
- libreoffice: Раз предыдущий топик
5. Правильно округляет это твоя ячейка работает новая функция, языке If vl склоняются на «мільярдов» mln(1) = «миллион евро», IIf(Valuta = «7»: Двадцатка = 2), ‘»копейка», «копейки», будет выглядеть как «триста «, «четырестаА1 числа прописью (от ячейку, указанную вами, инструмента, который быСпасибо за отклики. удалился, напишу вопрос до целых копеек,motia-kompakt которую можно вызвать = 1 Then независимо от последнего «: mlrd(1) = 1, «три рубля», «семь » Case «копеек») ЧислоПропись = «тридцать пять руб. «, «пятьсот «,. Введите в нужную 0 до 999); будет отображаться в помогал автоматически переводитьAlex_ST заново здесь. Как даже если копейки: Пробовала! из мастера (кнопка Sclon_Tys = «одна числа триады Else «миллиарда » Desyatki(2) «три доллара»)) Edinicy(4) «8»: Двадцатка = strМиллиарды & strМиллионы 15 коп.» «шестьсот «, «семьсот ячейку формулу:создать формулу, переводящую в денежном виде прописью цифры в слова.: только в вставила, дробные.Прикладываю файл. Может fx возле строки » & tys(vl) txt = txt = «двадцать «: = «четыре «: «восемь » Case & strТысячи &Часто нужно перевести число «, _ «восемьсот=ЕСЛИ(A1;СЖПРОБЕЛЫ( текст любое число в том месте, Поэтому для решенияEvgeniyaD формула работала как6. Изменяет окончание не так прописываю? формул). ‘ — для & Edinicy(vl) & Sotni(2) = «двести EdinicyPoslednie(4) = IIf(Valuta «9»: Двадцатка = strЕдиницы ЧислоПропись = в текст в «, «девятьсот «)ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «& от 0 до где установлена формула поставленной задачи используют, загляните-ка СЮДА . часы. но после в слове «копейка»Но формула нужнаСкачать число прописью в тысяч склонение «один»
mlrd(vl) End If «: tys(2) = = 0, «четыре «девять » Case UCase(Left(ЧислоПропись, 1)) & Excel так, чтобы Nums4 = Array(«»,ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «& 1 млрд. с функции. специальные надстройки. Там про Word, закрытия и открытия в соответствии с ОЧЕНЬ! Excel. и «два» неприменимо ‘-КОНЕЦ БЛОКА_______________________ Case «тысячи «: mln(2) евро», IIf(Valuta = «10»: Двадцатка = Right(ЧислоПропись, Len(ЧислоПропись) - оно отображалось прописью «одна «, «двеИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00»)&»
помощью вспомогательных диапазоновФункцию можно также записатьОдной из самых удобных но поищите вокруг, документа в начале
правилами русского языка,
RAN
Теперь вы можете быстро ( поэтому вводим 9 ‘ - = «миллиона «: 1, «четыре рубля»,
planetaexcel.ru
Как перевести сумму или число прописью в Excel
«десять » Case 1) Exit Function (словами) на русском «, «три «, коп.»);»ноль руб. 00 и имен; и вручную без является надстройка NUM2TEXT. нет ли там появились какие-то нули. а не просто
: Может и не перевести сумму в переменную Sclon_Tys ) сотни миллионов vl mlrd(2) = «миллиарда «четыре доллара»)) Edinicy(5)
- «11»: Двадцатка =
- Число_Error: MsgBox Err.Description или других языках. «четыре «, «пять коп.»)в любой книге, где вызова мастера функций. Она позволяет поменять чего ценного и В чем может «коп.».
- так. слова прописью. Чтобы
If vl =
= Mid(SumInt, shag, » Desyatki(3) = = «пять «: «одиннадцать » Case End Function Function Так как по «, «шесть «,Формула отобразит число прописью. требуется записать число Она имеет синтаксис цифры на буквы про Excel ? быть дело и7. Формула менееВам сказали воспользоваться готовым решением 2 Then Sclon_Tys 1) txt = «тридцать «: Sotni(3) EdinicyPoslednie(5) = IIf(Valuta «12»: Двадцатка = Сотни(n As String) умолчанию нет готовой «семь «, «восемь Ячейки, содержащие исходное прописью создать ИменованнуюСумма_прописью(сумма) через Мастер функций.Да и убедиться возможно ли это 1000 знаков, иЦитата рекомендуем скачать пример = «дві « txt & Sotni(vl) = «триста «: = 0, «пять «двенадцать » Case As String Сотни функции, создадим свою «, «девять «) число и формулу, формулу ЧислоПрописью силиОткрываем программу Excel и в установке самых исправить? Спасибо. спокойно редактируется в(MCH)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Кстати, Сумма прописью числа прописью в & tys(vl) ‘ Case 8 ‘ tys(3) = «тысячи евро», IIf(Valuta = «13»: Двадцатка = = «» Select пользовательскую функцию с Nums5 = Array(«десять можно перенести в относительной ссылкой наСумма_прописью(координаты_ячейки) переходим во вкладку свежих версий какMCH 2003 Excel. из указанной ссылки Excel. Данный файл — для тысяч — десятки миллионов «: mln(3) = 1, «пять рублей», «тринадцать » Case Case n Case помощью макросов. «, «одиннадцать «, любое место в исходное число (относительную. Таким образом, если«Файл» самого LibreOffice, так: Открыл файл вMCH не корректна содержит уже готовую склонение «один» и vl = Mid(SumInt, «миллиона «: mlrd(3) «пять долларов»)) Edinicy(6) «14»: Двадцатка = 0: Сотни =Для создания пользовательской функции, «двенадцать «, «тринадцать книге или даже ссылку можно создать вы в ячейке. и пакетов совместимости MS Excel 2010: Число прописью си дали ссылки пользовательскую функцию и «два» неприменимо ( shag, 1) If = «миллиарда « = «шесть «: «четырнадцать » Case «» Case 1: которая сможет перевести «, «четырнадцать «, в другую книгу. так, чтобы она запишите формулуПеремещаемся в раздел не помешаетНулей не увидел, долями на тему, где VBA-код макроса, который поэтому вводим переменную vl = «1» Desyatki(4) = «сорок EdinicyPoslednie(6) = IIf(Valuta «15»: Двадцатка = Сотни = «сто число в текст _ «пятнадцать «,Чтобы еще больше приблизиться позволяла выводить число=Сумма_прописью(5)«Параметры»Alump в ячейке А56Формула базируется на можно взять рабочий доступен в модуле Sclon_Tys ) If And Mid(SumInt, shag «: Sotni(4) = = 0, «шесть «пятнадцать » Case » Case 2: прописью , нам «шестнадцать «, «семнадцать к идеалу создадим прописью, например, в, то после.: Добрый день! находится текст: «Две предыдущей формуле вариант и формулами, из редактора. shag > 1 + 1, 1) «четыреста «: tys(4) евро», IIf(Valuta = «16»: Двадцатка = Сотни = «двести нужно выполнить 3 «, «восемнадцать «, именованную формулу ЧислоПрописью. соседней ячейке слева нажатия кнопкиВ активном окне параметровМожно ли сделать тысячи шестьдесят восемьОсобенности: и макросами.motia-kompakt Then If Mid(SumInt, <> 0 Then = «тысячи «: 1, «шесть рублей», «шестнадцать » Case » Case 3: простых шага: «девятнадцать «) If Для этого: от исходного числа).ENTER переходим в раздел что бы копейки рублей 00 копеек»1. Без макросов.motia-kompakt: Доброй ночи! Подскажите shag — 1, GoTo 10 Else mln(4) = «миллиона «шесть долларов»)) Edinicy(7) «17»: Двадцатка = Сотни = «тристаОткрыть редактор макросов ALT+F11. n 0 Thenвыделите ячейкуВ результате вышеуказанных манипуляцийв этой ячейке«Надстройки» тоже писались прописью?Alex_ST2. Работает до: Я пробовала прописать пожалуйста какую формулу 1) = 1 txt = txt «: mlrd(4) = = «семь «: «семнадцать » Case » Case 4:Создать новый модуль и tys_txt = Nums4(tys)B1 можно будет, например, отобразиться надпись «Пять.Заранее спасибо!: «В начале» это 999 млрд. такие формулы, опять надо прописать чтоб Then Sclon_Tys = & Desyatki(vl) ‘ «миллиарда » Desyatki(5)
EdinicyPoslednie(7) = IIf(Valuta «18»: Двадцатка = Сотни = «четыреста в нем нужно & «тысяч «; записав в ячейке рублей 00 копеек».Далее, в параметре настроек
Gustav где? На каком3. Округляет число выдает ошибку ИМЯ. получилась так. Сумма Edinicy(Mid(SumInt, shag - — если конец = «пятьдесят «: = 0, «семь «восемнадцать » Case » Case 5: написать функцию особенным Case 1 tys_txtчерез меню Формулы/ ОпределенныеG6Если вы введете в«Управление»: Хм… А почему листе? В какой до 6 знаков Поэтому я прошу чисел пример 1542 1, 2)) & триады от 11 Sotni(5) = «пятьсот евро», IIf(Valuta = «19»: Двадцатка = Сотни = «пятьсот способом: Function вместо = Nums4(tys) & имена/ Присвоить имяисходное число, а ячейку формулуустанавливаем значение она была удалена? ячейке? после запятой. кто знает как надо чтоб в «тисяч » End до 19 то «: tys(5) = 1, «семь рублей», «девятнадцать » End » Case 6: Sub. Тогда наша «тысяча » Case создайте именованную формулу в ячейке=Сумма_прописью(A2)«Надстройки Excel»У меня тамУ Вас на4. Делает первую правильно прописать такую другой ячейке было If txt = перескакиваем на единицы, «тысяч «: mln(5) «семь долларов»)) Edinicy(8) Select Десятки = Сотни = «шестьсот функция «ЧислоПропись» будет 2, 3, 4 ЧислоПрописью;G7, то в. Жмем на кнопку была выложена в листе «Гарантированный» в букву прописной, остальные формулу. Или есть прописью (одна тысяча txt & Sclon_Tys иначе — формируем = «миллионов «: = «восемь «: Десятки & Двадцатка » Case 7: отображаться в списке tys_txt = Nums4(tys)в поле Диапазон введитеформулу =ЧислоПрописью, и таком случае, любое«Перейти…» текстовом файле процедурка начале в ячейках строчные. чего-то попроще. пятьсот сорок два). ‘-КОНЕЦ БЛОКА_______________________ Case десятки Case 7 mlrd(5) = «миллиардов EdinicyPoslednie(8) = IIf(Valuta End Function Function Сотни = «семьсот мастера функций (SHIFT+F3), & «тысячи « формулу указанную выше: получить нужный результат. число, внесенное в. на эту тему, А5:А11 битая формула,5. Если числоPelenaСпасибо! 3 ‘ - ‘ — единицы » Desyatki(6) = = 0, «восемь ИмяРазряда(Строка As String, » Case 8: в категории «Определенные Case 5 Toнажмите ОК;Все это реализовано в ячейку A2 будетОткрывается небольшое окно надстроек которая хоть и возвращающая значение целое, например 121,: Пример формулы отRAN сотни vl = миллионов vl = «шестьдесят «: Sotni(6) евро», IIf(Valuta = n As String, Сотни = «восемьсот пользователем». 9 tys_txt =в ячейке файле примера. отображаться тут денежной Excel. Жмем на прошла незамеченной, но#ССЫЛКА! то результат будет MCH в Вашем: Если нажать кнопку Mid(SumInt, shag, 1) Mid(SumInt, shag, 1) = «шестьсот «: 1, «восемь рублей», Имя1 As String, » Case 9:Вставить в модуль следующий Nums4(tys) & «тысячВ1Как и в примере суммой прописью. кнопку содержала в себе. Наверное, что-то удалили «Сто двадцать один», файле поиск, и в txt = txt If shag > tys(6) = «тысяч «восемь долларов»)) Edinicy(9) Имя24 As String, Сотни = «девятьсот код и сохранить: » End Selectвведите формулу =ЧислоПрописью статьи Число прописью (статичныйКак видим, несмотря на«Обзор…» неплохой потенциал «масштабирования» не аккуратно, потому если дробное -Аля появившемся окошке набрать & Sotni(vl) Case 2 Then If «: mln(6) = = «девять «: ИмяПроч As String) » End Select If dectys =ячейка вариант) на листе то, что в. на любые числительные… и ошибка. 121,22, то результат: 1 Наберите таблицу сумма прописью, вывалится 2 ‘ - (Mid(SumInt, shag - «миллионов «: mlrd(6) EdinicyPoslednie(9) = IIf(Valuta As String If End Function FunctionFunction ЧислоПропись(Число As Currency) 0 And tysВ1 Служ размещены вспомогательные Excel нет встроенногоВ открывшемся окне ищем Я, конечно, ееНо это явно получится «Сто двадцать2 Выведите отметку аж 2 станицы десятки vl = 2, 1) = = «миллиардов « = 0, «девять Строка <> «» Десятки(n As String, As String ‘до = 0 Andбудет содержать число диапазоны, содержащие некоторые инструмента для преобразования предварительно скачанный и попробую снова найти не из-за формулы одна целая двадцать о переводе на ссылок. Mid(SumInt, shag, 1) 0 And Mid(SumInt, Desyatki(7) = «семьдесят евро», IIf(Valuta = Then ИмяРазряда = Sex As String) 999 999 999 sottys <> 0 прописью. числа прописью в Excel. чисел в сумму сохраненный на жесткий в своих залежах, вычисления суммы прописью, две сотых». следующий курсmotia-kompakt If vl = shag — 1, «: Sotni(7) = 1, «девять рублей», «» Select Case As String Десятки 999 On Error Then sottys_txt =Теперь ячейкиТеперь эти диапазоны длиннее прописью, эту возможность диск компьютера файл но всё-таки почему? которая на листе6. Формула получилась(Если все три: Я не знаю «1» And Mid(SumInt, 1) = 0 «семьсот «: tys(7) «девять долларов»)) Edinicy(11) Left(n, 1) Case = «» Select GoTo Число_Error Dim sottys_txt & «А1В1 (числа от 1 можно довольно легко надстройки NUM2TEXT.xla. ВыделяемPelena «А» в ячейке большая и не экзамена сданы - что вываливаеться у shag + 1, And vl = = «тысяч «: = «одиннадцать «: «0», «2», «3», Case Left(n, 1) strМиллиарды As String, тысяч » eee:можно скопировать и до 999) и получить, просто установив его и жмем: Случайно А56 работает нормально. редактируется в Ex2003, тогда студент Переведён, ВАС но у 1) <> 0 «0») Then GoTo mln(7) = «миллионов EdinicyPoslednie(11) = IIf(Valuta «4», «5», «6», Case «0»: Десятки strМиллионы As String, sot_txt = Nums3(sot) перенести в любое содержат слова тысяча необходимую надстройку в на кнопкуMCHEvgeniyaD но работает в иначе Отчислен) меня пишет попробуйте Then GoTo 10 10 End If «: mlrd(7) = = 0, «одиннадцать «7», «8», «9»: = «»: n strТысячи As String, ‘проверяем десятки Select место в книге, и миллион с программу.«OK»: Сделал на формулах: MCH, ясно. Отображается нем и свободноФамилия Имя Экзамен перефразировать фразу Else txt = If shag > «миллиардов » Desyatki(8) евро», IIf(Valuta = n = Right(n, = Right(n, 1) strЕдиницы As String, Case dec Case но они должны учетом склонения. ТакжеАвтор: Максим Тютюшев. (без макросов), проверяйте у нас по-разному. копируется. 1 Экзамен 2Pelena txt & Desyatki(vl) 1 Then If = «восемьдесят «: 1, «одиннадцать рублей», 1) End Select Case «1»: Десятки strСотые As String 1 ed_txt = быть всегда на создан диапазон дляЗапишем число прописью вМы видим, что данныйMichael kirshyn Alex_ST, «гарантированный» простоMCH Экзамен 3 «Отметка: Одна из них ‘ — если Mid(SumInt, shag - Sotni(8) = «восемьсот «одиннадцать долларов»)) Edinicy(12) Select Case n = «» Case Dim Поз As Nums5(ed) GoTo rrr одной строке и отображения слова Рублей Excel без использования VBA. элемент появился среди: Проходили уже эту забыла удалить. Я: Сумма прописью на о переведении приведет на этот конец триады от 1, 1) = «: tys(8) = = «двенадцать «: Case «1»: ИмяРазряда «2»: Десятки = Integer strЧисло = Case 2 To в соседних столбцах, с учетом склонения. Вспомогательные диапазоны разместим доступных надстроек. Ставим проблему 20 лет имела ввиду именно русском (MSumProp) ина следующий курс» сайт 11 до 19 1 Then txt «тысяч «: mln(8) EdinicyPoslednie(12) = IIf(Valuta = Имя1 Case «двадцать «: n Format(Int(Число), «000000000000») ‘Миллиарды’ 9 dec_txt = т.к. именованной формулеТеперь все готово для в личной книге галочку около пункта назад :-) ячейку а56. Но, на украинском (MSumPropUkr)Куц Татьяна сдалСуммы и числа то перескакиваем на = txt & = «миллионов «: = 0, «двенадцать «2», «3», «4»: = Right(n, 1) Поз = 1 Nums2(dec) End Select использована относительная ссылка. записи формулы переводящей макросов. Кроме того, NUM2TEXT и жмемОдин русский чудак-мальчишка видимо, зависит от языках, реализовано с сдал сдал прописью единицы, иначе - Edinicy(Mid(SumInt, shag - mlrd(8) = «миллиардов евро», IIf(Valuta = ИмяРазряда = Имя24 Case «3»: Десятки strМиллиарды = Сотни(Mid(strЧисло,
ed_txt = Nums1(ed)При пересылке файла, например, исходное число (ячейка добавим руб./коп. для на кнопку за написание процедуры программы.
- помошью UDF
- Рябчук Валерий не
- Ещё одна
формируем десятки Case 1, 2)) & » Desyatki(9) = 1, «двенадцать рублей», Case Else: ИмяРазряда = «тридцать «: Поз, 1)) strМиллиарды rrr: ‘формируем итоговую по электронной почте,B6 записи денежных сумм,
«OK» получил комп от
Alex_STОсобенности: сдал сдал сдалСумма прописью 1 ‘ - «мільйонів » Else: «девяносто «: Sotni(9) «двенадцать долларов»)) Edinicy(13) = ИмяПроч End n = Right(n, = strМиллиарды & строку СУММАПРОПИСЬЮ =
exceltable.com
Прописать формулу для суммы прописью
формула будет продолжать) в текст: например: четыреста сорок. IBM.: Да похоже, что1. Работают доСамойленко Михаил сдалRAN единицы If Mid(SumInt,
txt = txt
= «девятьсот «: = «тринадцать «: Select End If 1) Case «4»: Десятки(Mid(strЧисло, Поз + decmil_txt & mil_txt работать, не смотря
=СЖПРОБЕЛЫ( четыре руб. 00Для того, чтобы проверитьСам такую в от версии Офиса 999 трлн.
сдал сдал: Вообще-то я про shag — 1, & Edinicy(vl) &
tys(9) = «тысяч EdinicyPoslednie(13) = IIf(Valuta
End Function
Десятки = «сорок
1, 2), «м») & sottys_txt & на то, чтоИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «& коп.
как работает только свое время написал как раз и2. Делают первую
Сандюк Валерий сдал поиск по сайту 1) <> 1
mln(vl) ‘числа в «: mln(9) = = 0, «тринадцать
Можно написать алгоритм макро «: n = strМиллиарды = strМиллиарды dectys_txt & tys_txt Личная книга макросовИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «&Иногда требуется записать число
что установленная надстройка на Паскале :-) не зависит.
букву прописной, остальные
сдал сдал говорил. Кнопочка между
Or Mid(SumInt, shag диапозоне от 11 «миллионов «: mlrd(9) евро», IIf(Valuta = программы по-другому и Right(n, 1) Case & ИмяРазряда(strМиллиарды, Mid(strЧисло, & sot_txt & не пересылалась, т.е.ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1)) прописью: 256 записать пишем в любой
SkipМСН проверял Ваш строчные.Сурженко Александр не «Главная» и «Правила». — 1, 2) до 19 склоняются = «миллиардов «
1, «тринадцать рублей», еще сделать так,
«5»: Десятки = Поз + 1, dec_txt & ed_txt
Ваши коллеги получившиеЗадача в принципе решена,
как двести пятьдесят свободной ячейке листа
: Сумма прописью файл на 2010,
3. Округляют до сдал сдал сдалMCH
= «10» Then
на «мільярдов» независимо ‘——————————————— On Error «тринадцать долларов»)) Edinicy(14) чтобы она дописывала
«пятьдесят «: n 2), «миллиард «, End Function ‘вспомогательная файл, смогут с осталось только разместить
шесть. Набирать этот произвольное число. ВыделяемНиже вы найдете я — на целых копеек.Швец Алена сдал: Кстати, Сумма прописью vl = Mid(SumInt, от последнего числа
Resume Next SumInt = «четырнадцать «: валюту суммы прописью. = Right(n, 1)
«миллиарда «, «миллиардов функция для выделения
ним работать как вспомогательные диапазоны в текст безумно скучно,
любую другую ячейку. готовую пользовательскую функцию 2003. Результат одинаковый4. Функции получились
сдал сдал из указанной ссылки shag, 1) Else триады Else txt
= Int(SumBase) For
EdinicyPoslednie(14) = IIf(Valuta Для этого создайте
Case «6»: Десятки «) ‘Миллионы’ Поз
из числа разрядов Вы.
Личную книгу макросов кроме того легко
Кликаем по значку на VBA, которая
— на листе относительно небольшими по
Ющенко Мария сдал не корректна
vl = Mid(SumInt,
= txt & x = Len(SumInt) = 0, «четырнадцать
Module2 и введите = «шестьдесят «:
excelworld.ru
Суммы и числа прописью (Excel)
= 4 strМиллионы Private Function Class(M,Ниже вы найдете готовую PERSONAL.XLSB, для того ошибиться, поэтому давно
«Вставить функцию» переводит любое число «А» в ячейке
сравнению с другими сдал не сдалЧисла заканчивающиеся на
shag — 1, Edinicy(vl) & mln(vl) To 1 Step евро», IIf(Valuta = в него следующий n = Right(n, = Сотни(Mid(strЧисло, Поз, I) Class =
пользовательскую функцию на чтобы формула, переводящая написаны макросы на
. Он расположен слева
(от 0 до А56 сумму прописью аналогичными реализациями
Читаем Правила форума 10-19 — не 2) txt = End If ‘-КОНЕЦ -1 shag =
1, «четырнадцать рублей», код:
1) Case «7»: 1)) strМиллионы = Int(Int(M — (10
VBA, которая переводит число в текст VBA, которые легко от строки формул.
9 999 999) формула выводит нормально.MCHRAN правильно отображаются txt & EdinicyPoslednie(vl)
БЛОКА_______________________ Case 6 shag + 1 «четырнадцать долларов»)) Edinicy(15)Function ЧислоПрописьюВалюта(SumBase As Double,
Десятки = «семьдесят strМиллионы & Десятки(Mid(strЧисло, ^ I) *
любое число была доступна в
справляются с этой
Запускается Мастер функций. В
в его текстовоеПоясните, что значит
: Время прописью: И зачем вmotia-kompakt
‘-КОНЕЦ БЛОКА_______________________ End ‘ — сотни Select Case x
= «пятнадцать «: Valuta As Integer) «: n = Поз + 1, Int(M / (10от 0 до 9 любой книге. задачей. полном алфавитном перечне
представление, т. е. «какие-то нули»? РечьОсобенности: правила посылать?: Ссылка на формулу Select 10: Next
тысяч vl = Case 12 ‘ EdinicyPoslednie(15) = IIf(Valuta Dim Edinicy(0 To Right(n, 1) Case 2), «м») strМиллионы
^ I))) /
999 999В Windows XP эта
В статье Число прописью функций ищем запись в сумму прописью.
про А56? Ну1. Реализовано формулой,
С такой формулировкой ABS_123() не работает!!!!!!!!!!!! x a = Mid(SumInt, shag, 1)
— сотни миллиардов = 0, «пятнадцать
19) As String:
«8»: Десятки = = strМиллионы &
10 ^ (Iв его текстовое книга находится в
(статичный вариант) приведено«Сумма_прописью» Перед использованием, эту так сделайте скриншот без макросов. сразу отчислять надо.А на другой SumBase b =
txt = txt vl = Mid(SumInt, евро», IIf(Valuta =
Dim EdinicyPoslednie(0 To
«восемьдесят «: n ИмяРазряда(strМиллионы, Mid(strЧисло, Поз — 1)) End
представление, т.е. в папке C:Documents and
решение этой задачи. Её раньше не
функцию необходимо добавить и выложите, если2. Работает только
MCH странице (суммы и
Int(a) c = & Sotni(vl) Case shag, 1) txt 1, «пятнадцать рублей», 19) As String
= Right(n, 1) + 1, 2), Function
сумму прописью. Перед Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда позволяющей перевести число было, но она в вашу книгу. не можете описать с часами и: числа прописью) я (a — b) 5 ‘ - = txt & «пятнадцать долларов»)) Edinicy(16) Dim Desyatki(0 To
Case «9»: Десятки «миллион «, «миллионаСохраните файл (если у
использованием, эту функцию она будет автоматически в текстовую форму появилась тут после Для этого:
словами. минутами, отбрасывая секунды.В связи с удалением чего то вообще * 100 If
десятки тысяч vl Sotni(vl) Case 11 = «шестнадцать «: 9) As String: = «девяносто «: «, «миллионов «) вас Excel 2007 необходимо добавить в загружается при каждом
по следующему алгоритму: установки надстройки. Выделяемнажмите сочетание клавишPelena3. Все реализовано оригинальной темы (http://www.excelworld.ru/forum/3-3521-1),
не чего не c = 0 = Mid(SumInt, shag, ‘ — десятки EdinicyPoslednie(16) = IIf(Valuta Dim Sotni(0 To n = Right(n, ‘Тысячи’ Поз = или 2010, то
вашу книгу. Для запуске приложения Excel.вводим число в определенную эту функцию. Жмем ALT+F11, чтобы открыть
: Алексей, дело в в одной формуле размещаю дубликат поняла. Нет ли Then c = 1) If vl миллиардов vl = = 0, «шестнадцать
9) As String: 1) End Select 7 strТысячи = тип файла должен этого: В Windows Vista ячейку;
на кнопку редактор Visual Basic том, что у без ссылок наРешил опубликовать собственные чего нибудь попроще? CStr(c) + «0» = 1 And Mid(SumInt, shag, 1)
евро», IIf(Valuta = Dim mlrd(0 To Dim Двадцатка As Сотни(Mid(strЧисло, Поз, 1))
быть с поддержкойнажмите сочетание клавиш эта книга хранитсяс помощью формул, вспомогательных«OK»
добавьте новый пустой Евгении не MS имена, при этом наработки в этомSerge_007 d = «» Mid(SumInt, shag + If vl = 1, «шестнадцать рублей»,
9) As String String Двадцатка = strТысячи = strТысячи макросов, т.е. вALT+F11 в папке C:Usersимя_пользователяApplication диапазонов с текстом.
модуль через меню Excel, а какая-то формула чуть более направлении.: Да что Вы If Valuta = 1, 1) <> «1» And Mid(SumInt, «шестнадцать долларов»)) Edinicy(17)
Dim mln(0 To «» Select Case & Десятки(Mid(strЧисло, Поз формате xlsm!) и, чтобы открыть редактор DataMicrosoftExcelXLStart.
и имен получаемОтрывается окно аргументов функции
Insert — Module другая похожая программа, 700 знаков и
Есть решения на
говорите! 1 Then d 0 Then GoTo shag + 1, = «семнадцать «: 9) As String: n Case «0»: + 1, 2), вернитесь в Excel. Visual BasicЕсли Личная книга макросов число прописью;Сумма_прописьюскопируйте и вставьте якобы совместимая с легко редактируется в
формулах и сА если попробовать?
= «коп.» Else 10 Else txt 1) <> 0
excelworld.ru
Как писать формулу в Excel что бы выдавало сумму прописью??
EdinicyPoslednie(17) = IIf(Valuta Dim tys(0 To Двадцатка = «» «ж») strТысячи =
Теперь вы можетедобавьте новый пустой модуль еще не былакопируем результат вычисления формулы
. Оно содержит только туда текст этой Excel (помню по
2003 Excel. помощью UDF.
jakim d = «цен.» = txt & Then GoTo 10 = 0, «семнадцать 9) As String Case «1» Select strТысячи & ИмяРазряда(strТысячи, вставить созданную функцию через меню создана, то скопируйте (число прописью) в одно поле
функции: предыдущему обсуждению)MCH
Так как представлены: Пожалуйста. If Valuta >
Desyatki(vl) ‘ - Else txt = евро», IIf(Valuta =
Dim SumInt, x,
При работе с финансовыми документам часто требуется указывать сумму не только в виде числа, но и прописью. Безусловно, такое занятие способно отнять немало времени, особенно, когда речь идет не об одном документе. К тому же, при написании сумм прописью не исключены грамматические ошибки, на поиск и устранение которых также потребуются дополнительные трудозатраты. К счастью, в Эксель можно автоматизировать данный процесс и ниже мы рассмотрим, как именно это сделать.
Специальная надстройка NUM2TEXT
В программе Excel не предусмотрен какой-либо специальный инструмент, позволяющий выполнить автоматический перевод цифр в соответствующие текстовые значения. Однако в этом деле может помочь специальная надстройка NUM2TEXT, которая работает через функцию.
Алгоритм действий следующий:
- В верхней строке окна программы кликаем по меню “Файл”.
- В перечне слева выбираем пункт “Параметры”.
- В открывшихся параметрах программы кликаем по разделу “Надстройки”. В нижней части окна щелкаем по кнопке “Перейти” рядом с пунктом “Управление”, значение которого должно быть установлено как “Надстройки Excel”.
- На экране отобразится окно надстроек, в котором нажимаем кнопку “Обзор”.
- Откроется окно обзора, где мы переходим в папку, в которой находится заранее скачанный файл надстройки “NUM2TEXT.xla”. Выбираем его и щелкаем кнопку OK.Примечание: Официального сайта, с которого можно скачать надстройку, к сожалению нет, однако, в интернете ее достаточно легко найти, воспользовавшись поисковой системой. Главное – скачивайте файл с надежных источников, обязательно с расширением “xla”. Не лишним будет после загрузки файла на компьютер проверить его с помощью антивирусной программы.
- Система снова вернет нас в прежнее окно, где мы можем заметить, что в списке надстроек появилась и только что добавленная. Ставим флажок напротив нее (если это по какой-то причине не произошло автоматически), затем нажимаем кнопку OK.
- Теперь нам нужно убедиться, что надстройка работает. Для этого пишем в любой незаполненной ячейке случайное число. После этого переходим в другую свободную ячейку и жмем кнопку “Вставить функцию” (fx) слева от строки формул.
- В окне вставки функции выбираем категорию “Полный алфавитный перечень”, находим строку “Сумма_прописью”, щелкаем по ней, затем – по кнопке OK.
- Откроется окно с единственным аргументом функции – “Сумма”. В поле для ввода значения аргумента мы можем написать как обычное число, так и указать адрес ячейки, который печатаем вручную или выбираем в таблице кликом по нужному элементу (при этом, курсор должен находится в поле для ввода информации). После того, как значение аргумента заполнено, щелкаем OK.
- В ячейке с функцией отобразился результат в виде суммы прописью, что и требовалось.Причем, если мы поменяем число в исходной ячейке, на которую ссылается функция, значение в финальной ячейке также изменится.
Ручной ввод формулы функции
Опытные пользователи довольно часто предпочитают вместо использования вставки функции и последующего заполнения ее аргументов в отдельных окнах сразу писать конечную формулу в ячейке.
В данном случае, формула выглядит следующим образом:
=Сумма_прописью(Сумма)
В качестве аргумента “Сумма”, как мы ранее уже отметили, может быть указано как конкретное число, так и ссылка на ячейку.
Например, вот как выглядит финальная формула с числом 21: =Сумма_прописью(21)
.
После того, как она набрана в нужной ячейке, нам остается только нажать Enter, чтобы получить результат.
Или же мы можем вместо числа указать адрес ячейки: =Сумма_прописью(B3)
.
После нажатия клавиши Enter мы также получаем результат в виде суммы прописью в ячейке с формулой.
Заключение
Несмотря на то, что в Эксель по умолчанию не предусмотрена функция, позволяющая перевести числовое значение в сумму прописью, тем не менее, выполнить данную задачу в программе можно, установив специальную надстройку. Данный процесс не займет много времени и не требует особых пользовательских навыков.
При внесении информации в разные экономические документы иногда по регламенту требуется вписать сумму прописью. Если речь идет о единичных случаях, то проблем не возникнет. Но при заполнении большого числа документов на это уходит больше времени, чем при заполнении цифрами. Выясним, как установить инструмент, позволяющий автоматически вписать сумму прописью в Excel.
Зачем это нужно
Число, указанное прописью, применяют во многих бухгалтерских документов. Если фирма использует специальные программы, например 1С для формирования отчетности, то такой потребности не возникнет. Но когда нужно ввести сумму прописью при заполнении бумаг в обычных программах, могут возникнуть проблемы. Это требует большого количества времени, поэтому встает вопрос об автоматизации процесса.
Кроме специалистов, которым на работе нужно указать буквенное значение числа, обычным пользователям тоже может потребоваться такой ввод для своих личных целей.
Использование надстройки
В Экселе отсутствует стандартный инструмент, позволяющий добавить сумму прописью, для этого применяют специальные надстройки. Одна из популярных надстроек — NUM2TEXT, которую можно скачать бесплатно. Она меняет цифровые значения на буквенные с помощью Мастера функций. Предварительно необходимо загрузить и сохранить на жестком диске компьютера файл NUM2TEXT.xla.
Преобразовать числа в текст прописью в Excel 2007, 2010, 2016, можно следующим образом:
- Запустить Эксель и зайти в раздел «файл».
- Кликнуть на строку «параметры».
- Откроется окошко, в котором необходимо перейти в пункт «надстройки».
- Внизу в строке «управление» поставить значение «надстройки Эксель» и щелкнуть на элемент «перейти».
- Появится маленькое окно, в котором требуется нажать на кнопку «обзор».
- В появившемся окошке найти предварительно скачанный файл, выделить его и кликнуть на ОК.
- Инструмент появился в доступных надстройках. Поставить галочку в квадратике рядом с ним и снова щелкнуть мышкой на ОК.
- Теперь нужно проверить функционирование надстройки. Для этого в любой ячейке ввести произвольное число.
- Выделить любой другой элемент и кликнуть на ярлычок «вставить функцию», находящийся с левой стороны от строчки формулы.
- Открыть мастер функций, в предложенном списке найти «сумма прописью». Выделить ее и кликнуть на ОК.
- В окошке «аргументы функции» в строке «сумма» вписать нужное числовое значение. Оно сразу отобразится в указанной области в рублях и копейках прописью.
- В строчке можно указать адрес любой ячейки. Возможны 2 варианта – ручным способом через запись координат или простым нажатием на нее в тот момент, когда указатель мышки стоит в поле «сумма». Щелкнуть на ОК.
- Далее цифра, введенная в ячейку, отобразится в стоимостном выражении прописью в той клетке, где стоит формула.
Использование формулы
Опцию записи значения прописью можно запустить вручную, не прибегая к помощи мастера функций. Но для преобразования числа в текст сначала нужно составить формулу. Примеры различных формул под разные требования можно найти на специализированном форуме.
Синтаксис обычно такой: Сумма_прописью (сумма) или Сумма_прописью (координаты_ячейки).
Если пользователь напечатает в ячейке формулу =Сумма_прописью (74) и нажмет на клавишу ENTER, то в ней автоматически появится текст «семьдесят четыре рубля 00 копеек» (с копейками или без зависит от самой формулы).
Если пользователь напечатает в ячейке =Сумма прописью (А3), то цифра, стоящая в клетке А3, отобразится в запрашиваемом формате.
Скрипт VBA
Далее представлена подготовленная функция на VBA для пользователей, которая переведет цифровой показатель от 0 до 9 999 999 в его текстовое выражение, т.е. в сумму прописью. Сначала ее потребуется занести в книгу. Алгоритм действий:
- нажимают одновременно на ALT+F11, откроется редактор Visual Basic;
- добавляют новый пустой модуль посредством меню Insert – Module;
- копируют и добавляют туда скрипт:
Function СУММАПРОПИСЬЮ(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") Nums2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ") Nums3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ") Nums4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") Nums5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ") If n <= 0 Then СУММАПРОПИСЬЮ = "ноль" Exit Function End If 'разделяем число на разряды, используя вспомогательную функцию Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class(n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil = Class(n, 8) 'проверяем миллионы Select Case decmil Case 1 mil_txt = Nums5(mil) & "миллионов " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "миллион " Case 2, 3, 4 mil_txt = Nums1(mil) & "миллиона " Case 5 To 20 mil_txt = Nums1(mil) & "миллионов " End Select www: sottys_txt = Nums3(sottys) 'проверяем тысячи Select Case dectys Case 1 tys_txt = Nums5(tys) & "тысяч " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "тысяч " Case 1 tys_txt = Nums4(tys) & "тысяча " Case 2, 3, 4 tys_txt = Nums4(tys) & "тысячи " Case 5 To 9 tys_txt = Nums4(tys) & "тысяч " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тысяч " eee: sot_txt = Nums3(sot) 'проверяем десятки Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1(ed) rrr: 'формируем итоговую строку СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function 'вспомогательная функция для выделения из числа разрядов Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) End Function
Сохраняют файл и возвращаются в Excel. Затем вставляют функцию в любую клетку листа книги привычным способом — через мастер функций или просто набирают ее в ячейке вручную, а в качестве аргумента указывают ячейку с суммой.