- Число прописью в 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 поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!
Часто нужно перевести число в текст в Excel так, чтобы оно отображалось прописью (словами) на русском или других языках. Так как по умолчанию нет готовой функции, создадим свою пользовательскую функцию с помощью макросов.
Пример использования пользовательской функции для преобразования числа суммы в текстовые слова, которую можно скачать в конце статьи:
Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:
- Открыть редактор макросов ALT+F11.
- Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub. Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем».
- Вставить в модуль следующий код и сохранить:
Function ЧислоПропись(Число As Currency) As String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String, strМиллионы As String, strТысячи As String, strЕдиницы As String, strСотые As String
Dim Поз As Integer
strЧисло = Format(Int(Число),
«000000000000»)
‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), «миллиард «, «миллиарда «, «миллиардов «)
‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), «миллион «, «миллиона «, «миллионов «)
‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), «ж»)
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), «тысяча «, «тысячи «, «тысяч «)
‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = «» Then strЕдиницы = «ноль «
‘strЕдиницы = strЕдиницы & ИмяРазряда(» «, Mid(strЧисло, Поз + 1, 2), «рубль «, «рубля «, «рублей «)
‘Сотые’
‘strСотые = strКопейки & » » & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘»копейка», «копейки», «копеек»)
ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) — 1)
Exit Function
Число_Error:
MsgBox Err.Description
End Function
Function Сотни(n As String) As String
Сотни = «»
Select Case n
Case 0: Сотни = «»
Case 1: Сотни = «сто «
Case 2: Сотни = «двести «
Case 3: Сотни = «триста «
Case 4: Сотни = «четыреста «
Case 5: Сотни = «пятьсот «
Case 6: Сотни = «шестьсот «
Case 7: Сотни = «семьсот «
Case 8: Сотни = «восемьсот «
Case 9: Сотни = «девятьсот «
End Select
End Function
Function Десятки(n As String, Sex As String) As String
Десятки = «»
Select Case Left(n, 1)
Case «0»: Десятки = «»: n = Right(n, 1)
Case «1»: Десятки = «»
Case «2»: Десятки = «двадцать «: n = Right(n, 1)
Case «3»: Десятки = «тридцать «: n = Right(n, 1)
Case «4»: Десятки = «сорок «: n = Right(n, 1)
Case «5»: Десятки = «пятьдесят «: n = Right(n, 1)
Case «6»: Десятки = «шестьдесят «: n = Right(n, 1)
Case «7»: Десятки = «семьдесят «: n = Right(n, 1)
Case «8»: Десятки = «восемьдесят «: n = Right(n, 1)
Case «9»: Десятки = «девяносто «: n = Right(n, 1)
End Select
Dim Двадцатка As String
Двадцатка = «»
Select Case n
Case «0»: Двадцатка = «»
Case «1»
Select Case Sex
Case «м»: Двадцатка = «один «
Case «ж»: Двадцатка = «одна «
Case «с»: Двадцатка = «одно «
End Select
Case «2»:
Select Case Sex
Case «м»: Двадцатка = «два «
Case «ж»: Двадцатка = «две «
Case «с»: Двадцатка = «два «
End Select
Case «3»: Двадцатка = «три «
Case «4»: Двадцатка = «четыре «
Case «5»: Двадцатка = «пять «
Case «6»: Двадцатка = «шесть «
Case «7»: Двадцатка = «семь «
Case «8»: Двадцатка = «восемь «
Case «9»: Двадцатка = «девять «
Case «10»: Двадцатка = «десять «
Case «11»: Двадцатка = «одиннадцать «
Case «12»: Двадцатка = «двенадцать «
Case «13»: Двадцатка = «тринадцать «
Case «14»: Двадцатка = «четырнадцать «
Case «15»: Двадцатка = «пятнадцать «
Case «16»: Двадцатка = «шестнадцать «
Case «17»: Двадцатка = «семнадцать «
Case «18»: Двадцатка = «восемнадцать «
Case «19»: Двадцатка = «девятнадцать «
End Select
Десятки = Десятки & Двадцатка
End Function
Function ИмяРазряда(Строка As String, n As String, Имя1 As String, Имя24 As String, ИмяПроч As String) As String
If Строка <> «» Then
ИмяРазряда = «»
Select Case Left(n, 1)
Case «0», «2», «3», «4», «5», «6», «7», «8», «9»: n = Right(n, 1)
End Select
Select Case n
Case «1»: ИмяРазряда = Имя1
Case «2», «3», «4»: ИмяРазряда = Имя24
Case Else: ИмяРазряда = ИмяПроч
End Select
End If
End Function
Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:
Function ЧислоПрописьюВалюта(Число As Double, Optional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = «Функция преобразовывает число суммы текстовыми словами»
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = » n1″
Dim Edinicy(0 To 19) As String: Dim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As String: Dim Sotni(0 To 9) As String: Dim mlrd(0 To 9) As String
Dim mln(0 To 9) As String: Dim tys(0 To 9) As String
Dim SumInt, x, shag, vl As Integer: Dim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = «»: EdinicyPoslednie(0) = IIf(Валюта = 0, «евро», IIf(Валюта = 1, «рублей», «долларов»))
Edinicy(1) = «один «: EdinicyPoslednie(1) = IIf(Валюта = 0, «один евро», IIf(Валюта = 1, «один рубль», «один доллар»))
Edinicy(2) = «два «: EdinicyPoslednie(2) = IIf(Валюта = 0, «два евро», IIf(Валюта = 1, «два рубля», «два доллара»))
Edinicy(3) = «три «: EdinicyPoslednie(3) = IIf(Валюта = 0, «три евро», IIf(Валюта = 1, «три рубля», «три доллара»))
Edinicy(4) = «четыре «: EdinicyPoslednie(4) = IIf(Валюта = 0, «четыре евро», IIf(Валюта = 1, «четыре рубля», «четыре доллара»))
Edinicy(5) = «пять «: EdinicyPoslednie(5) = IIf(Валюта = 0, «пять евро», IIf(Валюта = 1, «пять рублей», «пять долларов»))
Edinicy(6) = «шесть «: EdinicyPoslednie(6) = IIf(Валюта = 0, «шесть евро», IIf(Валюта = 1, «шесть рублей», «шесть долларов»))
Edinicy(7) = «семь «: EdinicyPoslednie(7) = IIf(Валюта = 0, «семь евро», IIf(Валюта = 1, «семь рублей», «семь долларов»))
Edinicy(8) = «восемь «: EdinicyPoslednie(8) = IIf(Валюта = 0, «восемь евро», IIf(Валюта = 1, «восемь рублей», «восемь долларов»))
Edinicy(9) = «девять «: EdinicyPoslednie(9) = IIf(Валюта = 0, «девять евро», IIf(Валюта = 1, «девять рублей», «девять долларов»))
Edinicy(11) = «одиннадцать «: EdinicyPoslednie(11) = IIf(Валюта = 0, «одиннадцать евро», IIf(Валюта = 1, «одиннадцать рублей», «одиннадцать долларов»))
Edinicy(12) = «надцать «: EdinicyPoslednie(12) = IIf(Валюта = 0, «надцать евро», IIf(Валюта = 1, «надцать рублей», «надцать долларов»))
Edinicy(13) = «тринадцать «: EdinicyPoslednie(13) = IIf(Валюта = 0, «тринадцать евро», IIf(Валюта = 1, «тринадцать рублей», «тринадцать долларов»))
Edinicy(14) = «четырнадцать «: EdinicyPoslednie(14) = IIf(Валюта = 0, «четырнадцать евро», IIf(Валюта = 1, «четырнадцать рублей», «четырнадцать долларов»))
Edinicy(15) = «пятнадцать «: EdinicyPoslednie(15) = IIf(Валюта = 0, «пятнадцать евро», IIf(Валюта = 1, «пятнадцать рублей», «пятнадцать долларов»))
Edinicy(16) = «шестнадцать «: EdinicyPoslednie(16) = IIf(Валюта = 0, «шестнадцать евро», IIf(Валюта = 1, «шестнадцать рублей», «шестнадцать долларов»))
Edinicy(17) = «семнадцать «: EdinicyPoslednie(17) = IIf(Валюта = 0, «семнадцать евро», IIf(Валюта = 1, «семнадцать рублей», «семнадцать долларов»))
Edinicy(18) = «восемнадцать «: EdinicyPoslednie(18) = IIf(Валюта = 0, «восемнадцать евро», IIf(Валюта = 1, «восемнадцать рублей», «восемнадцать долларов»))
Edinicy(19) = «девятнадцать «: EdinicyPoslednie(19) = IIf(Валюта = 0, «девятнадцать евро», IIf(Валюта = 1, «девятнадцать рублей», «девятнадцать долларов»))
»———————————————
Desyatki(0) = «»: Sotni(0) = «»: tys(0) = «тисячь «: mln(0) = «миллионов «: mlrd(0) = «миллиардов «
Desyatki(1) = «десять «: Sotni(1) = «сто «: tys(1) = «тысяча «: mln(1) = «миллион «: mlrd(1) = «миллиарда «
Desyatki(2) = «двадцать «: Sotni(2) = «двести «: tys(2) = «тысячи «: mln(2) = «миллиона «: mlrd(2) = «миллиарда «
Desyatki(3) = «тридцать «: Sotni(3) = «триста «: tys(3) = «тысячи «: mln(3) = «миллиона «: mlrd(3) = «миллиарда «
Desyatki(4) = «сорок «: Sotni(4) = «четыреста «: tys(4) = «тысячи «: mln(4) = «миллиона «: mlrd(4) = «миллиарда «
Desyatki(5) = «пятьдесят «: Sotni(5) = «пятьсот «: tys(5) = «тысяч «: mln(5) = «миллионов «: mlrd(5) = «миллиардов «
Desyatki(6) = «шестьдесят «: Sotni(6) = «шестьсот «: tys(6) = «тысяч «: mln(6) = «миллионов «: mlrd(6) = «миллиардов «
Desyatki(7) = «семьдесят «: Sotni(7) = «семьсот «: tys(7) = «тысяч «: mln(7) = «миллионов «: mlrd(7) = «миллиардов «
Desyatki(8) = «восемьдесят «: Sotni(8) = «восемьсот «: tys(8) = «тысяч «: mln(8) = «миллионов «: mlrd(8) = «миллиардов «
Desyatki(9) = «девяносто «: Sotni(9) = «девятьсот «: tys(9) = «тысяч «: mln(9) = «миллионов «: mlrd(9) = «миллиардов «
‘———————————————
On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
shag = shag + 1
Select Case x
Case 12 ‘ — сотни миллиардов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 11 ‘ — десятки миллиардов
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 10 ‘ — единицы миллиардов
vl = Mid(SumInt, shag, 1)
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиарда « Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на «мільярдов» независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mlrd(vl)
End If
‘-КОНЕЦ БЛОКА_______________________
Case 9 ‘ — сотни миллионов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 8 ‘ — десятки миллионов
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 7 ‘ — единицы миллионов
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0») Then GoTo 10
End If
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиона « Else: txt = txt & Edinicy(vl) & mln(vl) ‘числа в диапозоне от 11 до 19 склоняются на «миллиардов» независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mln(vl)
End If
‘-КОНЕЦ БЛОКА_______________________
Case 6 ‘ — сотни тысяч
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 5 ‘ — десятки тысяч
vl = Mid(SumInt, shag, 1)
If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 4 ‘ — единицы тысяч
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0») Then GoTo 10
End If
Sclon_Tys = Edinicy(vl) & tys(vl) ‘ — вводим переменную Sclon_Tys из-за иного склонения тысяч в русском языке
If vl = 1 Then Sclon_Tys = «одна « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную Sclon_Tys )
If vl = 2 Then Sclon_Tys = «две « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную Sclon_Tys )
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag — 1, 2)) & «тисяч «
End If
txt = txt & Sclon_Tys
‘-КОНЕЦ БЛОКА_______________________
Case 3 ‘ — сотни
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 2 ‘ — десятки
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 1 ‘ — единицы
If Mid(SumInt, shag — 1, 1) <> 1 Or Mid(SumInt, shag — 1, 2) = «10» Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag — 1, 2)
txt = txt & EdinicyPoslednie(vl)
‘-КОНЕЦ БЛОКА_______________________
End Select
10: Next x
a = Число
b = Int(a)
c = (Round(a — b, 2)) * 100
If c < 10 And c >= 1 Then c = «0» + CStr(c)
If c = 0 Then c = CStr(c) + «0»
d = «»
If Валюта = 1 Then d = «коп.» Else d = «цен.»
If Валюта > 2 Or Валюта < 0 Then MsgBox «Укажите параметр 0-2»
If Валюта > 2 Or Валюта < 0 Then GoTo 11
If Копейки = 0 Then
d = «»
c = «»
End If
If Копейки = 2 Then d = «»
If Копейки > 2 Or Копейи < 0 Then MsgBox «Укажите параметр 0, 1 или 2»
If Копейки > 2 Or Копейки < 0 Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + » « + CStr(c) + d
11:
End Function
Sub DescribeFunction()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1 To 3) As String
FuncName =
«ЧислоПрописьюВалюта»
FuncDesc = «Функция преобразовывает число суммы текстовыми словами»
Category = 1 ‘Text category
ArgDesc(1) = «Исходная сумма»
ArgDesc(2) = «(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары.»
ArgDesc(3) = «(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов).»
Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
ArgumentDescriptions:=ArgDesc
End Sub
Также не забудьте добавить в рабочую книгу код вызова макроса регистрации DescribeFunction, чтобы отображать описание атрибутов для пользовательской функции:
Private Sub Workbook_Open()
DescribeFunction
End Sub
Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»
Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:
- 1-рубли;
- 2-доллары;
- 0-евро;
Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).
Скачать число прописью в Excel руб RUB.
Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:
Скачать функцию ЧислоСловоВалюта ГРН UAH
Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.
Сумма прописью
Ниже вы найдете готовую пользовательскую функцию на 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 2007 или 2010, то тип файла должен быть с поддержкой макросов, т.е. в формате xlsm!) и вернитесь в Excel. Теперь вы можете вставить созданную функцию в любую ячейку листа этой книги обычным способом — через мастер функций (кнопка fx в строке формул, категория Определенные пользователем) или просто набрав ее в ячейке вручную и указав в качестве аргумента ячейку с суммой:
Если вам необходимо добавить к полученному тексту копейки, то можно воспользоваться чуть более сложной конструкцией:
=СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»
=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.»
Тогда, например, для числа 35,15 результат функции будет выглядеть как «тридцать пять руб. 15 коп.»
Ссылки по теме
- Более мощный вариант функции с рублями и копейками на русском/английском из надстройки PLEX
- Что такое макросы, куда вставлять код макроса, как их использовать
Очень часто при работе с документами мы сталкиваемся с необходимостью написать сумму прописью. И казалось бы, в этом нет ничего сложного, но когда речь идет о десятках тысяч строк, мы задумываемся. Решение на самом деле очень просто – необходимо использовать специализированное дополнение, которое делает всю работу за нас. Сегодня мы немного подробнее расскажем о специальном расширении NUM2TEXT.XLA, ну а в самом низу этой же странички вы сможете бесплатно скачать его последнюю версию по прямой ссылке.
Для чего это нужно?
Очень часто, работая в бухгалтерии, человек сталкивается с необходимостью, как мы уже говорили, прописать какую-либо сумму прописью. Если речь идет о таком программном обеспечении, как, например, 1C, сложностей не возникает. Но работая с Microsoft Excel, мы на 100% ощущаем всю горечь проблемы. И тогда становится ясно, что без дополнения NUM2TEXT уже не обойтись.
Данное расширение подойдет не только для профессионалов, но и для обычных пользователей. Тем более что в самом конце этой странички вы сможете полностью бесплатно скачать его по прямой ссылке.
Как установить
Установить NUM2TEXT для нашего офисного пакета очень просто. Делается это следующим образом:
- Сначала, при помощи имеющейся в самом низу странички кнопки, скачиваем архив с нужным нам файлом. После этого распаковываем его.
- Далее запускаем программу Excel и переходим в главное меню, а именно раздел «Файл». Далее жмем по ссылке «Параметры».
- Выбираем кнопку «Надстройки», а потом кликаем по «Управление».
- Жмем ссылку «Надстройки Excel», а после нее «Перейти…».
- Переходим к «Обзор…» к и находим тот файл, который недавно скачали.
- Активируем наш плагин, установив галочку напротив его названия.
После этого добавленный инструмент можно будет использовать, а для того, чтобы проверить, работает ли он, делаем следующее:
- Выделяем какую-либо ячейку в таблице Excel, а потом вписываем в нее значение.
- Выделив вторую ячейку, выбираем инструмент «Вставить функцию» (кнопка, расположенная немножко левее, чем инструмент для ввода формул).
- Выбираем «Сумма прописью» и кликаем «ОК».
- В текстовом поле «Аргументы» устанавливаем указатель мыши на «Сумма» и указываем наш аргумент.
После этого число, которое мы указали, должно отобразиться прописью. Соответственно, если это произошло, значит мы все сделали правильно.
Как пользоваться
Для того чтобы инструмент, добавленный в Microsoft Excel, начал работать, необходимо проделать ряд несложных шагов, а именно: добавляем формулу, к примеру, это может быть: «=Сумма_прописью (сумма)» (вместо «сумма» — нужное число) или «=Сумма_прописью (координата) (вместо «координата» — адрес ячейки, в которой содержится число).
Ключ активации и загрузка
Как мы уже говорили, рассматриваемый инструмент является полностью бесплатным и никаких дополнительных действий для своей активации не предусматривает.
NUM2TEXT – это надстройка для Microsoft Excel, при помощи которой мы можем производить различные арифметические операции над числами. Например, сумма прописью и так далее.
Описание надстройки
Данное программное обеспечение позволяет значительно упростить ведение различных операций над числами и строками. К примеру, нам нужно из обычного десятичного числа сделать сумму прописью. Для этого достаточно установить дополнение и просто выбрать соответствующий пункт из контекстного меню.
Надстройка подходит практически для любых версий с офиса. Это может быть Microsoft Excel 2010, 2013, 2016 или 2019.
Как установить
Переходим к процессу установки. Работать нужно по такому сценарию:
- В разделе загрузки при помощи кнопки скачиваем архив с нужным файлом. Распаковываем содержимое в любую папку.
- Помещаем полученный компонент в каталог расширений Microsoft Excel.
- Открываем настройки и выбираем только что добавленное дополнение. Производим активацию.
Как пользоваться
Как уже было сказано, для активации данного дополнения нам нужно перейти к настройкам. В списке выбираем только что скопированный плагин и применяем внесённые изменения.
Достоинства и недостатки
Давайте разберём сильные, а также слабые стороны надстройки для работы с числами в Excel.
Плюсы:
- значительное ускорение процесса работы;
- полная бесплатность.
Минусы:
- некоторая сложность установки.
Скачать
Бесплатно скачать последнюю версию NUM2TEXT.XLA для Microsoft Excel можно при помощи прямой ссылки.
Язык: | Русский |
Активация: | Бесплатно |
Разработчик: | Microsoft |
Платформа: | Windows XP, 7, 8, 10, 11 |
NUM2TEXT.XLA
Цифры прописью в Excel — вот так чудо, и это один из наглядных примеров рационального использования достижений автоматизации процессов. О такой возможности многие пользователи и не догадываются, а между тем можно порядком сэкономить драгоценное время.
Цифры прописью в Excel
Для замены цифр прописью в Excel потребуется воспользоваться дополнительной надстройкой, но не стоит пугаться, если вы ничего в этом не понимаете. Читайте и делайте согласно инструкции, и все у вас получится.
Интересно. Как сделать подобное в Word читайте здесь.
Число прописью в Экселе. Установка
В данном уроке вам будет предложено скачать бесплатно корректно работающий вариант приложения для написания числа прописью найденного на просторах интернета.
Как правило, необходимость конвертировать цифры в текст возникает в различных бухгалтерских и платежных документах, поэтому радует и наличие возможности выбора основных валют (рубли, доллары и евро).
Довольно лирики, давайте приступим и подробно разберемся, как написать число прописью.
Делаем в следующем порядке:
1. Скачиваем и распаковываем файл кликнув здесь.
2. Закиньте файл NUMSTR.XLA в папку Library, которая находится C:ProgramFiles (x86)MicrosoftOfficeOffice14Library (возможно расположение немного отличается, зависит от версий ПО).
3. Запустите Excel и на вкладке «Разработчик» кликните по кнопке «Надстройки» (если ее нет, читайте ниже).
Внимание. Если нет вкладки «Разработчик», пройдите Файл → Параметры → Настройка ленты и установите галку напротив пункта «Разработчик».
4. В окне «Надстройки» отметьте пункт NumStrAdd-in и нажмите ОК.
Усё можно пользоваться.
Число прописью в Excel. Как пользоваться
Расширение установлено, теперь несколько слов как использовать:
5. Для примера напишите в произвольной ячейке число цифрами.
6. Кликните по кнопке «Вставить Функцию».
7. В открывшемся окне «Мастер функций» в списке «Категория» выберите «Определенные пользователем».
8. После этого выберите необходимую функцию:
NumStr – отобразит цифры буквами в Excel;
RubStr — преобразует число прописью в рублях;
USDStr – конвертирует число прописью в долларах;
EURStr – выведет сумму прописью в евро.
9. В следующем окне «Аргументы функции» укажите в поле ячейку с данными (кликнут курсором) или непосредственно число цифрами, завершив нажатием кнопки ОК и растянувшейся улыбкой.
Интересно. Как закрепить строки в Excel читайте тут.
Excel число прописью. Видеоурок
Премьера уже скоро…
- ВКонтакте
Download SocComments v1.3
Сумма прописью в Microsoft Excel
Смотрите также сдал не сдалRAN не excel, а два варианта UDF сообщить, внесу соответствующие «семь «, «восемь ‘-КОНЕЦ БЛОКА_______________________ End диапозоне от 11 «: tys(8) = евро», IIf(Valuta = Десятки & Двадцатка » Case 2: (словами) на русскомИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00»)&» формул: Это делается либоПри заполнении различных финансовыхЧитаем Правила форума: Вообще-то я про libreoffice
MCH поправки
Использование надстройки
«, «девять «) Select 10: Next до 19 склоняются «тысяч «: mln(8) 1, «девять рублей», End Function Function Сотни = «двести
или других языках. коп.»);»ноль руб. 00разместить в Личной книге путем ручной записи документов часто требуется
- RAN поиск по сайтуСпасибо за отклики.: Сумма прописью на
- Для начала, сумма Nums5 = Array(«десять x a =
- на «мільярдов» независимо = «миллионов «: «девять долларов»)) Edinicy(11) ИмяРазряда(Строка As String,
- » Case 3: Так как по коп.») макросов (PERSONAL.XLSB) вспомогательные координат этой ячейки, прописать сумму не: И зачем в
- говорил. Кнопочка междуAlex_ST туркменском, азербайджанском (кириллицей прописью без использования «, «одиннадцать «,
- SumBase b = от последнего числа mlrd(8) = «миллиардов = «одиннадцать «: n As String, Сотни = «триста умолчанию нет готовойФормула отобразит число прописью. диапазоны, содержащие некоторые
- либо простым кликом только числом, но правила посылать? «Главная» и «Правила».: и латиницей) и макросов. «двенадцать «, «тринадцать
- Int(a) c = триады Else txt » Desyatki(9) = EdinicyPoslednie(11) = IIf(Valuta Имя1 As String, » Case 4: функции, создадим свою Ячейки, содержащие исходное числа прописью (от по ней в и прописью. Конечно,
- С такой формулировкойMCHEvgeniyaD турецком языкахОсобенности: «, «четырнадцать «, (a — b) = txt & «девяносто «: Sotni(9) = 0, «одиннадцать Имя24 As String, Сотни = «четыреста
- пользовательскую функцию с число и формулу, 0 до 999); то время, когда это занимает гораздо сразу отчислять надо.: Кстати, Сумма прописью, загляните-ка СЮДА .Функция на турецком1. Без макросов. _ «пятнадцать «, * 100 If
Edinicy(vl) & mln(vl) = «девятьсот «: евро», IIf(Valuta = ИмяПроч As String) » Case 5: помощью макросов. можно перенести всоздать формулу, переводящую в курсор находится в больше времени, чемivanov1974 из указанной ссылки Там про Word, реализована не полностью
- Пропись реализована формулой «шестнадцать «, «семнадцать c = 0 End If ‘-КОНЕЦ tys(9) = «тысяч 1, «одиннадцать рублей», As String If Сотни = «пятьсот
Для создания пользовательской функции, любое место в текст любое число поле параметра обычное написание с: Здравствуйте знатоки EXCEL. не корректна но поищите вокруг, (отсутствуют копейки) с использованием имен. ", "восемнадцать ",
Then c = БЛОКА_______________________ Case 6 «: mln(9) = «одиннадцать долларов»)) Edinicy(12) Строка <> «» » Case 6:
которая сможет перевести книге или даже от 0 до
«Сумма» помощью цифр. Если На форуме неЧисла заканчивающиеся на нет ли тамEvgeniyaD
2. Не привязана «девятнадцать «) If CStr(c) + «0» ‘ — сотни «миллионов «: mlrd(9) = «двенадцать «: Then ИмяРазряда = Сотни = «шестьсот число в текст в другую книгу.
1 млрд. с
lumpics.ru
Число прописью в Excel (динамический вариант)
. Жмем на кнопку подобным образом нужно нашел ответа. 10-19 — не чего ценного и: Раз предыдущий топик к диапазонам, можно n 0 Then d = «» тысяч vl =
= «миллиардов « EdinicyPoslednie(12) = IIf(Valuta «» Select Case » Case 7: прописью , намЧтобы еще больше приблизиться помощью вспомогательных диапазонов«OK» заполнить не одно,В ячейку А1 правильно отображаются
про Excel ? удалился, напишу вопрос легко копировать/переносить, в tys_txt = Nums4(tys) If Valuta = Mid(SumInt, shag, 1)
- ‘——————————————— On Error = 0, «двенадцать
- Left(n, 1) Case Сотни = «семьсот нужно выполнить 3 к идеалу создадим
- и имен;. а много документов,
- вводим число, скажем,motia-kompaktДа и убедиться заново здесь. Как т.ч. и в
& «тысяч « 1 Then d txt = txt Resume Next SumInt евро», IIf(Valuta = «0», «2», «3», » Case 8: простых шага: именованную формулу ЧислоПрописью.в любой книге, гдеПосле этого, любое число,
то временные потери 15.: Ссылка на формулу в установке самых
- только в вставила, другие книги. Case 1 tys_txt = «коп.» Else & Sotni(vl) Case
- = Int(SumBase) For 1, «двенадцать рублей», «4», «5», «6», Сотни = «восемьсотОткрыть редактор макросов ALT+F11. Для этого:
- требуется записать число которое записано в становятся огромными. КромеВ ячейку А2 ABS_123() не работает!!!!!!!!!!!! свежих версий как формула работала как3. Работает до = Nums4(tys) & d = «цен.» 5 ‘ - x = Len(SumInt)
«двенадцать долларов»)) Edinicy(13) «7», «8», «9»: » Case 9:Создать новый модуль ивыделите ячейку прописью создать Именованную ячейку, указанную вами, того, именно в надо ввести формулу,
А на другой самого LibreOffice, так
часы. но после 999 млрд. руб. «тысяча » Case If Valuta > десятки тысяч vl To 1 Step
= «тринадцать «: n = Right(n, Сотни = «девятьсот в нем нужноB1 формулу ЧислоПрописью с будет отображаться в записи суммы прописью чтобы получить значение
странице (суммы и и пакетов совместимости закрытия и открытия4. Делает первую 2, 3, 4
2 Or Valuta
= Mid(SumInt, shag,
-1 shag =
EdinicyPoslednie(13) = IIf(Valuta
1) End Select » End Select написать функцию особенным; относительной ссылкой на денежном виде прописью наиболее часто встречаются ячейки А1 прописью числа прописью) я
не помешает документа в начале букву прописной, остальные tys_txt = Nums4(tys) 2 Or Valuta 1) If vl shag + 1 = 0, «тринадцать Select Case n End Function Function способом: Function вместо
через меню Формулы/ Определенные исходное число (относительную в том месте, грамматические ошибки. Давайте на украинском языке: чего то вообщеAlump появились какие-то нули. строчные. & «тысячи « < 0 Then
= 1 And Select Case x евро», IIf(Valuta = Case «1»: ИмяРазряда Десятки(n As String, Sub. Тогда наша имена/ Присвоить имя ссылку можно создать где установлена формула выясним, как сделать п’ятнадцять
не чего не: Добрый день! В чем может5. Правильно округляет Case 5 To GoTo 11 ЧислоПрописьюВалюта Mid(SumInt, shag + Case 12 ‘
1, «тринадцать рублей»,
= Имя1 Case
Sex As String)
функция «ЧислоПропись» будет создайте именованную формулу так, чтобы она
функции. так, чтобы числаВ ячейку А3 поняла. Нет лиМожно ли сделать быть дело и до целых копеек,
9 tys_txt = = txt + 1, 1) <> — сотни миллиардов
- «тринадцать долларов»)) Edinicy(14) «2», «3», «4»: As String Десятки
- отображаться в списке ЧислоПрописью; позволяла выводить числоФункцию можно также записать
- прописью вносились автоматически. то же самое,
- чего нибудь попроще?
- что бы копейки возможно ли это даже если копейки
- Nums4(tys) & «тысяч » » + 0 Then GoTo vl = Mid(SumInt,
= «четырнадцать «: ИмяРазряда = Имя24 = «» Select мастера функций (SHIFT+F3),в поле Диапазон введите прописью, например, в и вручную безСкачать последнюю версию но на русскомSerge_007 тоже писались прописью?
исправить? Спасибо. дробные. » End Select CStr(c) + d 10 Else txt shag, 1) txt EdinicyPoslednie(14) = IIf(Valuta Case Else: ИмяРазряда Case Left(n, 1) в категории «Определенные формулу указанную выше:
excel2.ru
Переводим число прописью в число цифрами в Excel
соседней ячейке слева вызова мастера функций. Excel языке: Да что ВыЗаранее спасибо!
MCH6. Изменяет окончание If dectys =
11: End Function = txt & = txt & = 0, «четырнадцать = ИмяПроч End Case «0»: Десятки пользователем».
нажмите ОК; от исходного числа).
- Она имеет синтаксисВ Эксель нет встроенногоМожет кто подскажет,
- говорите!Gustav: Открыл файл в в слове «копейка» 0 And tysЕсли мы указываем число Desyatki(vl) ‘ -
- Sotni(vl) Case 11 евро», IIf(Valuta =
- Select End If = «»: nВставить в модуль следующийв ячейкеВ результате вышеуказанных манипуляцийСумма_прописью(сумма) инструмента, который бы
- как это сделать?А если попробовать?: Хм… А почему MS Excel 2010
- в соответствии с = 0 And (от 0 до если конец триады
‘ — десятки 1, «четырнадцать рублей», End Function
= Right(n, 1) код и сохранить:В1 можно будет, например,или помогал автоматически переводить Благодарен всем, кто
excel2.ru
Как перевести сумму или число прописью в Excel
jakim она была удалена?Нулей не увидел, правилами русского языка, sottys <> 0 2)в параметре второй от 11 до миллиардов vl = «четырнадцать долларов»)) Edinicy(15)Можно написать алгоритм макро Case «1»: Десятки
введите формулу =ЧислоПрописью записав в ячейкеСумма_прописью(координаты_ячейки) цифры в слова. откликнется на эту
- : Пожалуйста.
- У меня там в ячейке А56 а не просто Then sottys_txt = функции «ЧислоПрописьюВалюта» то 19 то перескакиваем Mid(SumInt, shag, 1) = «пятнадцать «: программы по-другому и = «» Case
- Function ЧислоПропись(Число As Currency)ячейка
G6
. Таким образом, если Поэтому для решения темуPulse была выложена в находится текст: «Две «коп.». sottys_txt & « функция автоматически подставит на единицы, иначе If vl = EdinicyPoslednie(15) = IIf(Valuta еще сделать так, «2»: Десятки = As String ‘доВ1исходное число, а вы в ячейке поставленной задачи используютSerge_007: Формула текстовом файле процедурка тысячи шестьдесят восемь7. Формула менее тысяч » eee: нужную валюту в — формируем десятки «1» And Mid(SumInt, = 0, «пятнадцать чтобы она дописывала «двадцать «: n 999 999 999будет содержать число в ячейке запишите формулу специальные надстройки.: На русскомABS_123() на эту тему, рублей 00 копеек» 1000 знаков, и sot_txt = Nums3(sot) сумме прописью: Case 4 ‘ shag + 1, евро», IIf(Valuta = валюту суммы прописью. = Right(n, 1) 999 On Error прописью.G7=Сумма_прописью(5)Одной из самых удобныхПо украински -работает не правильно, которая хоть иAlex_ST спокойно редактируется в ‘проверяем десятки Select1-рубли; — единицы тысяч 1) <> 0 1, «пятнадцать рублей», Для этого создайте Case «3»: Десятки GoTo Число_Error DimТеперь ячейкиформулу =ЧислоПрописью, и, то после является надстройка NUM2TEXT. во вложении это уже обсуждалось. прошла незамеченной, но: «В начале» это 2003 Excel. Case dec Case2-доллары; vl = Mid(SumInt, Then GoTo 10 «пятнадцать долларов»)) Edinicy(16) Module2 и введите = «тридцать «: strМиллиарды As String,А1В1 получить нужный результат. нажатия кнопки Она позволяет поменятьAlex_ST Попробуйте ввести 142,16 содержала в себе где? На какомMCH 1 ed_txt =0-евро; shag, 1) If Else txt = = «шестнадцать «: в него следующий n = Right(n, strМиллионы As String,можно скопировать иВсе это реализовано вENTER цифры на буквы: Сегодня ночью Михаил- и посмотрите на неплохой потенциал «масштабирования» листе? В какой: Число прописью с Nums5(ed) GoTo rrrКак видите, этот VBA-код shag > 2 txt & Desyatki(vl) EdinicyPoslednie(16) = IIf(Valuta код: 1) Case «4»: strТысячи As String, перенести в любое файле примера.в этой ячейке через Мастер функций.МСН результат. Формула, которую на любые числительные… ячейке? долями Case 2 To макроса преобразует числа Then If (Mid(SumInt, ‘ — если = 0, «шестнадцатьFunction ЧислоПрописьюВалюта(SumBase As Double, Десятки = «сорок strЕдиницы As String, место в книге,Как и в примере отобразиться надпись «ПятьОткрываем программу Excel ив «Готовых решениях» предоставил Я, конечно, ееУ Вас наФормула базируется на 9 dec_txt = в слова. После shag — 2, конец триады от евро», IIf(Valuta = Valuta As Integer) «: n = strСотые As String но они должны статьи Число прописью (статичный рублей 00 копеек». переходим во вкладку создал топик Суммыjakim попробую снова найти листе «Гарантированный» в предыдущей формуле Nums2(dec) End Select вставки данного кода 1) = 0 11 до 19 1, «шестнадцать рублей», Dim Edinicy(0 To Right(n, 1) Case Dim Поз As быть всегда на вариант) на листеЕсли вы введете в«Файл» и числа прописьювыдаёт результат в в своих залежах, начале в ячейкахОсобенности: ed_txt = Nums1(ed) в модуль редактора And Mid(SumInt, shag то перескакиваем на «шестнадцать долларов»)) Edinicy(17) 19) As String: «5»: Десятки = Integer strЧисло = одной строке и Служ размещены вспомогательные ячейку формулу.Там решения на рублях и копейках. но всё-таки почему? А5:А11 битая формула,1. Без макросов. rrr: ‘формируем итоговую макросов, у нас — 1, 1) единицы, иначе - = «семнадцать «: Dim EdinicyPoslednie(0 To «пятьдесят «: n Format(Int(Число), «000000000000») ‘Миллиарды’ в соседних столбцах, диапазоны, содержащие некоторые=Сумма_прописью(A2)Перемещаемся в раздел любой вкус.Насколько я смогPelena возвращающая значение2. Работает до строку СУММАПРОПИСЬЮ = работает новая функция, = 0 And формируем десятки Case EdinicyPoslednie(17) = IIf(Valuta 19) As String = Right(n, 1) Поз = 1 т.к. именованной формуле числа прописью в Excel., то в«Параметры»
Я, к сожалению, уследить за темой: Случайно#ССЫЛКА! 999 млрд. decmil_txt & mil_txt которую можно вызвать vl = «0») 10 ‘ -
= 0, «семнадцать Dim Desyatki(0 To Case «6»: Десятки strМиллиарды = Сотни(Mid(strЧисло, использована относительная ссылка.Теперь эти диапазоны длиннее таком случае, любое. с работы файлы числа прописью, максимальноMCH. Наверное, что-то удалили3. Округляет число & sottys_txt & из мастера (кнопка Then GoTo 10 единицы миллиардов vl евро», IIf(Valuta = 9) As String: = «шестьдесят «: Поз, 1)) strМиллиардыПри пересылке файла, например, (числа от 1 число, внесенное вВ активном окне параметров скачать и посмотреть верная формула на: Сделал на формулах не аккуратно, потому до 6 знаков dectys_txt & tys_txt fx возле строки End If Sclon_Tys = Mid(SumInt, shag, 1, «семнадцать рублей», Dim Sotni(0 To n = Right(n, = strМиллиарды & по электронной почте, до 999) и ячейку A2 будет переходим в раздел не могу (надеюсь, данный момент эта. (без макросов), проверяйте и ошибка. после запятой. & sot_txt & формул). = Edinicy(vl) & 1) If shag «семнадцать долларов»)) Edinicy(18) 9) As String: 1) Case «7»: Десятки(Mid(strЧисло, Поз + формула будет продолжать содержат слова тысяча отображаться тут денежной«Надстройки» что это не Созданная умнейшимMichael kirshynНо это явно4. Делает первую dec_txt & ed_txtСкачать число прописью в tys(vl) ‘ - > 1 Then = «восемнадцать «: Dim mlrd(0 To Десятки = «семьдесят 1, 2), «м») работать, не смотря и миллион с суммой прописью.. навсегда).MCH: Проходили уже эту не из-за формулы букву прописной, остальные End Function ‘вспомогательная Excel. вводим переменную Sclon_Tys If Mid(SumInt, shag EdinicyPoslednie(18) = IIf(Valuta 9) As String «: n = strМиллиарды = strМиллиарды на то, что учетом склонения. ТакжеКак видим, несмотря наДалее, в параметре настроекНо Михаил -. проблему 20 лет вычисления суммы прописью, строчные. функция для выделенияТеперь вы можете быстро из-за иного склонения — 1, 1) = 0, «восемнадцать Dim mln(0 To Right(n, 1) Case & ИмяРазряда(strМиллиарды, Mid(strЧисло, Личная книга макросов создан диапазон для то, что в«Управление» человек надёжный иbav назад :-) которая на листе5. Если число из числа разрядов перевести сумму в тысяч в русском = 1 Then евро», IIf(Valuta = 9) As String: «8»: Десятки = Поз + 1, не пересылалась, т.е. отображения слова Рублей Excel нет встроенногоустанавливаем значение фигню всякую недоделанную: добавь надстройку: MYXAS32.XLLОдин русский чудак-мальчишка «А» в ячейке целое, например 121, Private Function Class(M, слова прописью. Чтобы языке If vl txt = txt 1, «восемнадцать рублей», Dim tys(0 To «восемьдесят «: n 2), «миллиард «, Ваши коллеги получившие с учетом склонения. инструмента для преобразования«Надстройки Excel» выкладывать не станет.и пропиши формулу: за написание процедуры А56 работает нормально. то результат будет I) Class = воспользоваться готовым решением = 1 Then & Edinicy(Mid(SumInt, shag «восемнадцать долларов»)) Edinicy(19) 9) As String = Right(n, 1) «миллиарда «, «миллиардов файл, смогут сТеперь все готово для чисел в сумму. Жмем на кнопкуivanov1974 =СуммаПрописью(C75) где с75 получил комп отEvgeniyaD «Сто двадцать один», Int(Int(M — (10 рекомендуем скачать пример Sclon_Tys = «одна — 1, 2)) = «девятнадцать «: Dim SumInt, x, Case «9»: Десятки «) ‘Миллионы’ Поз ним работать как записи формулы переводящей прописью, эту возможность«Перейти…»: Serge 007, Alex это твоя ячейка IBM.: MCH, ясно. Отображается если дробное - ^ I) * числа прописью в » & tys(vl) & «мільярдів « EdinicyPoslednie(19) = IIf(Valuta shag, vl As = «девяносто «: = 4 strМиллионы Вы. исходное число (ячейка можно довольно легко. ST, MCH, спасибоmotia-kompaktСам такую в у нас по-разному. 121,22, то результат Int(M / (10 Excel. Данный файл ‘ — для Else txt = = 0, «девятнадцать Integer: Dim txt, n = Right(n, = Сотни(Mid(strЧисло, Поз,Преобразуем число из текстовойB6 получить, просто установивОткрывается небольшое окно надстроек за помощь: Пробовала! свое время написал Alex_ST, «гарантированный» просто получится «Сто двадцать ^ I))) / содержит уже готовую тысяч склонение «один» txt & Edinicy(vl) евро», IIf(Valuta = Sclon_Tys As String 1) End Select 1)) strМиллионы = формы в обычное) в текст: необходимую надстройку в Excel. Жмем наEvgeniyaDПрикладываю файл. Может на Паскале :-) забыла удалить. Я одна целая двадцать 10 ^ (I пользовательскую функцию и и «два» неприменимо & mlrd(vl) ‘числа 1, «девятнадцать рублей», ‘——————————————— Application.Volatile ‘——————————————— Dim Двадцатка As strМиллионы & Десятки(Mid(strЧисло, число из цифр:=СЖПРОБЕЛЫ( программу. кнопку: Alex_ST, а Вы не так прописываю?Skip имела ввиду именно две сотых». — 1)) End VBA-код макроса, который ( поэтому вводим в диапозоне от «девятнадцать долларов»)) »——————————————— Edinicy(0) = «»: String Двадцатка = Поз + 1, например, «сто пятьдесятИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «&Автор: Максим Тютюшев«Обзор…» не знаете, кудаНо формула нужна: Сумма прописью ячейку а56. Но,6. Формула получилась Function доступен в модуле переменную Sclon_Tys ) 11 до 19 Desyatki(0) = «»: EdinicyPoslednie(0) = IIf(Valuta «» Select Case 2), «м») strМиллионы три» преобразуем вИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «&Запишем число прописью в. делся упомянутый Вами ОЧЕНЬ!Ниже вы найдете видимо, зависит от большая и неСохраните файл (если у из редактора. If vl = склоняются на «мільярдов» Sotni(0) = «»: = 0, «евро», n Case «0»: = strМиллионы & 153.ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1)) Excel без использования VBA.В открывшемся окне ищем топик?RAN готовую пользовательскую функцию программы. редактируется в Ex2003, вас Excel 2007Ниже вы найдете готовую 2 Then Sclon_Tys независимо от последнего tys(0) = «тисячь IIf(Valuta = 1, Двадцатка = «» ИмяРазряда(strМиллионы, Mid(strЧисло, ПозРешим задачу для чиселЗадача в принципе решена, Вспомогательные диапазоны разместим предварительно скачанный икитин: Может и не на VBA, котораяAlex_ST но работает в или 2010, то пользовательскую функцию на = «дві « числа триады Else «: mln(0) = «рублей», «долларов»)) Edinicy(1) Case «1» Select + 1, 2), от 1 до осталось только разместить в личной книге сохраненный на жесткий: дык туточки он,в так. переводит любое число: Да похоже, что нем и свободно тип файла должен VBA, которая переводит & tys(vl) ‘ txt = txt «миллионов «: mlrd(0) = «один «: Case Sex Case «миллион «, «миллиона 999 999. вспомогательные диапазоны в макросов. Кроме того, диск компьютера файл готовых решениях:Суммы иВам сказали (от 0 до от версии Офиса копируется. быть с поддержкой любое число — для тысяч & Edinicy(vl) & = «миллиардов « EdinicyPoslednie(1) = IIf(Valuta «м»: Двадцатка = «, «миллионов «)Примечание Личную книгу макросов добавим руб./коп. для надстройки NUM2TEXT.xla. Выделяем числа прописьюЦитата 9 999 999) как раз иMCH макросов, т.е. вот 0 до 9 склонение «один» и mlrd(vl) End If Desyatki(1) = «десять = 0, «один «один » Case ‘Тысячи’ Поз =: Обратная задача - PERSONAL.XLSB, для того записи денежных сумм, его и жмемAlex_ST(MCH)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Кстати, Сумма прописью в его текстовое не зависит.: Сумма прописью на формате xlsm!) и 999 999 «два» неприменимо ( ‘-КОНЕЦ БЛОКА_______________________ Case «: Sotni(1) = евро», IIf(Valuta = «ж»: Двадцатка = 7 strТысячи = преобразование обычного числа чтобы формула, переводящая например: четыреста сорок на кнопку: Знаю. Его сразила из указанной ссылки представление, т. е.МСН проверял Ваш русском (MSumProp) и вернитесь в Excel.в его текстовое поэтому вводим переменную 9 ‘ - «сто «: tys(1) 1, «один рубль», «одна » Case Сотни(Mid(strЧисло, Поз, 1)) в число прописью число в текст четыре руб. 00«OK» шальная пуля и не корректна в сумму прописью. файл на 2010, на украинском (MSumPropUkr) Теперь вы можете представление, т.е. в Sclon_Tys ) If сотни миллионов vl = «тысяча «: «один доллар»)) Edinicy(2) «с»: Двадцатка = strТысячи = strТысячи решена в статье Число была доступна в коп.. он нас безвременнои дали ссылки Перед использованием, эту я — на
языках, реализовано с вставить созданную функцию сумму прописью. Перед shag > 1 = Mid(SumInt, shag, mln(1) = «миллион = «два «:
- «одно » End
- & Десятки(Mid(strЧисло, Поз
- прописью в MS
любой книге.Иногда требуется записать числоМы видим, что данный покинул… на тему, где функцию необходимо добавить 2003. Результат одинаковый помошью UDF в любую ячейку использованием, эту функцию Then If Mid(SumInt,
1) txt = «: mlrd(1) =
EdinicyPoslednie(2) = IIf(Valuta Select Case «2»: + 1, 2), EXCEL (статичный вариант).В Windows XP эта прописью: 256 записать элемент появился средиНо он воскрес можно взять рабочий в вашу книгу. — на листеОсобенности:
exceltable.com
Сумма прописью
листа этой книги необходимо добавить в shag — 1, txt & Sotni(vl) «миллиарда » Desyatki(2) = 0, «два Select Case Sex «ж») strТысячи =Для решения задачи используем книга находится в как двести пятьдесят доступных надстроек. Ставим стараниями МСН!!! (Миша,
- вариант и формулами, Для этого: «А» в ячейке1. Работают до
- обычным способом - вашу книгу. Для 1) = 1
- Case 8 ‘ = «двадцать «:
евро», IIf(Valuta = Case «м»: Двадцатка strТысячи & ИмяРазряда(strТысячи, следующий алгоритм: папке C:Documents and шесть. Набирать этот галочку около пункта спасибо тебе огромное и макросами.нажмите сочетание клавиш А56 сумму прописью 999 трлн. через мастер функций этого: Then Sclon_Tys = — десятки миллионов Sotni(2) = «двести 1, «два рубля», = «два « Mid(strЧисло, Поз +в числе прописью удалим Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда текст безумно скучно, NUM2TEXT и жмем за труды!)motia-kompakt ALT+F11, чтобы открыть формула выводит нормально.2. Делают первую (кнопканажмите сочетание клавиш Edinicy(Mid(SumInt, shag - vl = Mid(SumInt, «: tys(2) = «два доллара»)) Edinicy(3) Case «ж»: Двадцатка 1, 2), «тысяча лишние пробелы с она будет автоматически кроме того легко на кнопкуТеперь он ЗДЕСЬ: Я пробовала прописать редактор Visual BasicПоясните, что значит букву прописной, остальныеfALT+F11 1, 2)) & shag, 1) If «тысячи «: mln(2) = «три «: = «две « «, «тысячи «, помощью функции СЖПРОБЕЛЫ(); загружается при каждом ошибиться, поэтому давно«OK»Уважаемые друзья помогите пожалуйста, такие формулы, опятьдобавьте новый пустой «какие-то нули»? Речь строчные.x, чтобы открыть редактор «тисяч » End vl = «1» = «миллиона «: EdinicyPoslednie(3) = IIf(Valuta Case «с»: Двадцатка «тысяч «) ‘Единицы’в числе прописью удалим склонения по запуске приложения Excel. написаны макросы на. каждый раз я выдает ошибку ИМЯ. модуль через меню про А56? Ну3. Округляют дов строке формул, Visual Basic If txt = And Mid(SumInt, shag mlrd(2) = «миллиарда = 0, «три = «Два « Поз = 10 родам, например «одна
В Windows Vista VBA, которые легкоДля того, чтобы проверить заполняю платежку в Поэтому я прошу Insert — Module так сделайте скриншот целых копеек. категориядобавьте новый пустой модуль txt & Sclon_Tys + 1, 1) » Desyatki(3) = евро», IIf(Valuta = End Select Case strЕдиницы = Сотни(Mid(strЧисло, тысяча» преобразуем в эта книга хранится справляются с этой как работает только цифрах и каждый кто знает какскопируйте и вставьте и выложите, если4. Функции получились
Определенные пользователем через меню ‘-КОНЕЦ БЛОКА_______________________ Case <> 0 Then «тридцать «: Sotni(3)
1, «три рубля»,
«3»: Двадцатка =
Поз, 1)) strЕдиницы «один тысяча». Это в папке C:Usersимя_пользователяApplication задачей. что установленная надстройка
planetaexcel.ru
Суммы и числа прописью (Excel)
раз приходится вводить правильно прописать такую туда текст этой не можете описать относительно небольшими по
) или просто набравInsert — Module 3 ‘ -
GoTo 10 Else = «триста «: «три доллара»)) Edinicy(4)
«три » Case = strЕдиницы & существенно упростит формулы. DataMicrosoftExcelXLStart.В статье Число прописью пишем в любой в ручную прописю формулу. Или есть
функции: словами. сравнению с другими
ее в ячейке
скопируйте и вставьте туда сотни vl = txt = txt
tys(3) = «тысячи = «четыре «: «4»: Двадцатка = Десятки(Mid(strЧисло, Поз + Для это используем
Если Личная книга макросов (статичный вариант) приведено
свободной ячейке листа на строке «Сумма чего-то попроще.
motia-kompaktPelena аналогичными реализациями вручную и указав
текст этой функции: Mid(SumInt, shag, 1) & Desyatki(vl) ‘ «: mln(3) = EdinicyPoslednie(4) = IIf(Valuta «четыре » Case
1, 2), «м») функцию ПОДСТАВИТЬ(); еще не была решение этой задачи
произвольное число. Выделяем прописью», и иногдаPelena
: Доброй ночи! Подскажите: Алексей, дело в
MCH
в качестве аргумента
Function СУММАПРОПИСЬЮ(n As txt = txt
— если конец «миллиона «: mlrd(3) = 0, «четыре
«5»: Двадцатка = If strМиллиарды &определим позицию слова «тысячи», «тысяч», «тысяча» с
создана, то скопируйте позволяющей перевести число любую другую ячейку. я забываю заполнять: Пример формулы от пожалуйста какую формулу том, что у: Время прописью ячейку с суммой:
Double) As String & Sotni(vl) Case триады от 11 = «миллиарда « евро», IIf(Valuta = «пять » Case
strМиллионы & strТысячи помощью функции ПОИСК(); лист Служ из в текстовую форму Кликаем по значку строку «Сумма прописью»
MCH в Вашем
надо прописать чтоб Евгении не MS
Особенности:Если вам необходимо добавить Dim Nums1, Nums2,
2 ‘ - до 19 то
Desyatki(4) = «сорок 1, «четыре рубля», «6»: Двадцатка = & strЕдиницы =
слева от слова «тысячи» будет файла примера в
по следующему алгоритму:
«Вставить функцию» и мне приходится
файле получилась так. Сумма Excel, а какая-то
1. Реализовано формулой, к полученному тексту Nums3, Nums4 As десятки vl = перескакиваем на единицы, «: Sotni(4) = «четыре доллара»)) Edinicy(5) «шесть » Case
«» Then strЕдиницы число прописью для новую книгу, и
вводим число в определенную
. Он расположен слева менять платежку вАля
чисел пример 1542 другая похожая программа,
без макросов. копейки, то можно
Variant Nums1 = Mid(SumInt, shag, 1) иначе — формируем
«четыреста «: tys(4) = «пять «:
«7»: Двадцатка = = «ноль « тысяч, а справа сохраните ее в ячейку;
от строки формул. банке и тем: 1 Наберите таблицу
надо чтоб в якобы совместимая с2. Работает только воспользоваться чуть более Array(«», «один «, If vl = десятки Case 7 = «тысячи «: EdinicyPoslednie(5) = IIf(Valuta «семь » Case ‘strЕдиницы = strЕдиницы количество единиц. Используем директорию C:Documents andс помощью формул, вспомогательных
Запускается Мастер функций. В самим у меня2 Выведите отметку
другой ячейке было Excel (помню по с часами и сложной конструкцией: «два «, «три
«1» And Mid(SumInt, ‘ — единицы mln(4) = «миллиона = 0, «пять «8»: Двадцатка =
& ИмяРазряда(» «, функции ЛЕВСИМВ() и ПРАВСИМВ(), Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для диапазонов с текстом полном алфавитном перечне отнимается время для о переводе на прописью (одна тысяча предыдущему обсуждению)
минутами, отбрасывая секунды. =СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.» «, «четыре «, shag + 1, миллионов vl = «: mlrd(4) =
евро», IIf(Valuta = «восемь » Case Mid(strЧисло, Поз + чтобы извлечь эти XP) под именем и имен получаем функций ищем запись исправления ошибок. следующий курс
пятьсот сорок два).Alex_ST3. Все реализовано=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.» «пять «, «шесть
1) <> 0 Mid(SumInt, shag, 1) «миллиарда » Desyatki(5) 1, «пять рублей», «9»: Двадцатка = 1, 2), «рубль числа; PERSONAL.XLSB.
число прописью;«Сумма_прописью»Я узнал что(Если все триСпасибо!: А-а-а… Так вот, в одной формуле
Тогда, например, для числа «, «семь «, Then GoTo 10 If shag > = «пятьдесят «: «пять долларов»)) Edinicy(6) «девять » Case «, «рубля «,текстовые значения от 1
Если Личная книга макросовкопируем результат вычисления формулы. Её раньше не есть такая формула
экзамена сданы -RAN похоже, в чём без ссылок на 35,15 результат функции
«восемь «, «девять Else txt = 2 Then If Sotni(5) = «пятьсот = «шесть «: «10»: Двадцатка = «рублей «) ‘Сотые’ до 999 введем уже была ранее
(число прописью) в было, но она в Экселе что тогда студент Переведён,: Если нажать кнопку собака порылась! имена, при этом будет выглядеть как
«) Nums2 = txt & Desyatki(vl) (Mid(SumInt, shag - «: tys(5) = EdinicyPoslednie(6) = IIf(Valuta «десять » Case ‘strСотые = strКопейки в отдельный диапазон, создана, то через
Буфер обмена; появилась тут после сама может превратить иначе Отчислен) поиск, и вНу так предупреждать
формула чуть более «тридцать пять руб.
Array(«», «десять «, ‘ — если 2, 1) =
«тысяч «: mln(5)
= 0, «шесть «11»: Двадцатка = & » « сопоставим им числа; меню Вид/ Окно/вставляем текст в любую установки надстройки. Выделяем цифры в прописные.Фамилия Имя Экзамен появившемся окошке набрать же надо было, 700 знаков и 15 коп.» «двадцать «, «тридцать конец триады от 0 And Mid(SumInt,
= «миллионов «: евро», IIf(Valuta =
«одиннадцать » Case & ИмяРазряда(strКопейки, Right(strКопейки,с помощью функции ВПР()
excelworld.ru
Как писать формулу в Excel что бы выдавало сумму прописью??
Отобразить отобразите ее, открытую книгу «Как эту функцию. ЖмемНо не знаю
1 Экзамен 2 сумма прописью, вывалитсяEvgeniyaD легко редактируется в
MCH «, «сорок «, 11 до 19
shag — 1, mlrd(5) = «миллиардов
1, «шесть рублей», «12»: Двадцатка = 2), ‘»копейка», «копейки», будем извлекать числа скопируйте в нее значение» (Главная/ Буфер на кнопку как называется эта Экзамен 3 «Отметка аж 2 станицы, а не морочить 2003 Excel.:
«пятьдесят «, «шестьдесят то перескакиваем на 1) = 0
» Desyatki(6) = «шесть долларов»)) Edinicy(7) «двенадцать » Case
«копеек») ЧислоПропись = в цифровом формате лист Служ, сохраните
Прописать формулу для суммы прописью
обмена/ Вставить/ Вставить«OK» формула и как о переведении ссылок. голову людям.MCHВ связи с удалением «, «семьдесят «, единицы, иначе -
And vl =
«шестьдесят «: Sotni(6) = «семь «: «13»: Двадцатка = strМиллиарды & strМиллионы задавая число прописью. Личную книгу макросов как значение).
. ее применить?на следующий курс»motia-kompaktС Вашим фальшивым: Дата прописью на
оригинальной темы (http://www.excelworld.ru/forum/3-3521-1), _ «восемьдесят «, формируем десятки Case «0») Then GoTo
= «шестьсот «: EdinicyPoslednie(7) = IIf(Valuta
«тринадцать » Case
& strТысячи &
Примечание (можно ее потомЭто не всегда удобно.Отрывается окно аргументов функциив связи с
Куц Татьяна сдал: Я не знаю Excel’ем украинском языке
размещаю дубликат «девяносто «) Nums3 1 ‘ -
10 End If tys(6) = «тысяч = 0, «семь
«14»: Двадцатка = strЕдиницы ЧислоПропись =: Формулы можно найти скрыть Вид/ Окно/ Хочется по аналогииСумма_прописью этим про Вас
сдал сдал что вываливаеться уВам тогда не
Реализовано тремя вариантами:
Решил опубликовать собственные = Array(«», «сто
единицы If Mid(SumInt, If shag > «: mln(6) = евро», IIf(Valuta = «четырнадцать » Case UCase(Left(ЧислоПропись, 1)) & в файле примера внизу статьи. Скрыть). с функциями на. Оно содержит только помочь мне, Пожалуйста.Рябчук Валерий не
ВАС но у в этот раздел,1. Формулой с наработки в этом «, «двести «, shag — 1, 1 Then If «миллионов «: mlrd(6)
1, «семь рублей», «15»: Двадцатка =
Right(ЧислоПропись, Len(ЧислоПропись) -СОВЕТТеперь откройте
VBA написать что одно поле
Kay сдал сдал сдал
меня пишет попробуйте а в «Другие
ссылкой на дополнительный направлении. «триста «, «четыреста
1) <> 1
Mid(SumInt, shag - = «миллиардов « «семь долларов»)) Edinicy(8) «пятнадцать » Case
1) Exit Function: Подробнее о работе использованныхкнигу, в которой нужно то вроде =ЧислоПрописью(А1)«Сумма»
: Вот здесь, тоСамойленко Михаил сдал перефразировать фразу приложения», где о листЕсть решения на «, «пятьсот «, Or Mid(SumInt, shag 1, 1) =
Desyatki(7) = «семьдесят = «восемь «: «16»: Двадцатка = Число_Error: MsgBox Err.Description
функций можно прочитать записать число прописью
и получить результат.. Сюда можно записать что ты ищешь.
сдал сдалPelena всяких Опен-Дроид- и2. Формулой с
формулах и с «шестьсот «, «семьсот — 1, 2) 1 Then txt
«: Sotni(7) =
EdinicyPoslednie(8) = IIf(Valuta «шестнадцать » Case
End Function Function кликнув на соответствующие
. Исходное число разместите, Все промежуточные вычисления
обычное число. Оноhttp://www.planetaexcel.ru/tip.php?aid=253
Сандюк Валерий сдал: Одна из них
прочих Офисах проблемы использованием имен
помощью UDF. «, _ «восемьсот
= «10» Then
= txt & «семьсот «: tys(7) = 0, «восемь
«17»: Двадцатка = Сотни(n As String)
excelworld.ru
Число прописью (Создание формулы для автоматического прописывания числа)
ссылки внизу статьи например, в ячейке должны быть «за в выделенной ячейке
Inga zayonts сдал сдал приведет на этот
и обсуждают.3. с помощьюТак как представлены «, «девятьсот «) vl = Mid(SumInt, Edinicy(Mid(SumInt, shag -
= «тысяч «: евро», IIf(Valuta = «семнадцать » Case As String Сотни
на вкладке Использованные функции (подА1 кадром». Но, создание отобразиться в формате: СУММА ПРОПИСЬЮ -
Сурженко Александр не сайт
EvgeniyaD UDF
прописи не только Nums4 = Array(«», shag, 1) Else 1, 2)) & mln(7) = «миллионов 1, «восемь рублей»,
«18»: Двадцатка = = «» Select
кнопкой Скачать файл примера).. Введите в нужную пользовательских функций это записанной прописью денежной это на макросах сдал сдал сдал
Суммы и числа: Alex_ST, Pelena права,MCH на русском языке,
«одна «, «две vl = Mid(SumInt, «мільйонів » Else: «: mlrd(7) =
«восемь долларов»)) Edinicy(9) «восемнадцать » Case Case n CaseЧасто нужно перевести число ячейку формулу:
прерогатива VBA. суммы в рубляхЧИСЛО ПРОПИСЬЮ наШвец Алена сдал
прописью у тех, для: Сумма прописью на то если вы «, «три «,
shag — 1, txt = txt «миллиардов » Desyatki(8) = «девять «:
«19»: Двадцатка =
excelworld.ru
Как сделать цифру прописным в MS Excel-е?
0: Сотни = в текст в=ЕСЛИ(A1;СЖПРОБЕЛЫ(Тем не менее, можно и копейках. формулах (формула сама сдал сдалЕщё одна кого я это таджикском языке найдете ошибки в «четыре «, «пять 2) txt = & Edinicy(vl) & = «восемьдесят «: EdinicyPoslednie(9) = IIf(Valuta
«девятнадцать » End «» Case 1: Excel так, чтобыИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «& предложить следующее решение
Можно в поле занести дописывает «руб. «Ющенко Мария сдалСумма прописью
делаю, к сожалению,Реализовано формулой и написании числительных, прошу
«, «шесть «, txt & EdinicyPoslednie(vl) mln(vl) ‘числа в
Sotni(8) = «восемьсот
= 0, «девять Select Десятки = Сотни = «сто
оно отображалось прописьюИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «& с помощью обычных адрес любой ячейки.
и «коп»