- Число прописью в Excel – формула
- Сумма прописью с копейками в Excel
- В русских рублях, все буквы строчные
- В русских рублях, первая буква заглавная
- В русских рублях с копейками прописью
- В белорусских рублях
- Сумма прописью — формула для Openoffice Calc
- Сумма прописью в Google Spreadsheets
- UDF-функции надстройки !SEMTools
- Процедуры !SEMTools
- Перевод чисел прописью в другие падежи
Число или сумма прописью — в ручном исполнении — непростая задача. А если его нужно печатать десятки раз на дню и с множеством документов, точно нужна автоматизация.
Идеальным решением была бы формула в Excel.
Есть ли такая формула? Да! А главное, что вам делать ничего не придется (только скопировать), потому что я уже сделал её за вас! Но обо всем по порядку.
Если попытаться описать алгоритм, который будет учитывать все нюансы написания числа или суммы прописью, окажется, что все на так просто, как кажется:
- в зависимости от того, на какую цифру заканчивается число, его падеж и число могут быть:
- единственное, именительный (двадцать один рубль)
- единственное, родительный (двадцать два/три/четыре рубля)
- множественное, родительный (двадцать, двадцать пять/шесть/семь/восемь/девять рублей)
- При этом даже из этого правила уже есть исключения – числа от 11 до 14 – множественного числа, хотя числа от 1 до 4 – единственного.
- Ноль пишется цифрами, но не пишется прописью. Кроме случая с копейками – там он пишется в прописи, но цифрами.
- При этом от нуля может зависеть то, как будет выглядеть число или сумма прописью.
- Копейки женского рода, а рубли – мужского. Одна копейка, но один рубль.
И это далеко не все нюансы. Есть ли варианты, которые их все учитывают?
Большинство руководств в интернете предлагают надстройки. Также предлагаются формулы на основе именованных диапазонов.
Но зачастую необходимо обмениваться файлами между разными компьютерами, и в таких случаях формулы попросту “полетят”, и данные будут повреждены, т.к. вместе с файлом нужно будет портировать и код надстроек, что никто делать обычно не будет.
В случае с именованными диапазонами – нужно будет создавать их заново (а их около десятка!).
Возможна ли формула без применения VBA, макросов и надстроек?
Черт возьми, да! Я долго размышлял, прежде чем ее сделать, но мне это удалось.
Вот эта формула! Вставьте ее в любую ячейку, кроме A1, т.к. она преобразует значение этой самой ячейки:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>6;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>3;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);РИМСКОЕ(ЦЕЛОЕ(A1))));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")
Формула работает с любыми целыми числами от 1 до миллиарда, не включая его. Если дано число с десятичными знаками после запятой, формула берет только целую часть, иными словами, округляет всегда вниз.
Если вы хотите округлять такие числа обычным округлением по математическим правилам, замените процедурой найти и заменить во всей формуле:
на
Сумма прописью с копейками в Excel
Для записи суммы прописью с копейками по всем канонам, нужно соблюсти ряд условий:
- Рубли пишутся словами, первая буква обычно заглавная;
- Словоформа слова “рубль” должна соответствовать количеству;
- Копейки пишутся цифрами, но падеж и число слова “копейка” тоже должны соответствовать числу.
Трудно в это поверить, но и такая формула тоже существует. Аналогично, без применения VBA, макросов и надстроек.
Формула огромна, но замечательно справляется с любыми суммами до миллиарда. Работать будет в любой версии Excel от 2007 и старше – в 2003 не была доступна такая глубина вложений функций.
Вот и она, просто скопируйте ее, и она преобразует числовое значение ячейки A1 в сумму прописью с копейками.
В русских рублях, все буквы строчные
Формула выводит сумму в рублях, копейки оставляет цифрами. Если регистр первой буквы не важен, можно использовать её.
Тройной клик по формуле выделит её целиком
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")
В русских рублях, первая буква заглавная
В Excel нет простой функции, которая бы позволила сделать только первую букву ячейки заглавной, поэтому в первой конфигурации формула была в 2 раза длиннее из-за использования ЛЕВСИМВ и ДЛСТР.
Но в комментариях было предложено отличное решение – функцией ПОДСТАВИТЬ заменить пробелы на букву, которой в числах нет (например, Ф или Z), что сделает все как бы одним словом, на результате использовать функцию ПРОПНАЧ, и после заменить букву обратно на пробелы. Сейчас используется этот вариант формулы, он короче.
Тройной клик по формуле выделит её целиком.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек");" ";"Z"));"z";" ");"Z";" ")
В русских рублях с копейками прописью
Если нужно, чтобы копейки тоже были написаны прописью, то формула будет чуть длиннее, такой:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ИНДЕКС({"десять";"одиннадцать";"двенадцать";"тринадцать";"четырнадцать";"пятнадцать";"шестнадцать";"семнадцать";"восемнадцать";"девятнадцать"};ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)-9);ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"2";"двадцать");"3";"тридцать");"4";"сорок");"5";"пятьдесят");"6";"шестьдесят");"7";"семьдесят");"8";"восемьдесят");"9";"девяносто");"0";"")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"1";"одна");"2";"две");"3";"три");"4";"четыре");"5";"пять");"6";"шесть");"7";"семь");"8";"восемь");"9";"девять");"0";""))&" копеек";"одна копеек";"одна копейка");"две копеек";"две копейки");"три копеек";"три копейки");"четыре копеек";"четыре копейки");" копеек";"");" ";"Z"));"z";" ");"Z";" "))
В белорусских рублях
Тройной клик по формуле выделит ее целиком.
=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");1))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");2;200)&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")
Если вам не нужно делать первую букву заглавной, просто “оберните” всю эту гигантскую формулу функцией СТРОЧН.
Сумма прописью — формула для Openoffice Calc
У формулы выше были проблемы с импортом в Openoffice, т.к. тот в отличие от Excel (2007 и старше), поддерживает максимум 42 уровня вложенности в формулах, а не 64.
Поэтому пришлось полностью переделать логику формулы и сделать ее сложной формулой массивов.
Так она выглядит в Excel:
=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)&" "&ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2) &" копеек";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&ИНДЕКС({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};ПРАВСИМВ(ОКРУГЛ(A1*100;0))+1))
А так – после импорта в Openoffice Calc:
=UPPER(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)
Сумма прописью в Google Spreadsheets
Прелесть формул выше в том, что они с минимальными модификациями портируются в Google Таблицы, где их замечательно можно использовать.
Ниже пример таблицы с суммой прописью:
Посмотреть сам файл и скопировать к себе можно по ссылке:
https://docs.google.com/spreadsheets/d/1dmqEB3TehEGmWfaxRmIQ9LXjGal439_YgKxZhbK0Ods/edit?usp=sharing
UDF-функции надстройки !SEMTools
Для тех, у кого ОС Windows и Excel 2010 и выше, и кто не готов пользоваться указанными формулами, есть простое решение – установить надстройку, в которой присутствует код, скрывающий все эти вычисления “под капот”. Одна из таких – разработанная мной надстройка !SEMTools.
В ней для решения задачи преобразования числа и суммы в их прописной вариант есть 2 лаконичные функции:
Они доступны абсолютно бесплатно безо всяких ограничений в любой версии надстройки, приобретать полную версию не обязательно.
Единственное ограничение – эти формулы будут работать только на тех компьютерах, где установлена надстройка.
Процедуры !SEMTools
Еще более простое, но не всегда удобное решение – процедуры (макросы). В надстройке для Excel !SEMTools доступны макросы преобразования чисел в сумму и число прописью в 1 клик.
Вызов процедур находится в меню “Изменить символы” в группе “ИЗМЕНИТЬ” на панели надстройки. Макрос преобразует числа на месте, превращая их в текст. Можно выделить как одну, так и несколько ячеек:
Функционал доступен в полной версии надстройки.
Перевод чисел прописью в другие падежи
Зачастую после получения числа или суммы прописью нужно указать его в другом падеже.
Например, “сумма в размере пятисот тысяч трехсот трех рублей”. !SEMTools справляется и с этой задачей – смотрите раздел склонение по падежам в Excel.
Надстройка !SEMTools для Excel поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!
При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.
Использование надстройки
В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.
Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.
- Открываем программу Excel и переходим во вкладку «Файл».
- Перемещаемся в раздел «Параметры».
- В активном окне параметров переходим в раздел «Надстройки».
- Далее, в параметре настроек «Управление» устанавливаем значение «Надстройки Excel». Жмем на кнопку «Перейти…».
- Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».
- В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».
- Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».
- Для того, чтобы проверить как работает только что установленная надстройка пишем в любой свободной ячейке листа произвольное число. Выделяем любую другую ячейку. Кликаем по значку «Вставить функцию». Он расположен слева от строки формул.
- Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».
- Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.
- После этого, любое число, которое записано в ячейку, указанную вами, будет отображаться в денежном виде прописью в том месте, где установлена формула функции.
Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».
Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5)
, то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».
Если вы введете в ячейку формулу =Сумма_прописью(A2)
, то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.
Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.
Еще статьи по данной теме:
Помогла ли Вам статья?
Во многих документах мы можем видеть строку, в которой требуется указать сумму не в числовом виде, а прописью. Это защищает отчетность от подделки, ведь цифру легко переправить. А вот длинную запись незаметно исправить не так-то просто. Сумма прописью в Excel доступна только в виде надстроек или с использованием формул. Встроенного инструмента не имеется.
Как в Excel сделать сумму прописью
Скачать файл надстройки
Чтобы получить эту возможность, вы можете скачать надстройку «Сумма прописью» в Excel бесплатно на нашем сайте.
Разместите его в любом удобном каталоге и подключите. Для этого следует пройти следующие этапы:
Эта функция «сумма_прописью» работает в Excel 2007, 2010, 2016
Данная надстройка работает только для рублей. Если вам нужна другая валюта, скачайте еще файл sumprop.xla. Действуя по аналогии подключите надстройку для получения суммы прописью в Excel.
Для проверки введем в ячейке A3 произвольное число. Пусть это будет десятичная дробь. Также вызовем окно вставки функций и найдем новые функции для вывода суммы прописью.
Как видите, нам стали доступны:
- Сумма Прописью
- Сумма Прописью Доллары
- Сумма Прописью Евро
- Сумма Прописью Евро
Переведем число в евро. Выбираем соответствующую функцию и кликаем по ячейке с числом.
После нажатия ОК получаем результат.
С помощью этих инструментов преобразование числа в текст прописью в Excel выполняется очень просто. Если по каким-то причинам вы не хотите устанавливать их в Excel, можно воспользоваться другим способом.
Формула суммы прописью в Excel — как написать число
Для вывода числа прописью в Excel можно создать формулу. Приведем пример:
ПОДСТАВИТЬ(ПРОПНАЧ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);1;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A3;n0);2;1)+1;ПСТР(ТЕКСТ(A3;n0);3;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);1;3);»миллиард»&ВПР(ПСТР(ТЕКСТ(A3;n0);3;1)*И(ПСТР(ТЕКСТ(A3;n0);2;1)-1);мил;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);4;1)+1)&ИНДЕКС(n0x;ПСТР(ТЕКСТ(A3;n0);5;1)+1;ПСТР(ТЕКСТ(A3;n0);6;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);4;3);»миллион»&ВПР(ПСТР(ТЕКСТ(A3;n0);6;1)*И(ПСТР(ТЕКСТ(A3;n0);5;1)-1);мил;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);7;1)+1)&ИНДЕКС(n1x;ПСТР(ТЕКСТ(A3;n0);8;1)+1;ПСТР(ТЕКСТ(A3;n0);9;1)+1)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);7;3);ВПР(ПСТР(ТЕКСТ(A3;n0);9;1)*И(ПСТР(ТЕКСТ(A3;n0);8;1)-1);тыс;2);»»)&ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);10;1)+1)&ИНДЕКС(ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);14;6);n1x;n0x);ПСТР(ТЕКСТ(A3;n0);11;1)+1;ПСТР(ТЕКСТ(A3;n0);12;1)+1));»z»;» «)&ЕСЛИ(ОТБР(ТЕКСТ(A3;n0));;»Ноль «)&ЕСЛИ(-ПСТР(ТЕКСТ(A3;n0);14;6);ЕСЛИ(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);11;2)-11;100);9);10);»целых «;»целая «)&ПОДСТАВИТЬ(ИНДЕКС(n_4;ПСТР(ТЕКСТ(A3;n0);14;6)/10^5+1)&ИНДЕКС(n1x;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/10^4;10)+1;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000;10)+1)&ЕСЛИ(ЦЕЛОЕ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000);ВПР(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/1000;10)*(ОСТАТ(ЦЕЛОЕ(ПСТР(ТЕКСТ(A3;n0);14;6)/10^4);10)<>1);тыс;2);»»)&ИНДЕКС(n_4;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/100;10)+1)&ИНДЕКС(n1x;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)/10;10)+1;ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6);10)+1);»z»;» «)&ИНДЕКС(доля;ДЛСТР(ПСТР(ТЕКСТ(A3;n0);14;6));(ОСТАТ(МАКС(ОСТАТ(ПСТР(ТЕКСТ(A3;n0);14;6)-11;100);9);10)>0)+1);)
Для ее использования вам необходимо указать несколько массивов Excel:
- n_1 ={«»;»одинz»;»дваz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}
- n_2 ={«десятьz»;»одиннадцатьz»;»двенадцатьz»;»тринадцатьz»;»четырнадцатьz»;»пятнадцатьz»;»шестнадцатьz»;»семнадцатьz»;»восемнадцатьz»;»девятнадцатьz»}
- n_3 ={«»:1:»двадцатьz»:»тридцатьz»:»сорокz»:»пятьдесятz»:»шестьдесятz»:»семьдесятz»:»восемьдесятz»:»девяностоz»}
- n_4 ={«»;»стоz»;»двестиz»;»тристаz»;»четырестаz»;»пятьсотz»;»шестьсотz»;»семьсотz»;»восемьсотz»;»девятьсотz»}
- n_5 ={«»;»однаz»;»двеz»;»триz»;»четыреz»;»пятьz»;»шестьz»;»семьz»;»восемьz»;»девятьz»}
- n0 =»000000000000″&ПСТР(1/2;2;1)&»0#####»
- n0x =ЕСЛИ(n_3=1;n_2;n_3&n_1)
- n1x =ЕСЛИ(n_3=1;n_2;n_3&n_5)
- доля ={«десятая»;»десятых»:»сотая»;»сотых»:»тысячная»;»тысячных»:»десятитысячная»;»десятитысячных»:»стотысячная»;»стотысячных»:»миллионная «;»миллионных»}
- мил ={0;»овz»:1;»z»:2;»аz»:5;»овz»}
- тыс ={0;»тысячz»:1;»тысячаz»:2;»тысячиz»:5;»тысячz»}
Просто скопируйте эту таблицу на лист Excel, а формулу вставляйте туда, где необходима сумма прописью. Вышеприведенная конструкция предназначена для ячейки A3. Не забудьте поменять адрес.
В англоязычном Excel формула суммы прописью будет выглядеть следующим образом:
SUBSTITUTE(PROPER(INDEX(n_4,MID(TEXT(A1,n0),1,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),2,1)+1,MID(TEXT(A1,n0),3,1)+1)&IF(-MID(TEXT(A1,n0),1,3),»миллиард»&VLOOKUP(MID(TEXT(A1,n0),3,1)*AND(MID(TEXT(A1,n0),2,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),4,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),5,1)+1,MID(TEXT(A1,n0),6,1)+1)&IF(-MID(TEXT(A1,n0),4,3),»миллион»&VLOOKUP(MID(TEXT(A1,n0),6,1)*AND(MID(TEXT(A1,n0),5,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),7,1)+1)&INDEX(n1x,MID(TEXT(A1,n0),8,1)+1,MID(TEXT(A1,n0),9,1)+1)&IF(-MID(TEXT(A1,n0),7,3),VLOOKUP(MID(TEXT(A1,n0),9,1)*AND(MID(TEXT(A1,n0),8,1)-1),тыс,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),10,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),11,1)+1,MID(TEXT(A1,n0),12,1)+1)),»z»,» «)&IF(TRUNC(TEXT(A1,n0)),»»,»Ноль «)&»рубл»&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1,n0),11,2)-11,100),9),10),{0,»ь «;1,»я «;4,»ей «},2)&RIGHT(TEXT(A1,n0),2)&» копе»&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1,n0),2)-11,100),9),10),{0,»йка»;1,»йки»;4,»ек»},2)
Как видим, это не самый удобный способ преобразовать число в текст прописью в Excel.
Преобразование с помощью макросов Excel
Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль.
В него добавьте следующий код.
Function SUMMPROPIS(n As Double) As String Dim Chis1, Chis2, Chis3, Chis4, Chis5 As Variant Chis1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") Chis2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят", "девяносто ") Chis3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ") Chis4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") Chis5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ") If n <= 0 Then SUMMPROPIS = "ноль" Exit Function End If cifr = Retclass(n, 1) des = Retclass(n, 2) hund = Retclass(n, 3) thous = Retclass(n, 4) desthous = Retclass(n, 5) hundthous = Retclass(n, 6) mil = Retclass(n, 7) desmil = Retclass(n, 8)Select Case desmil Case 1 mil_txt = Chis5(mil) & "миллионов " GoTo www Case 2 To 9 desmil_txt = Chis2(desmil) End Select Select Case mil Case 1 mil_txt = Chis1(mil) & "миллион " Case 2, 3, 4 mil_txt = Chis1(mil) & "миллиона " Case 5 To 20 mil_txt = Chis1(mil) & "миллионов " End Select www: hundthous_txt = Chis3(hundthous) Select Case desthous Case 1 thous_txt = Chis5(thous) & "тысяч " GoTo eee Case 2 To 9 desthous_txt = Chis2(desthous) End Select Select Case thous Case 0 If desthous > 0 Then thous_txt = Chis4(thous) & "тысяч " Case 1 thous_txt = Chis4(thous) & "тысяча " Case 2, 3, 4 thous_txt = Chis4(thous) & "тысячи " Case 5 To 9 thous_txt = Chis4(thous) & "тысяч " End Select If desthous = 0 And thous = 0 And hundthous <> 0 Then hundthous_txt = hundthous_txt & " тысяч " eee: hund_txt = Chis3(hund) Select Case des Case 1 cifr_txt = Chis5(cifr) GoTo rrr Case 2 To 9 des_txt = Chis2(des) End Select cifr_txt = Chis1(cifr) rrr: SUMMPROPIS = desmil_txt & mil_txt & hundthous_txt & desthous_txt & thous_txt & hund_txt & des_txt & cifr_txt End Function Private Function Retclass(M, I) Retclass = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) End Function
Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем».
В качестве аргумента укажите адрес с числом.
Перевод в сумму прописью осуществляется только для целых чисел.
Дробное число требует дополнительной формулы:
=SUMMPROPIS(A7)&" руб. "&ТЕКСТ((A7-ЦЕЛОЕ(A7))*100;"00")&" коп."
Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа.
Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!
Отличного Вам дня!
Сумма прописью
Ниже вы найдете готовую пользовательскую функцию на 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
- Что такое макросы, куда вставлять код макроса, как их использовать
Сумма прописью в Microsoft Excel
Смотрите также ссылкой на дополнительный функция для выделения — 1, 2) txt = txt 1, «восемь рублей», n = Right(n, оно отображалось прописьюМастера текстовВыделяем исходную область и пиктограмма появилась одна внесем она отобразится вВставьте строки кода в = » Trillion ячейку формулу: необходимую надстройку вПри заполнении различных финансовых лист из числа разрядов = «10» Then
& Edinicy(Mid(SumInt, shag «восемь долларов»)) Edinicy(9)
Использование надстройки
1) End Select (словами) на русскоми жмем на производим щелчок по для всей области,«0,0» ячейке ниже. Это
поле » ‘ String=ЕСЛИ(A1;СЖПРОБЕЛЫ( программу. документов часто требуется
- 2. Формулой с Private Function Class(M, vl = Mid(SumInt, — 1, 2))
- = «девять «: Dim Двадцатка As или других языках.
- кнопку ней правой кнопкой а не для, то результат будет
- означает, что преобразованиеModule1 (Code) representation of amount.ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «&Автор: Максим Тютюшев прописать сумму не использованием имен
- I) Class = shag, 1) Else & «мільярдів « EdinicyPoslednie(9) = IIf(Valuta String Двадцатка =
- Так как по«Готово» мыши. В активировавшемся каждой ячейки в отображаться с одним было совершено не(Модуль 1 — MyNumber = Trim(Str(MyNumber))ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «&
- Запишем число прописью в только числом, но3. с помощью Int(Int(M — (10 vl = Mid(SumInt, Else txt = = 0, «девять «» Select Case
- умолчанию нет готовой. контекстном списке переходим отдельности. Щелкаем по десятичным знаком, если полностью. В этом код). ‘ Position ofИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00»)&» Excel без использования VBA. и прописью. Конечно,
- UDF ^ I) * shag — 1, txt & Edinicy(vl) евро», IIf(Valuta = n Case «0»: функции, создадим своюКак видим, после выполнения по пунктам ней.«0,00» и заключается одна
- Нажмите клавиши decimal place 0 коп.»);»ноль руб. 00 Вспомогательные диапазоны разместим это занимает гораздоMCH Int(M / (10 2) txt = & mlrd(vl) ‘числа 1, «девять рублей», Двадцатка = «» пользовательскую функцию с
данных действий числа«Специальная вставка»Открывается уже знакомый нам, то с двумя, из фишек Excel.Alt + Q if none. DecimalPlace коп.») в личной книге больше времени, чем: Сумма прописью на ^ I))) / txt & EdinicyPoslednie(vl) в диапозоне от
- «девять долларов»)) Edinicy(11) Case «1» Select помощью макросов. приняли привычный дляи список. Как и и т.д. Программа не дает
, чтобы вернуться = InStr(MyNumber, «.»)Формула отобразит число прописью. макросов. Кроме того, обычное написание с таджикском языке 10 ^ (I ‘-КОНЕЦ БЛОКА_______________________ End 11 до 19 = «одиннадцать «: Case Sex Case
Для создания пользовательской функции, русскоязычной версии формат,«Значения и форматы чисел» в прошлый раз,После того, как все завершить преобразование данных
в Microsoft Excel. ‘ Convert cents Ячейки, содержащие исходное
добавим руб./коп. для помощью цифр. ЕслиРеализовано формулой и — 1)) End Select 10: Next склоняются на «мільярдов»
EdinicyPoslednie(11) = IIf(Valuta «м»: Двадцатка = которая сможет перевести а это значит,. выбираем позицию требуемые параметры введены, наиболее интуитивно понятным Функция SpellNumber теперь and set MyNumber
число и формулу,
lumpics.ru
Число прописью в Excel (динамический вариант)
записи денежных сумм, подобным образом нужно два варианта UDF Function x a = независимо от последнего = 0, «одиннадцать «один » Case число в текст что они одновременно
Все данные вставлены в«Преобразовать в число» щелкаем по кнопке способом. готов к использованию. to dollar amount. можно перенести в например: четыреста сорок заполнить не одно,MCHСохраните файл (если у
SumBase b = числа триады Else евро», IIf(Valuta = «ж»: Двадцатка = прописью , нам были преобразованы из
- нужном нам виде..
- «OK»Чтобы завершить преобразование, намПримечание: If DecimalPlace >
- любое место в четыре руб. 00 а много документов,
- : Сумма прописью на вас Excel 2007 Int(a) c = txt = txt 1, «одиннадцать рублей»,
«одна » Case нужно выполнить 3 текстовых данных в Теперь можно удалитьВсе данные массива будут. нужно последовательно двойным Эта функция работает только 0 Then Cents книге или даже коп.
то временные потери туркменском, азербайджанском (кириллицей или 2010, то (a — b)
- & Edinicy(vl) & «одиннадцать долларов»)) Edinicy(12) «с»: Двадцатка = простых шага: числовые.
- транзитный диапазон, в преобразованы в указанныйКак видим, значение первого щелчком левой кнопки для текущей книги. = GetTens(Left(Mid(MyNumber, DecimalPlace
- в другую книгу.Иногда требуется записать число становятся огромными. Кроме и латиницей) и тип файла должен * 100 If mlrd(vl) End If = «двенадцать «: «одно » EndОткрыть редактор макросов ALT+F11.Если вам часто приходится котором находится формула
вид. элемента заданного диапазона мыши поместить курсор Для использования этой + 1) &Чтобы еще больше приблизиться прописью: 256 записать того, именно в турецком языках
быть с поддержкой c = 0
‘-КОНЕЦ БЛОКА_______________________ Case EdinicyPoslednie(12) = IIf(Valuta Select Case «2»:Создать новый модуль и преобразовывать большие области двойного бинарного отрицания.
Как и для преобразования отобразилось в ячейке, в каждый элемент функции в другой _ «00», 2)) к идеалу создадим как двести пятьдесят записи суммы прописьюФункция на турецком
макросов, т.е. в Then c = 9 ‘ - = 0, «двенадцать Select Case Sex
в нем нужно
данных из текстового
Для этого выделяем
данных из числового
которую мы выделили диапазона в отдельности книге, необходимо повторить MyNumber = Trim(Left(MyNumber, именованную формулу ЧислоПрописью. шесть. Набирать этот наиболее часто встречаются реализована не полностью формате xlsm!) и
CStr(c) + «0» сотни миллионов vl евро», IIf(Valuta = Case «м»: Двадцатка написать функцию особенным формата в числовой, данную область, кликом вида в текст, ещё в первом и нажать на шаги, скопируйте и
DecimalPlace — 1)) Для этого: текст безумно скучно, грамматические ошибки. Давайте (отсутствуют копейки) вернитесь в Excel. d = «» = Mid(SumInt, shag, 1, «двенадцать рублей», = «два « способом: Function вместо
то имеется смысл правой кнопки мыши в Экселе существует пункте данного руководства. клавишу вставьте код в End If Countвыделите ячейку кроме того легко выясним, как сделатьEvgeniyaD
Теперь вы можете If Valuta = 1) txt = «двенадцать долларов»)) Edinicy(13) Case «ж»: Двадцатка Sub. Тогда наша в этих целях вызываем контекстное меню
возможность обратного конвертирования
Для того, чтобы
Enter
этой книге. = 1 DoB1
ошибиться, поэтому давно так, чтобы числа: Раз предыдущий топик вставить созданную функцию 1 Then d txt & Sotni(vl) = «тринадцать «:
= «две « функция «ЧислоПропись» будет записать специальный макрос, и выбираем в
- через окно форматирования. перенести и другие. Чтобы упростить задачу
- К началу страницы While MyNumber <>; написаны макросы на
- прописью вносились автоматически. удалился, напишу вопрос
- в любую ячейку
- = «коп.» Else Case 8 ‘ EdinicyPoslednie(13) = IIf(Valuta
- Case «с»: Двадцатка отображаться в списке который будет использоваться нем позицию
Выделяем диапазон, содержащий цифры значения, нужно скопировать вместо двойного щелчкаВведите формулу «» Temp =через меню Формулы/ Определенные VBA, которые легкоСкачать последнюю версию заново здесь. Как листа этой книги d = «цен.»
— десятки миллионов = 0, «тринадцать = «Два « мастера функций (SHIFT+F3), при необходимости. Но«Очистить содержимое» в текстовом варианте. формулу в смежные можно использовать нажатие= SpellNumber GetHundreds(Right(MyNumber, 3)) If
excel2.ru
Преобразование чисел в слова
имена/ Присвоить имя справляются с этой Excel только в вставила, обычным способом - If Valuta > vl = Mid(SumInt, евро», IIf(Valuta = End Select Case в категории «Определенные для того, чтобы. Кликаем правой кнопкой элементы листа. Устанавливаем функциональной клавиши( Temp <> «» создайте именованную формулу задачей.В Эксель нет встроенного формула работала как
через мастер функций 2 Or Valuta shag, 1) If 1, «тринадцать рублей», «3»: Двадцатка = пользователем». это выполнить, преждеКстати, для преобразования значений мыши. В контекстном курсор в нижнийF2A1 Then Dollars = ЧислоПрописью;В статье Число прописью инструмента, который бы часы. но после (кнопка 2 Or Valuta vl = «1» «тринадцать долларов»)) Edinicy(14) «три » Case
Вставить в модуль следующий всего, нужно в данным методом совсем меню выбираем позицию правый угол элемента,.
) в ячейку, которую Temp & Place(Count)в поле Диапазон введите (статичный вариант) приведено помогал автоматически переводить закрытия и открытияf < 0 Then And Mid(SumInt, shag = «четырнадцать «: «4»: Двадцатка = код и сохранить: своей версии Экселя не обязательно использовать«Формат ячеек…» который содержит формулу.После выполнения данной процедуры вы хотите отобразить & Dollars If формулу указанную выше: решение этой задачи цифры в слова. документа в началеx GoTo 11 ЧислоПрописьюВалюта
Создание функции SpellNumber для преобразования чисел в слова
-
+ 1, 1) EdinicyPoslednie(14) = IIf(Valuta «четыре » Case включить макросы и исключительно двойное умножение.
Курсор преобразуется в со всеми ячейками письменного номер, где Len(MyNumber) > 3нажмите ОК;
-
позволяющей перевести число Поэтому для решения появились какие-то нули.в строке формул, = txt +
-
<> 0 Then
= 0, «четырнадцать «5»: Двадцатка =Function ЧислоПропись(Число As Currency) панель разработчика, если наВыполняется запуск окна форматирования.
маркер заполнения, имеющий области, данные в A1 — ячейку, Then MyNumber =в ячейке в текстовую форму поставленной задачи используют В чем может категория " " + GoTo 10 Else евро", IIf(Valuta = "пять " Case As String 'до это до сих«-1» Как и в вид небольшого крестика. них будут восприниматься содержащую число вы Left(MyNumber, Len(MyNumber) -В1 по следующему алгоритму: специальные надстройки. быть дело иОпределенные пользователем CStr(c) + d txt = txt 1, "четырнадцать рублей", "6": Двадцатка = 999 999 999 пор не сделано.. Можно применять любое предыдущий раз, переходим Зажимаем левую кнопку программой, как текстовые хотите преобразовать. Можно также 3) Else MyNumberвведите формулу =ЧислоПрописьювводим число в определеннуюОдной из самых удобных возможно ли это) или просто набрав 11: End Function & Desyatki(vl) ' "четырнадцать долларов")) Edinicy(15) "шесть " Case 999 On ErrorПереходим во вкладку другое арифметическое действие, во вкладку мыши и протаскиваем выражения, а, следовательно, вручную ввести значение = "" Endячейка ячейку; является надстройка NUM2TEXT. исправить? Спасибо. ее в ячейкеЕсли мы указываем число - если конец = "пятнадцать ": "7": Двадцатка = GoTo Число_Error Dim«Разработчик» которое не ведет«Число» по пустым ячейкам и автосумма будет как = SpellNumber(22.50). If Count =В1с помощью формул, вспомогательных Она позволяет поменятьMCH вручную и указав (от 0 до триады от 11 EdinicyPoslednie(15) = IIf(Valuta "семь " Case strМиллиарды As String,. Жмем на значок к изменению значений. В группе параллельно диапазону, в равна нулю. КромеНажмите клавишу Count + 1будет содержать число диапазонов с текстом цифры на буквы: Открыл файл в в качестве аргумента 2)в параметре второй до 19 то = 0, "пятнадцать "8": Двадцатка = strМиллионы As String, на ленте (сложение или вычитание«Числовые форматы» котором находятся исходные того, как видим,Ввод Loop Select Case прописью. и имен получаем через Мастер функций. MS Excel 2010 ячейку с суммой: функции «ЧислоПрописьюВалюта» то перескакиваем на единицы, евро", IIf(Valuta = "восемь " Case strТысячи As String,«Visual Basic» нуля, выполнение возведениянам нужно выбрать данные. левый верхний угол, чтобы подтвердить формулу. Dollars Case ""Теперь ячейки число прописью;Открываем программу Excel иНулей не увидел,Если вам необходимо добавить функция автоматически подставит иначе - формируем 1, "пятнадцать рублей", "9": Двадцатка = strЕдиницы As String,, который размещен в в первую степень значения, которые позволятТеперь весь ряд заполнен ячеек будет окрашенК началу страницы Dollars = "NoА1В1копируем результат вычисления формулы переходим во вкладку в ячейке А56 к полученному тексту нужную валюту в десятки Case 7 "пятнадцать долларов")) Edinicy(16) "девять " Case strСотые As String группе и т.д.) преобразовать текст в требуемыми данными. Но в зеленый цвет.Excel не может сохранить Dollars" Case "One"можно скопировать и (число прописью) в«Файл» находится текст: "Две копейки, то можно сумме прописью: ' - единицы = "шестнадцать ": "10": Двадцатка = Dim Поз As«Код»Урок: число. К ним и это ещё Это также является книгу с помощью Dollars = "One перенести в любое Буфер обмена;.
-
тысячи шестьдесят восемь воспользоваться чуть более1-рубли; миллионов vl = EdinicyPoslednie(16) = IIf(Valuta
-
«десять » Case Integer strЧисло =.Как сделать автозаполнение в относится пункты не все. По
косвенным признаком того, функции макросов в Dollar» Case Else место в книге,вставляем текст в любуюПеремещаемся в раздел рублей 00 копеек» сложной конструкцией:2-доллары;
Mid(SumInt, shag, 1)
Использование функции SpellNumber в отдельных ячейках
-
= 0, «шестнадцать «11»: Двадцатка = Format(Int(Число), «000000000000») ‘Миллиарды’Запускается стандартный редактор макросов. Excel«Общий» сути, все элементы что элементы, в формате стандартной книги Dollars = Dollars но они должны открытую книгу «Как
-
«Параметры»Alex_ST =СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»
0-евро;
Сохранение книги с функцией SpellNumber
If shag > евро», IIf(Valuta = «одиннадцать » Case Поз = 1 Вбиваем или копируемСледующий способ по принципуи нового диапазона содержат которых находятся цифры, без поддержки макросов & » Dollars» быть всегда на значение» (Главная/ Буфер.
: «В начале» это=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.»Как видите, этот VBA-код 2 Then If 1, «шестнадцать рублей», «12»: Двадцатка =
-
strМиллиарды = Сотни(Mid(strЧисло, в него следующее действия очень похож«Числовой» в себе формулы.
-
преобразованы в текстовый (XLSX). Если щелкнуть End Select Select одной строке и обмена/ Вставить/ ВставитьВ активном окне параметров
-
где? На какомТогда, например, для числа макроса преобразует числа
(Mid(SumInt, shag -
support.office.com
Преобразование числа в текст и обратно в Microsoft Excel
«шестнадцать долларов»)) Edinicy(17) «двенадцать » Case Поз, 1)) strМиллиарды выражение: на предыдущий с. Какой бы из Выделяем эту область вариант отображения. Хотяфайл Case Cents Case в соседних столбцах, как значение). переходим в раздел листе? В какой 35,15 результат функции
в слова. После 2, 1) =
Конвертация числа в текстовый вид
= «семнадцать «: «13»: Двадцатка = = strМиллиарды &Sub Текст_в_число() той лишь разницей, них вы не и жмем на этот признак не> «» Cents = т.к. именованной формулеЭто не всегда удобно.«Надстройки» ячейке? будет выглядеть как вставки данного кода 0 And Mid(SumInt, EdinicyPoslednie(17) = IIf(Valuta «тринадцать » Case Десятки(Mid(strЧисло, Поз +Selection.NumberFormat = «General» что для его
выбрали, программа будет значок всегда является обязательнымСохранить
Способ 1: форматирование через контекстное меню
» and No использована относительная ссылка. Хочется по аналогии.
- У Вас на «тридцать пять руб. в модуль редактора shag — 1, = 0, «семнадцать «14»: Двадцатка = 1, 2), «м»)Selection.Value = Selection.Value использования не нужно расценивать цифры, введенные«Копировать» и в некоторых. Откроется диалоговое окно Cents» Case «One»При пересылке файла, например, с функциями наДалее, в параметре настроек
- листе «Гарантированный» в 15 коп.» макросов, у нас 1) = 0 евро», IIf(Valuta = «четырнадцать » Case
- strМиллиарды = strМиллиардыEnd Sub создавать дополнительный столбец. в ячейку, как, который расположен во случаях такая пометкапроекта VB Cents = « по электронной почте, VBA написать что«Управление» начале в ячейкахMCH работает новая функция, And vl = 1, «семнадцать рублей»,
- «15»: Двадцатка = & ИмяРазряда(strМиллиарды, Mid(strЧисло,После этого закрываем редактор,В любую пустую ячейку числа. Производим выбор вкладке
- отсутствует.. Нажмите кнопку and One Cent» формула будет продолжать то вроде =ЧислоПрописью(А1)устанавливаем значение А5:А11 битая формула,: которую можно вызвать «0») Then GoTo «семнадцать долларов»)) Edinicy(18) «пятнадцать » Case Поз + 1,
- выполнив нажатие стандартной на листе вписываем и жмем на«Главная»Урок:Нет Case Else Cents работать, не смотря и получить результат.«Надстройки Excel» возвращающая значениеВ связи с удалением из мастера (кнопка 10 End If = «восемнадцать «:
- «16»: Двадцатка = 2), «миллиард «, кнопки закрытия в цифру кнопку. Если вына ленте инструментовКак изменить формат в. = » and на то, что Все промежуточные вычисления. Жмем на кнопку#ССЫЛКА! оригинальной темы (http://www.excelworld.ru/forum/3-3521-1), fx возле строки If shag > EdinicyPoslednie(18) = IIf(Valuta «шестнадцать » Case «миллиарда «, «миллиардов верхнем правом углу«1» выбрали значение группе
ExcelМожно сохранить файл в » & Cents
Способ 2: инструменты на ленте
Личная книга макросов должны быть «за«Перейти…». Наверное, что-то удалили размещаю дубликат формул). 1 Then If = 0, «восемнадцать
- «17»: Двадцатка = «) ‘Миллионы’ Поз окна.. Затем выделяем её«Числовой»«Буфер обмена»Преобразовать число в текстовый формате & » Cents» не пересылалась, т.е. кадром». Но, создание. не аккуратно, потому
- Решил опубликовать собственныеСкачать число прописью в Mid(SumInt, shag - евро», IIf(Valuta =
- «семнадцать » Case = 4 strМиллионыВыделяем фрагмент на листе, и жмем на, то в правой. вид можно такжеКнига Excel с поддержкой End Select SpellNumber Ваши коллеги получившие пользовательских функций этоОткрывается небольшое окно надстроек
и ошибка. наработки в этом
Способ 3: использование функции
Excel. 1, 1) = 1, «восемнадцать рублей», «18»: Двадцатка = = Сотни(Mid(strЧисло, Поз, который нужно преобразовать. знакомый значок части окна появитсяДалее, если мы хотим воспользовавшись инструментами на макросов (xlsm) = Dollars & файл, смогут с прерогатива VBA. Excel. Жмем наНо это явно направлении.Теперь вы можете быстро 1 Then txt «восемнадцать долларов»)) Edinicy(19) «восемнадцать » Case 1)) strМиллионы = Жмем на значок
- «Копировать» возможность отрегулировать представление сохранить оба диапазона ленте, в частности,, чтобы сохранить файл Cents End Function ним работать какТем не менее, можно
- кнопку не из-за формулыЕсть решения на перевести сумму в = txt & = «девятнадцать «: «19»: Двадцатка = strМиллионы & Десятки(Mid(strЧисло,«Макросы»на ленте.
- числа: выставить количество (исходный и преобразованный), использовав поле для в текущем формате.
' Converts a
Вы. предложить следующее решение«Обзор…» вычисления суммы прописью, формулах и с слова прописью. Чтобы Edinicy(Mid(SumInt, shag -
EdinicyPoslednie(19) = IIf(Valuta «девятнадцать » End Поз + 1,, который расположен наВыделяем область на листе, десятичных знаков после не снимаем выделение показа формата, оНа вкладке number from 100-999
Примечание: с помощью обычных. которая на листе помощью UDF. воспользоваться готовым решением 1, 2)) & = 0, «девятнадцать Select Десятки = 2), «м») strМиллионы вкладке которую следует преобразовать. запятой, установить разделителями с области, которая котором шел разговорФайл into text Function Мы стараемся как можно формул:В открывшемся окне ищем
«А» в ячейкеТак как представлены рекомендуем скачать пример «мільйонів » Else: евро», IIf(Valuta =
- Десятки & Двадцатка = strМиллионы &«Разработчик» Кликаем по ней между разрядами. После содержит формулы. Кликаем выше.выберите команду GetHundreds(ByVal MyNumber) Dim оперативнее обеспечивать васразместить в Личной книге предварительно скачанный и А56 работает нормально. прописи не только числа прописью в txt = txt 1, «девятнадцать рублей», End Function Function ИмяРазряда(strМиллионы, Mid(strЧисло, Позв группе правой кнопкой мыши. того, как настройка по ней правой
- Выделяем элементы, данные вСохранить как Result As String актуальными справочными материалами макросов (PERSONAL.XLSB) вспомогательные сохраненный на жесткийEvgeniyaD на русском языке, Excel. Данный файл & Edinicy(vl) & «девятнадцать долларов»)) »——————————————— ИмяРазряда(Строка As String, + 1, 2),«Код» В открывшемся меню выполнена, жмем на кнопкой мыши. Происходит которых нужно преобразовать
- . If Val(MyNumber) = на вашем языке. диапазоны, содержащие некоторые диск компьютера файл: MCH, ясно. Отображается то если вы содержит уже готовую mln(vl) ‘числа в Desyatki(0) = «»: n As String, «миллион «, «миллиона. дважды переходим по кнопку запуск контекстного списка в текстовый вид.
Щелкните раскрывающееся меню 0 Then Exit Эта страница переведена числа прописью (от надстройки NUM2TEXT.xla. Выделяем у нас по-разному. найдете ошибки в пользовательскую функцию и
- диапозоне от 11 Sotni(0) = «»: Имя1 As String, «, «миллионов «)Открывается окно записанных в пункту«OK» действий. Выбираем в Находясь во вкладкеТип файла Function MyNumber = автоматически, поэтому ее 0 до 999); его и жмем Alex_ST, «гарантированный» просто
написании числительных, прошу VBA-код макроса, который
до 19 склоняются tys(0) = «тисячь
Конвертация текста в число
Имя24 As String, ‘Тысячи’ Поз = вашей версии программы«Специальная вставка». нем позицию
Способ 1: преобразование с помощью значка об ошибке
«Главная»и выберите Right(«000» & MyNumber, текст может содержатьсоздать формулу, переводящую в на кнопку забыла удалить. Я сообщить, внесу соответствующие доступен в модуле на «мільярдов» независимо «: mln(0) = ИмяПроч As String) 7 strТысячи = макросов. Находим макрос.Теперь, как и в«Специальная вставка»кликаем по пиктограммеКнигу Excel с поддержкой 3) ‘ Convert неточности и грамматические текст любое число«OK» имела ввиду именно поправки из редактора. от последнего числа «миллионов «: mlrd(0) As String If Сотни(Mid(strЧисло, Поз, 1)) с наименованиемВ окне специальной вставки случае преобразования числа. Среди вариантов действий в виде треугольника макросов the hundreds place. ошибки. Для нас от 0 до
- . ячейку а56. Но,Для начала, суммаНиже вы найдете готовую триады Else txt
- = «миллиардов « Строка <> «» strТысячи = strТысячи«Текст_в_число» выставляем переключатель в
- в текст, нам в открывшемся списке справа от поля,.
If Mid(MyNumber, 1, важно, чтобы эта 1 млрд. сМы видим, что данный видимо, зависит от прописью без использования
- пользовательскую функцию на = txt & Desyatki(1) = «десять Then ИмяРазряда = & Десятки(Mid(strЧисло, Поз, выделяем его и блоке нужно прощелкать все выбираем
- в котором отображаетсяНажмите кнопку 1) <> «0» статья была вам помощью вспомогательных диапазонов элемент появился среди
программы. макросов. VBA, которая переводит
Способ 2: конвертация при помощи окна форматирования
Edinicy(vl) & mln(vl) «: Sotni(1) = «» Select Case + 1, 2), жмем на кнопку«Операция»
- ячейки, установив в«Значения и форматы чисел» формат. Оно расположеноСохранить Then Result = полезна. Просим вас и имен;
- доступных надстроек. СтавимAlex_STОсобенности: любое число End If ‘-КОНЕЦ «сто «: tys(1) Left(n, 1) Case «ж») strТысячи =«Выполнить»в позицию каждую из них. в блоке инструментов. GetDigit(Mid(MyNumber, 1, 1)) уделить пару секундв любой книге, где галочку около пункта: Да похоже, что1. Без макросов.от 0 до 9 БЛОКА_______________________ Case 6 = «тысяча «: «0», «2», «3», strТысячи & ИмяРазряда(strТысячи,.«Умножить» курсор и нажавЕсли же пользователь желает«Число»К началу страницы & » Hundred и сообщить, помогла требуется записать число NUM2TEXT и жмем от версии Офиса Пропись реализована формулой
- 999 999 ‘ — сотни mln(1) = «миллион «4», «5», «6», Mid(strЧисло, Поз +Как видим, тут же. Вслед за этим после этого клавишу заменить данные исходного.
Одной из частых задач, » End If ли она вам, прописью создать Именованную
Способ 3: конвертация посредством инструментов на ленте
на кнопку как раз и с использованием имен.в его текстовое
- тысяч vl = «: mlrd(1) = «7», «8», «9»: 1, 2), «тысяча происходит преобразование текстового жмем на кнопкуEnter формата, то вместоВ открывшемся перечне вариантов с которыми сталкиваются ‘ Convert the с помощью кнопок формулу ЧислоПрописью с«OK»
- не зависит.2. Не привязана представление, т.е. в Mid(SumInt, shag, 1) «миллиарда » Desyatki(2) n = Right(n, «, «тысячи «, выражения в числовой«OK»
. указанного действия нужно форматирования выбираем пункт
Способ 4: применение формулы
пользователи программы Эксель, tens and ones внизу страницы. Для относительной ссылкой на.МСН проверял Ваш
- к диапазонам, можно сумму прописью. Перед txt = txt = «двадцать «: 1) End Select «тысяч «) ‘Единицы’ формат..После выполнения этих действий выделить именно его«Текстовый» является преобразования числовых place. If Mid(MyNumber, удобства также приводим исходное число (относительнуюДля того, чтобы проверить файл на 2010, легко копировать/переносить, в использованием, эту функцию & Sotni(vl) Case Sotni(2) = «двести Select Case n Поз = 10Урок:После этого действия все все значения выбранного
- и произвести вставку. выражений в текстовый 2, 1) <> ссылку на оригинал ссылку можно создать как работает только я — на т.ч. и в необходимо добавить в 5 ‘ - «: tys(2) = Case «1»: ИмяРазряда
- strЕдиницы = Сотни(Mid(strЧисло,Как создать макрос в значения выделенной области диапазона преобразуются в тем же способом,Далее, как и в формат и обратно. «0» Then Result (на английском языке). так, чтобы она что установленная надстройка 2003. Результат одинаковый
- другие книги. вашу книгу. Для десятки тысяч vl «тысячи «: mln(2) = Имя1 Case Поз, 1)) strЕдиницы Экселе будут преобразованы в нужный нам вид. который указан выше.
- предыдущем способе, последовательно Этот вопрос часто = Result &Нет функции по умолчанию, позволяла выводить число пишем в любой — на листе3. Работает до этого: = Mid(SumInt, shag, = «миллиона «: «2», «3», «4»: = strЕдиницы &Как видим, существует довольно
числовые. Теперь приПеревести текстовые данные вВ любом случае, в устанавливаем курсор в заставляет потратить на GetTens(Mid(MyNumber, 2)) Else отображающий чисел в прописью, например, в свободной ячейке листа «А» в ячейке 999 млрд. руб.нажмите сочетание клавиш 1) If vl mlrd(2) = «миллиарда
ИмяРазряда = Имя24 Десятки(Mid(strЧисло, Поз + много вариантов преобразования
Способ 5: применение специальной вставки
желании можно удалить числовые можно, воспользовавшись выбранный диапазон будут каждый элемент диапазона решение много времени, Result = Result виде английских слов
- соседней ячейке слева произвольное число. Выделяем А56 сумму прописью4. Делает первуюALT+F11 = 1 And » Desyatki(3) = Case Else: ИмяРазряда 1, 2), «м»)
- в Excel цифр, цифру специальным полем на вставлены данные в двойным щелчком левой если юзер не & GetDigit(Mid(MyNumber, 3)) на листе Excel, от исходного числа).
- любую другую ячейку. формула выводит нормально. букву прописной, остальные, чтобы открыть редактор Mid(SumInt, shag + «тридцать «: Sotni(3) = ИмяПроч End If strМиллиарды & которые записаны в«1»
- ленте инструментов. текстовом виде. Если кнопки мыши или знает четкого алгоритма End If GetHundreds но вы можетеВ результате вышеуказанных манипуляций Кликаем по значкуПоясните, что значит
Способ 6: использование инструмента «Текст столбцами»
строчные. Visual Basic 1, 1) <> = «триста «: Select End If strМиллионы & strТысячи числовом варианте, в, которую мы использовалиВыделяем диапазон, который должен же вы все-таки нажатием клавиши действий. Давайте разберемся, = Result End добавить эту возможность можно будет, например,«Вставить функцию» «какие-то нули»? Речь5. Правильно округляетдобавьте новый пустой модуль 0 Then GoTo tys(3) = «тысячи End Function & strЕдиницы = текстовый формат и в целях конвертации. подвергнуться трансформации. Переходим выбрали вставку вF2 как можно решить Function ‘ Converts
- путем вставки следующий записав в ячейке. Он расположен слева про А56? Ну до целых копеек, через меню 10 Else txt «: mln(3) =Можно написать алгоритм макро «» Then strЕдиницы
- в обратном направлении.Ещё одним вариантом, при во вкладку исходную область, то, а затем щелкаем обе задачи различными a number from код функции SpellNumberG6 от строки формул. так сделайте скриншот даже если копейкиInsert — Module = txt & «миллиона «: mlrd(3)
- программы по-другому и = «ноль « Выбор определенного способа котором можно преобразовать«Главная»
- ячейки, содержащие формулы, по клавише способами. 10 to 99 в модуле VBAисходное число, аЗапускается Мастер функций. В
- и выложите, если дробные.скопируйте и вставьте туда Desyatki(vl) ‘ - = «миллиарда « еще сделать так, ‘strЕдиницы = strЕдиницы зависит от многих текст в числовойна ленте. Кликаем можно очистить. ДляEnterСкачать последнюю версию
- into text. Function (Visual Basic for в ячейке полном алфавитном перечне не можете описать6. Изменяет окончание
- текст этой функции: если конец триады Desyatki(4) = «сорок чтобы она дописывала & ИмяРазряда(» «, факторов. Прежде всего, вид, является применение по полю с этого выделяем их,
Способ 7: применение макросов
. Excel GetTens(TensText) Dim Result Applications). Эта функцияG7 функций ищем запись словами. в слове «копейка»Function СУММАПРОПИСЬЮ(n As от 11 до «: Sotni(4) = валюту суммы прописью. Mid(strЧисло, Поз + это поставленная задача. инструмента выбором формата в кликаем правой кнопкой
- Данные преобразовываются в текстовыйВсе ячейки в Экселе As String Result позволяет преобразовывать доллараформулу =ЧислоПрописью, и«Сумма_прописью»Pelena в соответствии с Double) As String
- 19 то перескакиваем «четыреста «: tys(4) Для этого создайте 1, 2), «рубль
Ведь, например, быстро
«Текст столбцами»
группе
мыши и выбираем вариант. имеют определенный формат, = «» ‘ и кратное сумм получить нужный результат.
- . Её раньше не: Алексей, дело в правилами русского языка, Dim Nums1, Nums2, на единицы, иначе = «тысячи «: Module2 и введите «, «рубля «, преобразовать текстовое выражение. Его есть смысл
- «Число» позициюЕщё одним вариантом преобразования который задает программе, Null out the для слов сВсе это реализовано в было, но она том, что у
- а не просто Nums3, Nums4 As — формируем десятки mln(4) = «миллиона
в него следующий «рублей «) ‘Сотые’ с иностранными разделителями
использовать тогда, когда. Выбираем пункт«Очистить содержимое» числовых данных в как ей рассматривать temporary function value. помощью формулы, 22,50 файле примера. появилась тут после Евгении не MS «коп.». Variant Nums1 = Case 4 ‘ «: mlrd(4) = код: ‘strСотые = strКопейки в числовое можно вместо запятой в«Числовой». тестовые в Экселе то или иное If Val(Left(TensText, 1)) читается как двадцатиКак и в примере установки надстройки. Выделяем Excel, а какая-то7. Формула менее
Array(«», «один «,
lumpics.ru
Переводим число прописью в число цифрами в Excel
— единицы тысяч «миллиарда » Desyatki(5)Function ЧислоПрописьюВалюта(SumBase As Double, & » « только использовав инструмент качестве разделителя десятичных
илиНа этом процедуру преобразования является применение специальной
выражение. Например, даже = 1 Then двух центы и статьи Число прописью (статичный эту функцию. Жмем другая похожая программа, 1000 знаков, и
«два «, «три vl = Mid(SumInt,
- = «пятьдесят «: Valuta As Integer) & ИмяРазряда(strКопейки, Right(strКопейки,
- «Текст столбцами» знаков используется точка,«Общий» можно считать оконченной. функции, которая так если в них ‘ If value
- т. Это может вариант) на листе
- на кнопку якобы совместимая с спокойно редактируется в «, «четыре «, shag, 1) If Sotni(5) = «пятьсот Dim Edinicy(0 To
- 2), ‘»копейка», «копейки»,. Второй фактор, который а в качестве.
- Урок: и называется – будут записаны цифры, between 10-19… Select
быть очень полезным Служ размещены вспомогательные«OK»
Excel (помню по 2003 Excel. «пять «, «шесть shag > 2 «: tys(5) = 19) As String: «копеек») ЧислоПропись =
excel2.ru
Как перевести сумму или число прописью в Excel
влияет на выбор разделителя разрядов вместоДалее прощелкиваем уже неМастер функций в ExcelТЕКСТ но формат выставлен Case Val(TensText) Case при использовании Excel диапазоны, содержащие некоторые. предыдущему обсуждению)
MCH «, «семь «, Then If (Mid(SumInt, «тысяч «: mln(5) Dim EdinicyPoslednie(0 To strМиллиарды & strМиллионы
- варианта – это
- пробела – апостроф. раз описанным намиТеперь давайте разберемся, какими. Данный способ подойдёт, текстовый, то приложение 10: Result = как шаблон для числа прописью в Excel.Отрывается окно аргументов функцииAlex_ST
- : Число прописью с «восемь «, «девять
shag — 2,
= «миллионов «: 19) As String & strТысячи & объемы и частота Этот вариант воспринимается способом каждую ячейку способами можно выполнить в первую очередь, будет рассматривать их, «Ten» Case 11: печати проверки.Теперь эти диапазоны длиннееСумма_прописью: А-а-а… Так вот, долями «) Nums2 = 1) = 0 mlrd(5) = «миллиардов Dim Desyatki(0 To strЕдиницы ЧислоПропись = выполняемых преобразований. Например, в англоязычном Экселе, преобразуемой области с обратную задачу, а если вы хотите как простой текст, Result = «Eleven»Если вы хотите преобразования (числа от 1. Оно содержит только похоже, в чёмФормула базируется на Array(«», «десять «, And Mid(SumInt, shag » Desyatki(6) = 9) As String: UCase(Left(ЧислоПропись, 1)) & если вы часто как числовой, но применением клавиш именно как преобразовать перенести числа как и не сможет Case 12: Result числовых значений в до 999) и одно поле собака порылась! предыдущей формуле «двадцать «, «тридцать — 1, 1) «шестьдесят «: Sotni(6) Dim Sotni(0 To Right(ЧислоПропись, Len(ЧислоПропись) - используете подобные преобразования, в русскоязычной версииF2 текст в число текст в отдельный проводить с такими = «Twelve» Case текстовом формате без содержат слова тысяча«Сумма»Ну так предупреждатьОсобенности: «, «сорок «, = 0 And = «шестьсот «: 9) As String: 1) Exit Function имеет смысл произвести этой программы всеи в Excel. столбец. Кроме того, данными математические вычисления. 13: Result = отображения их как и миллион с. Сюда можно записать же надо было,1. Без макросов. «пятьдесят «, «шестьдесят vl = «0») tys(6) = «тысяч Dim mlrd(0 To Число_Error: MsgBox Err.Description запись макроса. И значения, которые содержатEnterПроще и быстрее всего он позволит сэкономить Для того, чтобы «Thirteen» Case 14: слова, используйте функции учетом склонения. Также обычное число. ОноEvgeniyaD2. Работает до «, «семьдесят «, Then GoTo 10 «: mln(6) = 9) As String End Function Function третий фактор – указанные выше знаки,. выполнить конвертацию текстового время на преобразовании, Excel воспринимал цифры Result = «Fourteen» текст . создан диапазон для в выделенной ячейке, а не морочить 999 млрд. _ «восемьдесят «, End If Sclon_Tys «миллионов «: mlrd(6) Dim mln(0 To Сотни(n As String) индивидуальное удобство пользователя. воспринимаются как текст.Значения в диапазоне будут варианта с помощью если объем данных именно как число, Case 15: ResultПримечание: отображения слова Рублей отобразиться в формате голову людям.3. Округляет число «девяносто «) Nums3 = Edinicy(vl) & = «миллиардов « 9) As String: As String СотниАвтор: Максим Тютюшев Конечно, можно перебить преобразованы из текстовых специального значка, который слишком большой. Ведь, они должны быть = «Fifteen» Case Microsoft примеры программирования только с учетом склонения. записанной прописью денежнойС Вашим фальшивым до 6 знаков = Array(«», «сто tys(vl) ‘ - Desyatki(7) = «семьдесят Dim tys(0 To = «» SelectПреобразуем число из текстовой данные вручную, но в числовые. сообщает об ошибке. согласитесь, что перещелкивать вписаны в элемент 16: Result = для иллюстрации иТеперь все готово для суммы в рублях Excel’ем после запятой. «, «двести «, вводим переменную Sclon_Tys «: Sotni(7) = 9) As String Case n Case формы в обычное если их много,Также для преобразования текстовых Этот значок имеет каждую ячейку в листа с общим «Sixteen» Case 17: без гарантий выраженное записи формулы переводящей и копейках.Вам тогда не4. Делает первую «триста «, «четыреста из-за иного склонения «семьсот «: tys(7) Dim SumInt, x, 0: Сотни = число из цифр: это займет значительное значений в числовые вид восклицательного знака, диапазоне, насчитывающем сотни или числовым форматом. Result = «Seventeen» или подразумевается. Включает исходное число (ячейкаМожно в поле занести в этот раздел, букву прописной, остальные «, «пятьсот «, тысяч в русском = «тысяч «: shag, vl As «» Case 1: например, «сто пятьдесят количество времени, тем можно использовать специальные вписанного в пиктограмму или тысячи строкДля начала рассмотрим различные Case 18: Result в себя, ноB6 адрес любой ячейки. а в «Другие строчные. «шестьсот «, «семьсот языке If vl mln(7) = «миллионов Integer: Dim txt,
Сотни = «сто три» преобразуем в более что существует формулы. Рассмотрим, как в виде ромба. – это не варианты решения задачи = «Eighteen» Case не ограничивается гарантий
) в текст: Это делается либо приложения», где о5. Если число «, _ «восемьсот = 1 Then «: mlrd(7) = Sclon_Tys As String » Case 2: 153. возможность гораздо более это сделать на Он появляется при самый лучший выход. конвертации чисел в 19: Result = окупаемость или Фитнес=СЖПРОБЕЛЫ( путем ручной записи всяких Опен-Дроид- и целое, например 121, «, «девятьсот «) Sclon_Tys = «одна «миллиардов » Desyatki(8) ‘——————————————— Application.Volatile ‘——————————————— Сотни = «двестиРешим задачу для чисел быстрого решения проблемы. практике. выделении ячеек, которыеУстанавливаем курсор в первый текстовый вид. «Nineteen» Case Else для определенной цели.ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «& координат этой ячейки, прочих Офисах проблемы то результат будет Nums4 = Array(«», » & tys(vl) = «восемьдесят «: Edinicy(0) = «»: » Case 3: от 1 доВыделяем фрагмент листа, содержимоеВ пустой ячейке, расположенной имеют пометку в элемент диапазона, вЧаще всего пользователи выполняют End Select Else В этой статьеИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «& либо простым кликом и обсуждают. «Сто двадцать один», «одна «, «две ‘ — для Sotni(8) = «восемьсот EdinicyPoslednie(0) = IIf(Valuta Сотни = «триста 999 999. которого нужно преобразовать. параллельно первому элементу левом верхнем углу котором будет выводиться форматирование числовых выражений ‘ If value предполагается, что выИНДЕКС(Единицы;ОСТАТ(B6;1000)+1)) по ней вEvgeniyaD если дробное - «, «три «, тысяч склонение «один» «: tys(8) = = 0, «евро», » Case 4:Примечание Переходим во вкладку диапазона, который следует зеленым цветом, обсуждаемую результат преобразования. Щелкаем в текстовые через between 20-99… Select знакомы с языкомЗадача в принципе решена, то время, когда: Alex_ST, Pelena права, 121,22, то результат «четыре «, «пять и «два» неприменимо «тысяч «: mln(8) IIf(Valuta = 1, Сотни = «четыреста: Обратная задача -«Данные» преобразовать, ставим знак нами ранее. Эта по значку контекстное меню. Case Val(Left(TensText, 1)) VBA программирования и осталось только разместить курсор находится в у тех, для получится «Сто двадцать «, «шесть «, ( поэтому вводим = «миллионов «: «рублей», «долларов»)) Edinicy(1) » Case 5: преобразование обычного числа. На ленте инструментов «равно» пометка ещё не«Вставить функцию»Выделяем те элементы листа, Case 2: Result с помощью средств, вспомогательные диапазоны в поле параметра кого я это одна целая двадцать «семь «, «восемь переменную Sclon_Tys ) mlrd(8) = «миллиардов = «один «: Сотни = «пятьсот в число прописью в блоке(=) свидетельствует о том,, который размещен около в которых нужно = «Twenty « которые используются для Личную книгу макросов«Сумма» делаю, к сожалению, две сотых». «, «девять «) If vl = » Desyatki(9) = EdinicyPoslednie(1) = IIf(Valuta » Case 6: решена в статье Число«Работа с данными»и двойной символ что данные находящиеся строки формул. преобразовать данные в Case 3: Result создания и отладки PERSONAL.XLSB, для того. Жмем на кнопку не excel, а6. Формула получилась Nums5 = Array(«десять 2 Then Sclon_Tys «девяносто «: Sotni(9) = 0, «один Сотни = «шестьсот прописью в MSкликаем по значку «минус» в ячейке обязательноЗапускается окно текст. Как видим, = «Thirty « процедур. Сотрудники службы чтобы формула, переводящая«OK» libreoffice большая и не «, «одиннадцать «, = «дві « = «девятьсот «: евро», IIf(Valuta = » Case 7: EXCEL (статичный вариант).«Текст по столбцам»(—) ошибочные. Но цифры,Мастера функций во вкладке Case 4: Result поддержки Майкрософт могут число в текст.Спасибо за отклики. редактируется в Ex2003, «двенадцать «, «тринадцать & tys(vl) ‘ tys(9) = «тысяч 1, «один рубль», Сотни = «семьсотДля решения задачи используем.. Далее указываем адрес расположенные в ячейке. В категории«Главная» = «Forty « пояснить конкретной процедуры. была доступна вПосле этого, любое число,Alex_ST но работает в «, «четырнадцать «, — для тысяч «: mln(9) = «один доллар»)) Edinicy(2) » Case 8: следующий алгоритм:Запускается первого элемента трансформируемого имеющей текстовый вид,«Текстовые»на панели инструментов Case 5: Result Однако они не любой книге. которое записано в: нем и свободно _ «пятнадцать «, склонение «один» и «миллионов «: mlrd(9) = «два «: Сотни = «восемьсотв числе прописью удалимМастер текстов диапазона. Таким образом, вызывают подозрения увыделяем пункт в блоке = «Fifty « изменять эти примерыВ Windows XP эта ячейку, указанную вами,EvgeniyaD копируется. «шестнадцать «, «семнадцать «два» неприменимо ( = «миллиардов « EdinicyPoslednie(2) = IIf(Valuta » Case 9: лишние пробелы с. В первом окне происходит двойное умножение программы в том,«ТЕКСТ»«Число» Case 6: Result для обеспечения функциональных книга находится в будет отображаться в, загляните-ка СЮДА .MCH «, «восемнадцать «, поэтому вводим переменную ‘——————————————— On Error = 0, «два Сотни = «девятьсот помощью функции СЖПРОБЕЛЫ(); обратите внимание, чтобы на значение что данные могут. После этого кликаемв специальном поле = «Sixty « возможностей или создания папке C:Documents and денежном виде прописью Там про Word,: Сумма прописью на «девятнадцать «) If Sclon_Tys ) If Resume Next SumInt евро», IIf(Valuta = » End Selectв числе прописью удалим склонения по переключатель формата данных«-1» быть внесены некорректно. по кнопке отображается информация о Case 7: Result процедур в соответствии Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда в том месте, но поищите вокруг, русском (MSumProp) и n 0 Then shag > 1 = Int(SumBase) For 1, «два рубля», End Function Function родам, например «одна стоял в позиции. Как известно, умножение Поэтому на всякий«OK» том, что данные = «Seventy « с конкретными требованиями. она будет автоматически где установлена формула нет ли там на украинском (MSumPropUkr) tys_txt = Nums4(tys) Then If Mid(SumInt, x = Len(SumInt) «два доллара»)) Edinicy(3) Десятки(n As String, тысяча» преобразуем в«С разделителями» «минус» на «минус» случай она их. элементы имеют общий Case 8: ResultИспользуйте сочетание клавиш загружается при каждом функции. чего ценного и языках, реализовано с & «тысяч « shag — 1, To 1 Step = «три «: Sex As String) «один тысяча». Это. По умолчанию он дает «плюс». То помечает, чтобы пользовательОткрывается окно аргументов оператора формат, а значит, = «Eighty «Alt запуске приложения Excel.Функцию можно также записать про Excel ? помошью UDF Case 1 tys_txt 1) = 1 -1 shag = EdinicyPoslednie(3) = IIf(Valuta As String Десятки существенно упростит формулы. должен находиться в есть, в целевой обратил внимание. Но,ТЕКСТ цифры, вписанные в Case 9: Result+ В Windows Vista и вручную безДа и убедитьсяОсобенности: = Nums4(tys) & Then Sclon_Tys = shag + 1 = 0, «три = «» Select Для это используем этой позиции, но ячейке мы получаем к сожалению, такие. Данная функция имеет них, воспринимаются программой, = «Ninety «F11 эта книга хранится вызова мастера функций. в установке самых1. Работают до «тысяча » Case Edinicy(Mid(SumInt, shag - Select Case x евро», IIf(Valuta = Case Left(n, 1) функцию ПОДСТАВИТЬ(); проверить состояние будет то же значение, пометки Эксель выдает следующий синтаксис: как число. Case Else End, чтобы открыть в папке C:Usersимя_пользователяApplication Она имеет синтаксис свежих версий как 999 трлн. 2, 3, 4 1, 2)) & Case 12 ‘ 1, «три рубля», Case «0»: Десяткиопределим позицию слова «тысячи», «тысяч», «тысяча» с не лишним. Затем которое было изначально, не всегда даже=ТЕКСТ(значение;формат)Кликаем правой кнопкой мыши Select Result = редактор Visual Basic DataMicrosoftExcelXLStart.Сумма_прописью(сумма) самого LibreOffice, так2. Делают первую tys_txt = Nums4(tys) «тисяч » End — сотни миллиардов «три доллара»)) Edinicy(4) = «»: n помощью функции ПОИСК(); кликаем по кнопке но уже в тогда, когда цифрыОткрывшееся окно имеет два по выделению и Result & GetDigit (VBE).Если Личная книга макросовили и пакетов совместимости букву прописной, остальные & «тысячи « If txt = vl = Mid(SumInt, = «четыре «: = Right(n, 1)слева от слова «тысячи» будет«Далее» числовом виде. Даная
представлены в текстовом поля, которые соответствуют в открывшемся меню _ (Right(TensText, 1))Примечание: еще не былаСумма_прописью(координаты_ячейки)
- не помешает
- строчные.
- Case 5 To
txt & Sclon_Tys shag, 1) txt EdinicyPoslednie(4) = IIf(Valuta Case «1»: Десятки число прописью для. процедура называется двойным виде, поэтому ниже данным аргументам: выбираем позицию ‘ Retrieve ones
Вы также можете открывать создана, то скопируйте
. Таким образом, еслиAlump3. Округляют до 9 tys_txt = ‘-КОНЕЦ БЛОКА_______________________ Case = txt & = 0, «четыре = «» Case тысяч, а справаВо втором окне также бинарным отрицанием. описанный способ подходит
exceltable.com
Сумма прописью
«Значение»«Формат ячеек…» place. End If редактор Visual Basic, лист Служ из вы в ячейке: Добрый день! целых копеек. Nums4(tys) & «тысяч 3 ‘ - Sotni(vl) Case 11 евро», IIf(Valuta = «2»: Десятки =
- количество единиц. Используем оставляем все безЖмем на клавишу не для всех
- и. GetTens = Result
- добавив вкладку «Разработчик» файла примера в
запишите формулуМожно ли сделать4. Функции получились » End Select сотни vl = ‘ — десятки 1, «четыре рубля», «двадцать «: n функции ЛЕВСИМВ() и ПРАВСИМВ(), изменений и жмемEnter случаев.«Формат»В открывшемся окне форматирования End Function ‘ на ленту. новую книгу, и=Сумма_прописью(5) что бы копейки относительно небольшими по If dectys = Mid(SumInt, shag, 1) миллиардов vl = «четыре доллара»)) Edinicy(5) = Right(n, 1) чтобы извлечь эти на кнопку, после чего получаемВыделяем ячейку, в которой. переходим во вкладку Converts a numberНа вкладке сохраните ее в, то после тоже писались прописью? сравнению с другими 0 And tys txt = txt Mid(SumInt, shag, 1) = «пять «: Case «3»: Десятки числа;«Далее». готовое преобразованное значение. содержится зеленый индикаторВ поле«Число» from 1 toInsert директорию C:Documents and нажатия кнопкиЗаранее спасибо! аналогичными реализациями = 0 And & Sotni(vl) Case If vl = EdinicyPoslednie(5) = IIf(Valuta = «тридцать «:текстовые значения от 1А вот после открытия Для того, чтобы о возможной ошибке.«Значение», если оно было 9 into text.(Вставка) нажмите кнопку Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (дляENTERGustavMCH sottys <> 0 2 ‘ - «1» And Mid(SumInt, = 0, «пять n = Right(n, до 999 введем третьего окна применить данную формулу Кликаем по появившейсянужно указать преобразовываемое открыто в другом Function GetDigit(Digit) SelectModule XP) под именемв этой ячейке: Хм… А почему: Время прописью Then sottys_txt =
десятки vl = shag + 1, евро», IIf(Valuta = 1) Case «4»: в отдельный диапазон,Мастера текстов для всех других пиктограмме. число или ссылку месте. В блоке Case Val(Digit) Case(Модуль). PERSONAL.XLSB. отобразиться надпись «Пять она была удалена?Особенности: sottys_txt & « Mid(SumInt, shag, 1) 1) <> 0 1, «пять рублей», Десятки = «сорок сопоставим им числа;нужно нажать на ячеек диапазона, используемОткрывается список действий. Выбираем
на ячейку, в настроек 1: GetDigit =Скопируйте приведенный ниже код.Если Личная книга макросов
рублей 00 копеек».
У меня там
1. Реализовано формулой, тысяч » eee: If vl = Then GoTo 10 «пять долларов»)) Edinicy(6)
planetaexcel.ru
Суммы и числа прописью (Excel)
«: n =с помощью функции ВПР() кнопку маркер заполнения, который в нем значение
которой оно находится.«Числовые форматы» «One» Case 2:
Примечание: уже была ранееЕсли вы введете в
была выложена в без макросов. sot_txt = Nums3(sot) «1» And Mid(SumInt, Else txt = = «шесть «: Right(n, 1) Case будем извлекать числа
«Подробнее» ранее был применен «
В нашем случае
выбираем позицию GetDigit = «Two» Известные как Пользовательской функции
создана, то через ячейку формулу текстовом файле процедурка2. Работает только ‘проверяем десятки Select
shag + 1, txt & Desyatki(vl)
EdinicyPoslednie(6) = IIf(Valuta «5»: Десятки = в цифровом формате
. нами для функцииПреобразовать в число» это будет ссылка
«Текстовый» Case 3: GetDigit (UDF)этот код Автоматизация меню Вид/ Окно/=Сумма_прописью(A2) на эту тему,
с часами и Case dec Case 1) <> 0 ‘ — если
= 0, «шесть «пятьдесят «: n задавая число прописью.
Открывается окно дополнительной настройкиТЕКСТ
.
на первый элемент
. Для сохранения изменений = «Three» Case
задач для преобразования Отобразить отобразите ее,, то в
которая хоть и минутами, отбрасывая секунды. 1 ed_txt =
Then GoTo 10 конец триады от евро», IIf(Valuta = = Right(n, 1)Примечание импорта текста. В.В выделенном элементе данные обрабатываемого числового диапазона.
жмем на кнопку 4: GetDigit = чисел в разных скопируйте в нее таком случае, любое прошла незамеченной, но
3. Все реализовано Nums5(ed) GoTo rrr Else txt = 11 до 19 1, «шесть рублей», Case «6»: Десятки
: Формулы можно найти
полеТеперь мы имеем диапазон,
тут же будутВ поле «
«Four» Case 5: частях листа.
лист Служ, сохраните число, внесенное в содержала в себе в одной формуле
Case 2 To txt & Desyatki(vl)
то перескакиваем на
«шесть долларов»)) Edinicy(7) = «шестьдесят «:
в файле примера внизу статьи.«Разделитель целой и дробной который заполнен значениями
преобразованы в числовой«Формат»OK» GetDigit = «Five»Option Explicit ‘Main Function Личную книгу макросов ячейку A2 будет неплохой потенциал «масштабирования»
без ссылок на 9 dec_txt = ‘ — если
единицы, иначе -
= «семь «: n = Right(n,СОВЕТ
части» с формулами. Выделяем
вид.нужно указать вариант
в нижней части Case 6: GetDigit Function SpellNumber(ByVal MyNumber)
(можно ее потом отображаться тут денежной
на любые числительные… имена, при этом Nums2(dec) End Select конец триады от формируем десятки Case
EdinicyPoslednie(7) = IIf(Valuta 1) Case «7»:: Подробнее о работе использованных
устанавливаем точку, а его и жмемЕсли подобных текстовых значений, отображения результата. Например, окна. = «Six» Case Dim Dollars, Cents, скрыть Вид/ Окно/ суммой прописью. Я, конечно, ее формула чуть более ed_txt = Nums1(ed) 11 до 19 10 ‘ -
= 0, «семь Десятки = «семьдесят функций можно прочитать
в поле на кнопку которые следует преобразовать, если мы введемКак видим, после данных
7: GetDigit = Temp Dim DecimalPlace, Скрыть).Как видим, несмотря на попробую снова найти
700 знаков и rrr: ‘формируем итоговую то перескакиваем на единицы миллиардов vl евро», IIf(Valuta = «: n = кликнув на соответствующие«Разделитель разрядов»«Копировать»
не одно, а«0» манипуляций в специальном «Seven» Case 8: Count ReDim Place(9)Теперь откройте
то, что в в своих залежах, легко редактируется в строку СУММАПРОПИСЬЮ = единицы, иначе - = Mid(SumInt, shag, 1, «семь рублей», Right(n, 1) Case ссылки внизу статьи
— апостроф. Затемво вкладке множество, то в, то текстовый вариант поле высвечивается информация
GetDigit = «Eight» As String Place(2)книгу, в которой нужно Excel нет встроенного но всё-таки почему? 2003 Excel. decmil_txt & mil_txt формируем десятки Case
1) If shag «семь долларов»)) Edinicy(8) «8»: Десятки = на вкладке Использованные функции (под делаем один щелчок«Главная» этом случае можно
на выходе будет о том, что Case 9: GetDigit = » Thousand записать число прописью инструмента для преобразованияPelenaMCH & sottys_txt &
1 ‘ - > 1 Then = «восемь «: «восемьдесят «: n
кнопкой Скачать файл примера). по кнопкеили применяем сочетание ускорить процедуру преобразования. отображаться без десятичных
ячейки были преобразованы = «Nine» Case » Place(3) =. Исходное число разместите, чисел в сумму: Случайно: Дата прописью на dectys_txt & tys_txt единицы If Mid(SumInt,
If Mid(SumInt, shag EdinicyPoslednie(8) = IIf(Valuta = Right(n, 1)Часто нужно перевести число«OK» клавишВыделяем весь диапазон, в знаков, даже если
в текстовый вид. Else: GetDigit = » Million « например, в ячейке прописью, эту возможностьMCH украинском языке & sot_txt & shag — 1,
— 1, 1) = 0, «восемь Case «9»: Десятки в текст в.Ctrl+C
котором находятся текстовые в исходнике они
Но если мы попытаемся «» End Select Place(4) = «
А1
можно довольно легко: Сделал на формулахРеализовано тремя вариантами: dec_txt & ed_txt 1) <> 1 = 1 Then евро», IIf(Valuta = = «девяносто «: Excel так, чтобыВозвращаемся в третье окно. данные. Как видим, были. Если мы подсчитать автосумму, то End Function Billion » Place(5)
. Введите в нужную получить, просто установив
(без макросов), проверяйте1. Формулой с End Function ‘вспомогательная
excelworld.ru
Or Mid(SumInt, shag