- Число прописью в Excel – формула
- Сумма прописью с копейками в Excel
- В русских рублях, все буквы строчные
- В русских рублях, первая буква заглавная
- В русских рублях с копейками прописью
- В белорусских рублях
- Сумма прописью — формула для Openoffice Calc
- Сумма прописью в Google Spreadsheets
- UDF-функции надстройки !SEMTools
- Процедуры !SEMTools
- Перевод чисел прописью в другие падежи
Число или сумма прописью — в ручном исполнении — непростая задача. А если его нужно печатать десятки раз на дню и с множеством документов, точно нужна автоматизация.
Идеальным решением была бы формула в Excel.
Есть ли такая формула? Да! А главное, что вам делать ничего не придется (только скопировать), потому что я уже сделал её за вас! Но обо всем по порядку.
Если попытаться описать алгоритм, который будет учитывать все нюансы написания числа или суммы прописью, окажется, что все на так просто, как кажется:
- в зависимости от того, на какую цифру заканчивается число, его падеж и число могут быть:
- единственное, именительный (двадцать один рубль)
- единственное, родительный (двадцать два/три/четыре рубля)
- множественное, родительный (двадцать, двадцать пять/шесть/семь/восемь/девять рублей)
- При этом даже из этого правила уже есть исключения – числа от 11 до 14 – множественного числа, хотя числа от 1 до 4 – единственного.
- Ноль пишется цифрами, но не пишется прописью. Кроме случая с копейками – там он пишется в прописи, но цифрами.
- При этом от нуля может зависеть то, как будет выглядеть число или сумма прописью.
- Копейки женского рода, а рубли – мужского. Одна копейка, но один рубль.
И это далеко не все нюансы. Есть ли варианты, которые их все учитывают?
Большинство руководств в интернете предлагают надстройки. Также предлагаются формулы на основе именованных диапазонов.
Но зачастую необходимо обмениваться файлами между разными компьютерами, и в таких случаях формулы попросту “полетят”, и данные будут повреждены, т.к. вместе с файлом нужно будет портировать и код надстроек, что никто делать обычно не будет.
В случае с именованными диапазонами – нужно будет создавать их заново (а их около десятка!).
Возможна ли формула без применения VBA, макросов и надстроек?
Черт возьми, да! Я долго размышлял, прежде чем ее сделать, но мне это удалось.
Вот эта формула! Вставьте ее в любую ячейку, кроме A1, т.к. она преобразует значение этой самой ячейки:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>6;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>3;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);РИМСКОЕ(ЦЕЛОЕ(A1))));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")
Формула работает с любыми целыми числами от 1 до миллиарда, не включая его. Если дано число с десятичными знаками после запятой, формула берет только целую часть, иными словами, округляет всегда вниз.
Если вы хотите округлять такие числа обычным округлением по математическим правилам, замените процедурой найти и заменить во всей формуле:
на
Сумма прописью с копейками в Excel
Для записи суммы прописью с копейками по всем канонам, нужно соблюсти ряд условий:
- Рубли пишутся словами, первая буква обычно заглавная;
- Словоформа слова “рубль” должна соответствовать количеству;
- Копейки пишутся цифрами, но падеж и число слова “копейка” тоже должны соответствовать числу.
Трудно в это поверить, но и такая формула тоже существует. Аналогично, без применения VBA, макросов и надстроек.
Формула огромна, но замечательно справляется с любыми суммами до миллиарда. Работать будет в любой версии Excel от 2007 и старше – в 2003 не была доступна такая глубина вложений функций.
Вот и она, просто скопируйте ее, и она преобразует числовое значение ячейки A1 в сумму прописью с копейками.
В русских рублях, все буквы строчные
Формула выводит сумму в рублях, копейки оставляет цифрами. Если регистр первой буквы не важен, можно использовать её.
Тройной клик по формуле выделит её целиком
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")
В русских рублях, первая буква заглавная
В Excel нет простой функции, которая бы позволила сделать только первую букву ячейки заглавной, поэтому в первой конфигурации формула была в 2 раза длиннее из-за использования ЛЕВСИМВ и ДЛСТР.
Но в комментариях было предложено отличное решение – функцией ПОДСТАВИТЬ заменить пробелы на букву, которой в числах нет (например, Ф или Z), что сделает все как бы одним словом, на результате использовать функцию ПРОПНАЧ, и после заменить букву обратно на пробелы. Сейчас используется этот вариант формулы, он короче.
Тройной клик по формуле выделит её целиком.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек");" ";"Z"));"z";" ");"Z";" ")
В русских рублях с копейками прописью
Если нужно, чтобы копейки тоже были написаны прописью, то формула будет чуть длиннее, такой:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ИНДЕКС({"десять";"одиннадцать";"двенадцать";"тринадцать";"четырнадцать";"пятнадцать";"шестнадцать";"семнадцать";"восемнадцать";"девятнадцать"};ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)-9);ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"2";"двадцать");"3";"тридцать");"4";"сорок");"5";"пятьдесят");"6";"шестьдесят");"7";"семьдесят");"8";"восемьдесят");"9";"девяносто");"0";"")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"1";"одна");"2";"две");"3";"три");"4";"четыре");"5";"пять");"6";"шесть");"7";"семь");"8";"восемь");"9";"девять");"0";""))&" копеек";"одна копеек";"одна копейка");"две копеек";"две копейки");"три копеек";"три копейки");"четыре копеек";"четыре копейки");" копеек";"");" ";"Z"));"z";" ");"Z";" "))
В белорусских рублях
Тройной клик по формуле выделит ее целиком.
=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");1))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");2;200)&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")
Если вам не нужно делать первую букву заглавной, просто “оберните” всю эту гигантскую формулу функцией СТРОЧН.
Сумма прописью — формула для Openoffice Calc
У формулы выше были проблемы с импортом в Openoffice, т.к. тот в отличие от Excel (2007 и старше), поддерживает максимум 42 уровня вложенности в формулах, а не 64.
Поэтому пришлось полностью переделать логику формулы и сделать ее сложной формулой массивов.
Так она выглядит в Excel:
=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)&" "&ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2) &" копеек";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&ИНДЕКС({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};ПРАВСИМВ(ОКРУГЛ(A1*100;0))+1))
А так – после импорта в Openoffice Calc:
=UPPER(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)
Сумма прописью в Google Spreadsheets
Прелесть формул выше в том, что они с минимальными модификациями портируются в Google Таблицы, где их замечательно можно использовать.
Ниже пример таблицы с суммой прописью:
Посмотреть сам файл и скопировать к себе можно по ссылке:
https://docs.google.com/spreadsheets/d/1dmqEB3TehEGmWfaxRmIQ9LXjGal439_YgKxZhbK0Ods/edit?usp=sharing
UDF-функции надстройки !SEMTools
Для тех, у кого ОС Windows и Excel 2010 и выше, и кто не готов пользоваться указанными формулами, есть простое решение – установить надстройку, в которой присутствует код, скрывающий все эти вычисления “под капот”. Одна из таких – разработанная мной надстройка !SEMTools.
В ней для решения задачи преобразования числа и суммы в их прописной вариант есть 2 лаконичные функции:
Они доступны абсолютно бесплатно безо всяких ограничений в любой версии надстройки, приобретать полную версию не обязательно.
Единственное ограничение – эти формулы будут работать только на тех компьютерах, где установлена надстройка.
Процедуры !SEMTools
Еще более простое, но не всегда удобное решение – процедуры (макросы). В надстройке для Excel !SEMTools доступны макросы преобразования чисел в сумму и число прописью в 1 клик.
Вызов процедур находится в меню “Изменить символы” в группе “ИЗМЕНИТЬ” на панели надстройки. Макрос преобразует числа на месте, превращая их в текст. Можно выделить как одну, так и несколько ячеек:
Функционал доступен в полной версии надстройки.
Перевод чисел прописью в другие падежи
Зачастую после получения числа или суммы прописью нужно указать его в другом падеже.
Например, “сумма в размере пятисот тысяч трехсот трех рублей”. !SEMTools справляется и с этой задачей – смотрите раздел склонение по падежам в Excel.
Надстройка !SEMTools для Excel поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!
- Сумма прописью
- Разное
Не мой макрос, — нашел в интернете
Вроде работает как надо
Используется на листе Excel как формула =ДробноеЧислоПрописью(A1)
Function ДробноеЧислоПрописью(chislo) ' взято здесь: forum .vingrad .ru/act-ST/f-131/t-106328.html# On Error Resume Next chislo2 = Int(chislo) chislo3 = Round((chislo - chislo2), 3) '-остаток LengthChislo = Len(chislo2) ' - определяем число циклов по целой части Start = 0 tekst = "" For x = LengthChislo To 1 Step -1 ' присвоение порядка числа Start = Start + 1 ' начальная позиция числа для изъятия в циклах '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Select Case x Case 12 ' - сотни миллиардов num = Mid(chislo2, Start, 1) * 100 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" Case 11 ' - десятки миллиардов num = Mid(chislo2, Start, 2) * 1 If num >= 1 And num <= 20 Then ' - формируем десятки миллиардов за один цикл sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = Mid(chislo2, Start, 2) * 1 If Right(sclonMlrd, 1) * 1 = 0 Then sclonMlrd = 0 ' ситуация, когда склоняемое кратно 10 Start = Start + 1 x = x - 1 Else ' - формируем десятки миллиардов за 2 цикла num = Mid(chislo2, Start, 1) * 10 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" End If Case 10 ' - формируем хвост десятка миллиардов num = Mid(chislo2, Start, 1) * 1 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = Mid(chislo2, Start, 1) * 1 '-------------------------------------------------------
Case 9 ' - сотни миллионов num = Mid(chislo2, Start, 1) * 100 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" Case 8 ' - десятки миллионов num = Mid(chislo2, Start, 2) * 1 If num >= 1 And num <= 20 Then ' - формируем десятки миллионов за один цикл sclon1000 = -1 '- не склоняем sclon1000000 = Mid(chislo2, Start, 2) * 1 sclonMlrd = -1 '- не склоняем If Right(sclon1000000, 1) * 1 = 0 Then sclon1000000 = 0 ' ситуация, когда склоняемое 20 Start = Start + 1 x = x - 1 Else ' - формируем десятки миллионов за 2 цикла num = Mid(chislo2, Start, 1) * 10 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" End If Case 7 ' - формируем хвост десятка миллионов num = Mid(chislo2, Start, 1) * 1 sclon1000 = -1 '- не склоняем sclon1000000 = Mid(chislo2, Start, 1) * 1 sclonMlrd = -1 '- не склоняем '------------------------------------------------------- Case 6 ' - сотни тысяч num = Mid(chislo2, Start, 1) * 100 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" If num <> 0 And Mid(chislo2, Start + 1, 1) = "0" _ And Mid(chislo2, Start + 2, 1) = "0" _ Then 'если ровные сотни, sclon1000 = 0 'то сразу добавляем sclon сотен x = x - 2 ' и перескакиваем через циклы десятков тысяч Start = Start + 2 ' за 2 цикла End If Case 5 ' - десятки тысяч num = Mid(chislo2, Start, 2) * 1 If (num >= 1 And num <= 20) Or (num <> 0 And Right(num, 1) * 1 = 0) Then ' - формируем десятки тысяч за один цикл sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем sclon1000 = Mid(chislo2, Start, 2) * 1 If Right(sclon1000, 1) * 1 = 0 Then sclon1000 = 0 ' ситуация, когда склоняемое кратно десяти Start = Start + 1 x = x - 1 Else ' - формируем десятки тысяч за 2 цикла num = Mid(chislo2, Start, 1) * 10 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" End If
Case 4 ' - формируем хвост десятка тысяч If Mid(chislo2, Start, 1) * 1 = 0 Then 'если десятков тысяч нет то не используем sclon1000 num = Mid(chislo2, Start, 1) * 1 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" Else ' -используем sclon num = Mid(chislo2, Start, 1) * 1 sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем sclon1000 = Mid(chislo2, Start, 1) * 1 End If '------------------------------------------------------- Case 3 ' - сотни num = Mid(chislo2, Start, 1) * 100 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем scl2 = "" Case 2 ' - десятки num = Mid(chislo2, Start, 2) * 1 If (num >= 1 And num <= 20) Or (num <> 0 And Right(num, 1) * 1 = 0) Then ' - формируем десятки за один цикл sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем Start = Start + 1 x = x - 1 Else ' - формируем десятки за 2 цикла num = Mid(chislo2, Start, 1) * 10 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем End If Case 1 ' - формируем хвост десятка num = Mid(chislo2, Start, 1) * 1 sclon1000 = -1 '- не склоняем sclon1000000 = -1 '- не склоняем sclonMlrd = -1 '- не склоняем End Select '------------------------------------------------------- Call Chisla(num, txt, x, txt2, chislo3) '------------------------------------------------------- If sclon1000 <> -1 Then Select Case sclon1000 Case 1 scl = "тысяча" Case 2 To 4 scl = "тысячи" Case 5 To 19 scl = "тысяч" Case 0 scl = "тысяч" End Select scl2 = scl & " " End If If sclon1000000 <> -1 Then Select Case sclon1000000 Case 1 scl = "миллион" Case 2 To 4 scl = "миллиона" Case 5 To 19 scl = "миллионов" Case 0 scl = "миллионов" End Select scl2 = scl & " " End If
If sclonMlrd <> -1 Then Select Case sclonMlrd Case 1 scl = "миллиард" Case 2 To 4 scl = "миллиарда" Case 5 To 19 scl = "миллиардов" Case 0 scl = "миллиардов" End Select scl2 = scl & " " End If tekst = tekst & txt2 & scl2 Next x ' <<<СЧИТАЕМ ДОЛИ, ЕСЛИ они конечно ЕСТЬ <<< If (chislo - chislo2) > 0 Then If Right(chislo2, 1) = "1" Then tekst = tekst & " целая " Else: tekst = tekst & " целых " End If LengthChislo = Len(chislo3) - 2 ' - здесь недомнажаем на 1, т.к. необходим именно тестовый формат для корректной работы с такими числами, как напр. ",003" chislo3 = Right(chislo3, LengthChislo) Start = 0 For x = LengthChislo To 1 Step -1 ' присвоение порядка числа Start = Start + 1 ' начальная позиция числа для изъятия в циклах '<<<<<<<< Select Case x Case 3 ' - тысячные num = Mid(chislo3, Start, 1) * 100 sclon1000 = -1 sclon100 = -1 '- не склоняем sclon10 = -1 scl2 = "" Case 2 ' - сотые num = Mid(chislo3, Start, 2) * 1 If (num >= 1 And num <= 20) Or (num <> 0 And Right(num, 1) * 1 = 0) Then ' - формируем десятки за один цикл If LengthChislo = 3 Then sclon1000 = num Else: sclon1000 = -1 End If If LengthChislo = 2 Then sclon100 = num Else: sclon100 = -1 '- не склоняем End If If LengthChislo = 1 Then sclon10 = num Else: sclon10 = -1 End If Start = Start + 1 x = x - 1 Else ' - формируем десятки за 2 цикла num = Mid(chislo3, Start, 1) * 10 sclon1000 = -1 '- не склоняем sclon100 = -1 '- не склоняем sclon10 = -1 '- не склоняем End If
Case 1 ' - формируем хвост десятка num = Mid(chislo3, Start, 1) * 1 If LengthChislo = 3 Then sclon1000 = num Else: sclon1000 = -1 End If If LengthChislo = 2 Then sclon100 = num Else: sclon100 = -1 '- не склоняем End If If LengthChislo = 1 Then sclon10 = num Else: sclon10 = -1 End If End Select '------------------------------------------------------- Call Chisla(num, txt, x, txt2, chislo3) '------------------------------------------------------- If sclon1000 <> -1 Then Select Case sclon1000 Case 1 scl = "тысячная" Case Else scl = "тысячных" End Select scl2 = scl & " " End If If sclon100 <> -1 Then Select Case sclon100 Case 1 scl = "сотая" Case Else scl = "сотых" End Select scl2 = scl & " " End If If sclon10 <> -1 Then Select Case sclon10 Case 1 scl = "десятая" Case Else scl = "десятых" End Select scl2 = scl & " " End If tekst = tekst & txt2 & scl2 Next x End If ДробноеЧислоПрописью = tekst End Function
Sub Chisla(num, txt, x, txt2, chislo3) Select Case num Case 0 txt = "" Case 1 txt = "один" If x = 4 Or (chislo3 <> 0 And x = 1) Then ' (если есть дробная часть) txt = "одна" End If Case 2 txt = "два" If x = 4 Or (chislo3 <> 0 And x = 1) Then ' (если есть дробная часть) txt = "две" End If Case 3 txt = "три" Case 4 txt = "четыре" Case 5 txt = "пять" Case 6 txt = "шесть" Case 7 txt = "семь" Case 8 txt = "восемь" Case 9 txt = "девять" Case 10 txt = "десять" Case 11 txt = "одиннадцать" Case 12 txt = "двенадцать" Case 13 txt = "тринадцать" Case 14 txt = "четырнадцать" Case 15 txt = "пятнадцать" Case 16 txt = "шестнадцать" Case 17 txt = "семнадцать" Case 18 txt = "восемнадцать" Case 19 txt = "девятнадцать" Case 20 txt = "двадцать" Case 30 txt = "тридцать" Case 40 txt = "сорок" Case 50 txt = "пятьдесят" Case 60 txt = "шестьдесят" Case 70 txt = "семьдесят" Case 80 txt = "восемьдесят" Case 90 txt = "девяносто" Case 100 txt = "сто" Case 200 txt = "двести" Case 300 txt = "триста" Case 400 txt = "четыреста" Case 500 txt = "пятьсот" Case 600 txt = "шестьсот " Case 700 txt = "семьсот" Case 800 txt = "восемсот" Case 900 txt = "девятьсот" End Select If txt <> "" Then txt2 = txt & " " Else txt2 = txt End Sub
- 16275 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
MulTEx »
1 Май 2011 75216 просмотров
ПрописьСумма
Данная функция является частью надстройки MulTEx
Подобная функция широко востребована работниками экономических и бухгалтерских областей, да и, наверное, всех, кто так или иначе связан с учетом денежных средств и составлением всевозможных бланков в Excel с использованием бланков. Данная функция выводит в пропись указанное число. Т.е. из числа 123 будет получено сто двадцать три. Возможно выводить рубли и копейки (сто двадцать три рубля двенадцать копеек), целые и сотые (сто двадцать три целых двенадцать сотых) и любые произвольные единицы измерений, а так же указать язык вывода текста и количество знаков после запятой для перевода в пропись. На данный момент в единицах по умолчанию доступно три языка: Русский, Английский и Украинский.
Вызов команды через стандартный диалог:
Мастер функций —Категория «MulTEx» —ПрописьСумма
Вызов с панели MulTEx:
Сумма/Поиск/Функции —Текстовые —ПрописьСумма
Синтаксис:
=ПрописьСумма(I9)
=ПрописьСумма(I9;2;2;»RUS»)
=ПрописьСумма(I9;2;1;»RUS»;»целая,целых,целых,сотая,сотых,сотых»; ИСТИНА)
=ПрописьСумма(I9;2;1;»RUS»;»целая,целых,целых,сотая,сотых,сотых»; 1; 3)
=ПрописьСумма(I9;2;1;»UA»;»целая,целых,целых,сотая,сотых,сотых»; 1; 3)
=ПрописьСумма(I9;2;1;»UKR»;»целая,целых,целых,сотая,сотых,сотых»; 1; 3)
=ПрописьСумма(I9;2;1;»RUS»;»целая,целых,целых,сотая,сотых,сотых»; 1; 3; ИСТИНА)
Число(I9) — указывается число, либо ссылка на ячейку с числом, которое необходимо преобразовать. Вместо ссылки на ячейку(I9) можно напрямую указать число
=ПрописьСумма(145;1;1)
Рубли(2) — необязательный аргумент. Позволяет вывести прописью целую часть числа.
Если присвоено значение 1 — после целой части числа добавляется подпись Рублей. Само число, обозначающее рубли, при этом не преобразуется(1 рубль, 7 рублей).
Если присвоено значение 2 — после целой части числа добавляется подпись Рублей. Само число, обозначающее рубли, при этом преобразуется в текстовое представление(Один рубль, Семь рублей).
Если не указан, либо присвоено значение 0 — только пропись числа(Один), без указания единиц(рубли).
Копейки(1) — необязательный аргумент. Позволяет вывести прописью дробную часть числа.
Если указан, либо присвоено значение 1 — после дробной части числа добавляется подпись Копеек. Само число, обозначающее копейки, при этом не преобразуется(Два рубля 1 копейка, Два рубля 4 копейки).
Если указан, либо присвоено значение 2 — после дробной части числа добавляется подпись Копеек. Само число, обозначающее копейки, при этом преобразуется в текстовое представление этого числа(Два рубля одна копейка, Два рубля четыре копейки).
Если аргумент Копейки не указан, либо ему присвоено значение 0 или ЛОЖЬ(FALSE) — то будет выведена пропись только целого числа, без учета знаков после запятой(Два). Т.е. копейки в данном случае в пропись не выводятся.
Аргументы Рубли и Копейки можно изменять независимо друг от друга. Например, если для числа 23,78 указать Рубли — 1, а Копейки — 0, то в пропись будет выведено: 23 рубля. Если указать Рубли — 2, а Копейки — 1, то в пропись будет выведено: двадцать три рубля 78 копеек
Язык(«RUS») — необязательный аргумент. Определяет язык для вывода прописи чисел. Не чувствителен к регистру. Доступны варианты языков:
- «RUS» или не указан: текст будет выведен на русском языке. 23,78 будет записано как «двадцать три рубля семьдесят восемь копеек»
- «EN»(«en»,»En»): текст будет выведен на английском языке. 23,78 будет записано как «Twenty three dollars seventy eight cents»
- «UKR» или «UA»: текст выводится на украинском языке: 23,78 будет записано как «двадцять три гривні сімдесят вісім копійок».
Следует учитывать, что если аргумент Единицы указан как сочетание собственных единиц, то язык прописи единиц может отличаться от указанного в параметре Язык. Например, если для числа 23,78 указать Единицы «целая,целых,целых,сотая,сотых,сотых» и установить язык «en», то результат будет некорректный: Twenty three целых seventy eight сотых. Чтобы правильно отобразить на английском языке целые и сотые, аргумент Единицы необходимо записать так: «point,points,points,hundredths,hundredths,hundredths».
Единицы(«целая,целых,целых,сотая,сотых,сотых») — необязательный аргумент. Данный аргумент отвечает за проставление обозначений единиц измерения численных показателей. В аргументе необходимо через запятую(без пробелов!) указать единицы измерений для числа.
Как это работает на примере «рубль,рубля,рублей,копейка,копейки,копеек»: первые три слова (рубль,рубля,рублей) отвечают за обозначение единиц для целой части числа:
- рубль — указывается склонение единицы для числа 1
- рубля — указывается склонение единицы для чисел 2,3,4
- рублей — указывается склонение единицы для числа 5 и выше
последние три слова (копейка,копейки,копеек) отвечают за обозначение единиц для дробной части числа:
- копейка — указывается склонение единицы для числа 1
- копейки — указывается склонение единицы для чисел 2,3,4
- копеек — указывается склонение единицы для числа 5 и выше
По умолчанию (если аргумент Единицы не указывать) применяется «рубль,рубля,рублей,копейка,копейки,копеек» для русского языка(«RUS») и «dollar,dollars,dollars,cent,cents,cents» для английского языка(«EN»).
Если указать «целая,целых,целых,сотая,сотых,сотых», то для числа 23,78 в пропись будет выведено:
- Двадцать три целых семьдесят восемь сотых — при указании аргументов Рубли и Копейки равными 2
- 23 целых 78 сотых — при указании аргументов Рубли и Копейки равными 1
Если аргументом Единицы указать пустую строку — «», то пропись единиц просто не будет произведена и для числа 24,78 будет выведено: двадцать четыре семьдесят восемь.
Таким образом можно указать практически любую валюту и любые единицы измерений: от вагонов до миллилитров. Это делает функцию ПрописьСумма очень гибкой и более универсальной, применимой практически в любом документе, где необходимо вывести в пропись те или иные данные. При этом единицы можно записывать на любом языке.
ПропНач(ИСТИНА) — Необязательный аргумент. Указывается логическое значение ИСТИНА(TRUE) или ЛОЖЬ(FALSE) или выражение, возвращающее логическое значение. Если указано ИСТИНА или 1, то первая буква результирующего текста будет преобразована в заглавную: Два рубля одна копейка. Если не указан, указано ЛОЖЬ или 0, то весь текст будет записан строчными буквами: два рубля одна копейка.
ЧислЗнаков(3) — Необязательный аргумент. Указывается целое число, означающее количество знаков после запятой, которое будет выводиться в пропись. По умолчанию, если не указано, принимает значение 2. Необходим для вывода в пропись единиц, измеряемых числами с тремя и более знаками после запятой, например тонны и килограммы, где килограммы всегда должны обозначаться именно тремя знаками: 3,472. После преобразования получится «три тонны четыреста семьдесят два килограмма». Если число содержит большее число знаков после запятой, чем указано аргументом ЧислЗнаков, такое число будет округлено до указанного количества знаков после запятой.
Допускается указание до 5 знаков после запятой. Если будет указано число больше 5, то функция все равно примет во внимание только 5 знаков.
ВСкобках(ИСТИНА) — Необязательный аргумент. Указывается логическое значение ИСТИНА(TRUE) или ЛОЖЬ(FALSE) или выражение, возвращающее логическое значение. Если указано ИСТИНА или 1, то в результате будет выведено сначала само число, а потом его пропись в скобках: 2 302 (две тысячи триста два) рубля 01 копейка. Если не указан, указано ЛОЖЬ или 0, то пропись выводится в соответствии с остальными параметрами. Если параметр ВСкобках указан как 1 или ИСТИНА, а параметр Рубли как 0, то он будет проигнорирован и текст в скобках все равно будет записан прописью.
Несколько практических примеров указания аргументов для вывода прописи:
- Дата:
Число = 1,07
Рубли — 1
Копейки — 1
Единицы — «год,года,лет,месяц,месяца,месяцев»
Результат — 1 год 07 месяцев
Если для Единиц указать «месяц,месяца,месяцев,день,дня,дней» — то получим — 1 месяц 07 дней - Единицы измерений:
Число = 1,07
Рубли — 1
Копейки — 1
Единицы — «ящик,ящика,ящиков,коробка,коробки,коробок»
ПропНач — 0 (или ЛОЖЬ)
ЧислЗнаков — не указан
Результат — 1 ящик 07 коробокЧисло = 68,39
Рубли — 2
Копейки — 2
Единицы — «целая,целых,целых,сотая,сотых,сотых»
ПропНач — 0 (или ЛОЖЬ)
ЧислЗнаков — не указан
Результат — шестьдесят восемь целых тридцать девять сотыхЧисло = 68,396
Рубли — 2
Копейки — 2
Язык — «RUS»
Единицы — «целая,целых,целых,тысячная,тысячных,тысячных»
ПропНач — 1 (или ИСТИНА)
ЧислЗнаков — 3
Результат — Шестьдесят восемь целых триста девяносто шесть тысячныхЧисло = 68,39
Рубли — 2
Копейки — 2
Язык — «EN»
Единицы — «point,points,points,hundredths,hundredths,hundredths»
ПропНач — 1 (или ИСТИНА)
ЧислЗнаков — 2
Результат — Sixty eight points thirty nine hundredths - Валюта:
Число = 5,44
Рубли — 2
Копейки — 2
Язык — не указан(или «ru»)
Единицы — не указан
ПропНач — 0 (ЛОЖЬ) или не указан
ЧислЗнаков — не указан
Результат — пять рублей сорок четыре копейкиЧисло = 25,44
Рубли — 2
Копейки — 2
Язык — «En»
Единицы — не указан
ПропНач — не указан
ЧислЗнаков — не указан
Результат — twenty five dollars and forty four centsЧисло = 25,44
Рубли — 2
Копейки — 2
Язык — «UA»
Единицы — не указан
ПропНач — не указан
ЧислЗнаков — не указан
Результат — двадцять п’ять гривень сорок чотири копійкиЧисло = 2302
Рубли — 0
Копейки — 0
Язык — «RUS»
Единицы — «»
ПропНач — 1
ЧислЗнаков — 2
Результат — 2302(две тысячи триста два) - Расстояния:
Число = 14021,22
Рубли — 2
Копейки — 2
Единицы — «миля,мили,миль,ярд,ярда,ярдов»
ПропНач — не указан
ЧислЗнаков — не указан
Результат — четырнадцать тысяч двадцать одна миля двадцать два ярда - Вес:
Число = 3,472
Рубли — 2
Копейки — 2
Язык — «rus»
Единицы — «тонна,тонны,тонн,килограмм,килограмма,килограмм»
ПропНач — 1
ЧислЗнаков — 3
Результат — Три тонны четыреста семьдесят два килограмма
Примечание: данная функция обрабатывает числовые значения максимальной величины Сотни триллионов. Число более 999 999 999 999 999,99999 будет преобразовано некорректно, т.к. сам Excel с числами, превышающими сотни триллионов, корректно работать не умеет(последние цифры будут заменены нулями).
Число прописью в Excel (динамический вариант)
Запишем число прописью в Excel без использования VBA. Вспомогательные диапазоны разместим в личной книге макросов. Кроме того, добавим руб./коп. для записи денежных сумм, например: четыреста сорок четыре руб. 00 коп.
Иногда требуется записать число прописью: 256 записать как двести пятьдесят шесть. Набирать этот текст безумно скучно, кроме того легко ошибиться, поэтому давно написаны макросы на VBA, которые легко справляются с этой задачей.
В статье Число прописью (статичный вариант) приведено решение этой задачи позволяющей перевести число в текстовую форму по следующему алгоритму:
- вводим число в определенную ячейку;
- с помощью формул, вспомогательных диапазонов с текстом и имен получаем число прописью;
- копируем результат вычисления формулы (число прописью) в Буфер обмена;
- вставляем текст в любую открытую книгу «Как значение» ( Главная/ Буфер обмена/ Вставить/ Вставить как значение ).
Это не всегда удобно. Хочется по аналогии с функциями на VBA написать что то вроде =ЧислоПрописью(А1) и получить результат. Все промежуточные вычисления должны быть «за кадром». Но, создание пользовательских функций это прерогатива VBA.
Тем не менее, можно предложить следующее решение с помощью обычных формул:
- разместить в Личной книге макросов (PERSONAL.XLSB) вспомогательные диапазоны, содержащие некоторые числа прописью (от 0 до 999);
- создать формулу, переводящую в текст любое число от 0 до 1 млрд. с помощью вспомогательных диапазонов и имен;
- в любой книге, где требуется записать число прописью создать Именованную формулуЧислоПрописью с относительной ссылкой на исходное число (относительную ссылку можно создать так, чтобы она позволяла выводить число прописью, например, в соседней ячейке слева от исходного числа).
В результате вышеуказанных манипуляций можно будет, например, записав в ячейке G6 исходное число, а в ячейке G7 формулу =ЧислоПрописью , и получить нужный результат.
Все это реализовано в файле примера .
Как и в примере статьи Число прописью (статичный вариант) на листе Служ размещены вспомогательные диапазоны, содержащие некоторые числа прописью в Excel.
Теперь эти диапазоны длиннее (числа от 1 до 999) и содержат слова тысяча и миллион с учетом склонения. Также создан диапазон для отображения слова Рублей с учетом склонения.
Теперь все готово для записи формулы переводящей исходное число (ячейка B6) в текст:
=СЖПРОБЕЛЫ(
ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «&
ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «&
ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))
Задача в принципе решена, осталось только разместить вспомогательные диапазоны в Личную книгу макросов PERSONAL.XLSB, для того чтобы формула, переводящая число в текст была доступна в любой книге.
В Windows XP эта книга находится в папке C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда она будет автоматически загружается при каждом запуске приложения Excel. В Windows Vista эта книга хранится в папке C:Usersимя_пользователяApplication DataMicrosoftExcelXLStart.
Если Личная книга макросов еще не была создана, то скопируйте лист Служ из файла примера в новую книгу, и сохраните ее в директорию C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для XP) под именем PERSONAL.XLSB.
Если Личная книга макросов уже была ранее создана, то через меню Вид/ Окно/ Отобразить отобразите ее, скопируйте в нее лист Служ, сохраните Личную книгу макросов (можно ее потом скрыть Вид/ Окно/ Скрыть).
Теперь откройте книгу, в которой нужно записать число прописью. Исходное число разместите, например, в ячейке А1. Введите в нужную ячейку формулу:
=ЕСЛИ(A1;СЖПРОБЕЛЫ(
ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «&
ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «&
ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00″)&» коп.»);»ноль руб. 00 коп.»)
Формула отобразит число прописью. Ячейки, содержащие исходное число и формулу, можно перенести в любое место в книге или даже в другую книгу.
Чтобы еще больше приблизиться к идеалу создадим именованную формулу ЧислоПрописью. Для этого:
- выделите ячейку B1;
- через меню Формулы/ Определенные имена/ Присвоить имя создайте именованную формулу ЧислоПрописью;
- в поле Диапазон введите формулу указанную выше:
- нажмите ОК;
- в ячейке В1 введите формулу =ЧислоПрописью
- ячейка В1будет содержать число прописью.
Теперь ячейки А1 и В1 можно скопировать и перенести в любое место в книге, но они должны быть всегда на одной строке и в соседних столбцах, т.к. именованной формуле использована относительная ссылка.
При пересылке файла, например, по электронной почте, формула будет продолжать работать, не смотря на то, что Личная книга макросов не пересылалась, т.е. Ваши коллеги получившие файл, смогут с ним работать как Вы.
Сумма прописью в Microsoft Excel
При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.
Использование надстройки
В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.
Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.
- Открываем программу Excel и переходим во вкладку «Файл».
Перемещаемся в раздел «Параметры».
В активном окне параметров переходим в раздел «Надстройки».
Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».
В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».
Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».
Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».
Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.
Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».
Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5) , то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».
Если вы введете в ячейку формулу =Сумма_прописью(A2) , то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.
Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Число прописью в excel
- 19 Апрель, 2013 —
- Уроки Excel —
- Tags :
- 121 Comments
Как написать число прописью в excel? Такой вопрос, пожалуй, чаще всего возникает в бухгалтерской сфере использования excel.
Мне известны три варианта:
1-сделать это традиционно вручную
2- использовать макросы
Вручную — долго, с макросами процедуру придется проделывать каждый раз, поэтому рассмотрим вариант «другое».
Данный способ позволит использовать функцию «суммапрописью» всегда, когда понадобится, с минимальными усилиями.
Для этого скачайте специальную програмку здесь, и далее следуюйте инструкции:
— Скопировать файл MYXAS32.XLL в папку «C:Program FilesMicrosoft OfficeOfficeLibrary», если Office у вас 2000/ХР или в папку «Library» по похожему пути.
— Открыть Excel >> меню «Сервис» >> «Надстройки» >> поставить там галочку напротив «Excellerator». Если такого пункта нет, то нажать кнопку обзор и найти файл MYXAS32.XLL, выбрать его, нажать «Ок»
— И все!
— Теперь для того чтобы у вас писалась сумму прописью надо в ту ячейку, где должна быть сумма прописью вставить формулу «=суммапрописью(A1)», где А1 — сумма в числовом формате
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
1.если нужно поменять валюту, делаем настройки как здесь, вместо долларов можно вписывать любой вид валюты.
2. если нужно вообще убрать валюту, чтобы просто писалось число прописью без знаков после запятой, делаем настройки как здесь. В графе падежи рублей и падежи копеек после запятой стоит ПРОБЕЛ-это важно.
3.если надо, чтобы копейки после запятой не указывались, в настройках функции дробность ставьте -1, пример
4. если нужно, чтобы писалась не валюта, а просто математические названия-целые, десятые, сотые, тысячные, делаем настройки как здесь, но можно не более трех знаков после запятой.
5. если надо, чтобы сумма указывалась в скобках, в строке формул должно быть вот так , где В3 — это ячейка с числовым значением.
поведал admin
Спасибо за ответ, но к сожалению, без копеек пока никак(
Петр: к сожалению, копейки в этой надстройке словами не будут писаться:( может их убрать вообще? и нет проблем:)
Добрый день
подскажите что нужно сделать, чтобы копейки тоже писались словами
Спасибо
Рома: пишите в строке формул как тут B3 — это ячейка с числом, которое должно быть прописью.
Татьяна: вот посмотрите на рисунке ,что должно быть в строке формул. там кавычки должны быть как две палочки вертикальные, у меня просто рекдактор их автоматом изменяет на вот такие «
Здравствуйте. программа замечательно, здорово все, но помогите не могу скобки по вашей формуле поставить. Ошибку ставит и все. Можно как то по другому скобки поставить в прописи суммы?
здравствуйте , как сделать сумму в скобках , как в примере не получается : 5. если надо, чтобы сумма указывалась в скобках, в строке формул должно быть вот так =»(«&ТЕКСТ(СуммаПрописью(B3);»0″)&»)» , где В3 — это ячейка с числовым значением.
Натали: трудно сказать, в чем причина, надо смотреть конкретно ваши листы. присылайте на почту vizushka@mail.ru
Помогите, пожалуйста, все прописала и все работало, по вашим инструкциям, спасибо! Но через пару месяцев началось что-то непонятное, при копировании «листа» в excel в пределах одной «книги» сама формула «сумма прописью» копируется, но значение нет? и ставится #ИМЯ? хотя при нажатии на эту ячейку в строке прописана формула? что это может быть и как исправить?
Евгений: аа, не поняла сразу:)) да, с 1 и 2 провал:)) но дописать я не смогу помочь:(
Ок. Но у меня получится один гривн и два гривны, а правильно должно быть одна гривна и две гривны. Фишка в том, что формулу писали под рубль. Рубль — мужской род, гривна — женский. То есть в самом XLL файле должно быть прописано 1 = «одна», 2 = «две». Как это сделать я не знаю, может подскажете?
СПС
Евгений: да, вы вписывайте по родам и падежам валюту как здесь , только гривна, гривны, гривен,1 и копейки также по падежам, и все.
Добрый день.
Подскажите, есть ли возможность подстроить формулу под род (мужской или женский) валюты? Например, доллар — один, а гривна — одна. Таким образом, используя данную версию формулы у меня получится один гривна, два гривны. Должно быть одна гривна, две гривны.
СПС
Прошу прощения, в предыдущий текст вкрались досадные ошибки, поэтому предлагаю исправленный текст:
В некоторых документах (хотя и нечасто) требуется, чтобы строка «суммы прописью» состояла из числового значения
основной валюты (в данном случае — рублей) с последующей текстовой расшифровкой в скобках, названия валюты, числового
значения дробных денежных единиц и их названия.
Например: «4533 (четыре тысячи пятьсот тридцать три) рубля 00 копеек.», или «4533 (четыре тысячи пятьсот тридцать три) рубля 00 копеек» — без точки в конце фразы,
или, когда количество дробных денежных единиц равно нулю и отображать их не нужно: «4533 (четыре тысячи пятьсот тридцать три) рубля. (c точкой или без)».
Создать такую автоматически скомпонованную строку непросто, но, как говорится, нет ничего невозможного…
Ниже мной предлагаются варианты формул, позволяющие полностью автоматически формировать указанные строки.
Примечание 1: Все формулы действуют только в русскоязычной версии «Excel»;
Примечание 2: Разумеется, адреса ячеек в формулах (т.е.: А1, А2, А3, А4) приведены произвольно.
Вариант № 1: нужно получить «4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек.» (с точкой в конце строки или без).
Значение в ячейке A1(в финансовом формате без указания валюты): 4000,00
Значение в ячейке A2 (в финансовом формате без указания валюты): 533,80
Формула в ячейке А3: =СУММ(А1:А2)
Результат в ячейке А3 (в финансовом формате без указания валюты, или в числовом формате типа «0,00″): 4533,80
Формула в ячейке А4:
=ТЕКСТ(ЦЕЛОЕ(А3);0)&» «&»(«&СЖПРОБЕЛЫ(СТРОЧН(ТЕКСТ(СуммаПрописью(A3;» , , ,0″;» , , ,1″;-1);0)))&»)»&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0))))&» «&ПРАВСИМВ(ТЕКСТ(А3;»0,00″);2)&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0))))&».»
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек.
Если точка в конце строки не нужна, то формула выглядит так:
=ТЕКСТ(ЦЕЛОЕ(A22);0)&» «&»(«&СЖПРОБЕЛЫ(СТРОЧН(ТЕКСТ(СуммаПрописью(A3;» , , ,0″;» , , ,1″;-1);0)))&»)»&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3;;;-1);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3;;;-1);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3;;;-1);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3;;;-1);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3;;;-1);0))))&» «&ПРАВСИМВ(ТЕКСТ(A3;»0,00″);2)&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(A3);0))))
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек
Если при нулевых значениях копеек информация о них не должна отображаться, то:
Вариант № 2: нужно получить «4533 (четыре тысячи пятьсот тридцать три) рубля» (с точкой в конце строки или без).
Значение в ячейке A1(в финансовом формате без указания валюты): 4000,00
Значение в ячейке A2 (в финансовом формате без указания валюты): 533,00
Формула в ячейке А3: =СУММ(А1:А2)
Результат в ячейке А3 (в финансовом формате без указания валюты, или в числовом формате типа «0,00″): 4533,00
Формула в ячейке А4:
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля (без точки в конце)
Если нужно, чтобы в конце этого текста стояла точка, замените самый последний символ формулы /»»/ на /».»/,
например: формула…;0))));»») => формула…;0))));».»)
Если в тексте допускаются несклоняемые названия денежных единиц (например, сокращения: «руб.», «коп.»), то формулы
значительно упрощаются:
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) руб. 80 коп.
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) руб.
С уважением, Мартынов С.А.
В некоторых документах (хотя и нечасто) требуется, чтобы строка «суммы прописью» состояла из числового значения
основной валюты (в данном случае — рублей)с последующей текстовой расшифровкой в скобках, названия валюты, числового
значения дробных денежных единиц и их названия.
Например: «4533 (четыре тысячи пятьсот тридцать три) рубля 00 копеек.», или «4533 (четыре тысячи пятьсот тридцать три) рубля 00 копеек» — без точки в конце фразы,
или, когда количество дробных денежных единиц равно нулю и отображать их не нужно: «4533 (четыре тысячи пятьсот тридцать три) рубля. (точкой или без)».
Создать такую автоматически скомпонованную строку непросто, но, как говорится, нет ничего невозможного…
Ниже мной предлагаются варианты формул, позволяющие полностью автоматически формировать указанные строки.
Примечание 1: Все формулы действуют только в русскоязычной версии «Excel»;
Примечание 2: Разумеется, адреса ячеек в формулах (т.е.: А1, А2, А3, А4) приведены произвольно.
Вариант № 1: нужно получить «4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек.» (с точкой в конце строки или без).
Значение в ячейке A1(в финансовом формате без указания валюты): 4000,00
Значение в ячейке A2 (в финансовом формате без указания валюты): 533,80
Формула в ячейке А3: =СУММ(А1:А2)
Результат в ячейке А3 (в финансовом формате без указания валюты, или в числовом формате типа «0,00″): 4533,80
Формула в ячейке А4:
=ТЕКСТ(ЦЕЛОЕ(А3);0)&» «&»(«&СЖПРОБЕЛЫ(СТРОЧН(ТЕКСТ(СуммаПрописью(G22;» , , ,0″;» , , ,1″;-1);0)))&»)»&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3;;;-1);0))))&» «&ПРАВСИМВ(ТЕКСТ(А3;»0,00″);2)&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(А3);0))))&».»
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек.
Если точка в конце строки не нужна, то формула выглядит так:
=ТЕКСТ(ЦЕЛОЕ(G22);0)&» «&»(«&СЖПРОБЕЛЫ(СТРОЧН(ТЕКСТ(СуммаПрописью(G22;» , , ,0″;» , , ,1″;-1);0)))&»)»&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22;;;-1);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22;;;-1);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22;;;-1);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22;;;-1);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22;;;-1);0))))&» «&ПРАВСИМВ(ТЕКСТ(G22;»0,00″);2)&» «&ПСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22);0));НАЙТИ(«*»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22);0));» «;»*»;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22);0)))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22);0));» «;»»))))+1;ДЛСТР(СЖПРОБЕЛЫ(ТЕКСТ(СуммаПрописью(G22);0))))
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля 80 копеек
Если при нулевых значениях копеек информация о них не должна отображаться, то:
Вариант № 2: нужно получить «4533 (четыре тысячи пятьсот тридцать три) рубля» (с точкой в конце строки или без).
Значение в ячейке A1(в финансовом формате без указания валюты): 4000,00
Значение в ячейке A2 (в финансовом формате без указания валюты): 533,00
Формула в ячейке А3: =СУММ(А1:А2)
Результат в ячейке А3 (в финансовом формате без указания валюты, или в числовом формате типа «0,00″): 4533,00
Формула в ячейке А4:
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) рубля (без точки в конце)
Если нужно, чтобы в конце этого текста стояла точка, замените самый последний символ формулы /»»/ на /».»/,
например: формула…;0))));»») => формула…;0))));».»)
Если в тексте допускаются несклоняемые названия денежных единиц (например, сокращения: «руб.», «коп.»), то формулы
значительно упрощаются:
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) руб. 80 коп.
//Результат в ячейке А4: 4533 (четыре тысячи пятьсот тридцать три) руб.
Как создается сумма прописью в Excel?
Добрый день уважаемый читатель!
Статья посвящена такому интересному вопросу: «Как создается сумма прописью в Excel?». Эта возможность позволяет нам всю массу информации и расчетов, которые сведены в один результат, оформить как финансовой документ, которые нельзя трактовать двузначно. Недаром же любые банковские, юридические и финансовые документы оформляются и цифрами и буквами. Окромя всего, такие суммы не позволяют ошибаться, где же должна стоять запятая и просто отлично выглядят в сравнении с рядом цифр. Подведя итог, скажу, что любой пользователь Excel, который работает с цифрами и временем, а также печатает документы с их использованием, очень нуждается в инструменте создающим сумму прописью.
Решить эту проблему можно несколькими способами:
Создание сумм прописью с помощью формул
Это вполне осуществимый вариант, но очень громоздкий. Формула, которая может самостоятельно преобразовывать числа в буковки и правильно орфографически написать сумму прописью получится очень большой. В случае, когда вы захотите упростить формулу, вам нужно будет отдельный блок формул, который буде и заниматься всеми преобразованиями. Единственное преимущество от использования формулы, это когда вы разберетесь с ней, то самостоятельно сможете ее изменять: разрядность, валюту, склонение и т.п.
Ради общего интереса я предоставлю вам пример файла с работающей формулой, которую я нашёл на excelworld.ru, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.
С помощью пользовательской функции
Как мой взгляд, это самое оптимальное и простое, относительно конечно, решение поставленного вопроса. Вы просто включаете функцию и пользуетесь ее с удовольствием.
Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:Documents and SettingsUserApplication DataMicrosoftAddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. В результате мы получаем возможность получить следующие данные:
С помощью VBA
Вот еще один способ на любителя. Конечно создать сумму прописью в Excel с помощью макроса не самый распространённый способ, но им достаточно часто пользовались и пользуются до сих пор. Большой сложности он не представляет, вам нужно:
- Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
- С помощью меню «Insert» — «Module», создать пустой новый модуль;
- Скопировать предоставленный код макроса в тело модуля.
Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.
Число прописью в Excel: инструкция, как написать сумму
Сумма прописью в Excel
Windows 10 на калькуляторе
Windows 10 не видит флешку
Не работают наушники на компьютере Windows 10
Ноутбук с Windows 10 не видит наушники
Не видит компьютеры в сети Windows 10
Во многих документах мы можем видеть строку, в которой требуется указать сумму не в числовом виде, а прописью. Это защищает отчетность от подделки, ведь цифру легко переправить. А вот длинную запись незаметно исправить не так-то просто. Сумма прописью в Excel доступна только в виде надстроек или с использованием формул. Встроенного инструмента не имеется.
Как в Excel сделать сумму прописью
Чтобы получить эту возможность, вы можете скачать надстройку «Сумма прописью» в Excel бесплатно на нашем сайте.
Разместите его в любом удобном каталоге и подключите. Для этого следует пройти следующие этапы:
Эта функция «сумма_прописью» работает в Excel 2007, 2010, 2016
Данная надстройка работает только для рублей. Если вам нужна другая валюта, скачайте еще файл sumprop.xla. Действуя по аналогии подключите надстройку для получения суммы прописью в Excel.
Для проверки введем в ячейке A3 произвольное число. Пусть это будет десятичная дробь. Также вызовем окно вставки функций и найдем новые функции для вывода суммы прописью.
Как видите, нам стали доступны:
- Сумма Прописью
- Сумма Прописью Доллары
- Сумма Прописью Евро
- Сумма Прописью Евро
Переведем число в евро. Выбираем соответствующую функцию и кликаем по ячейке с числом.
После нажатия ОК получаем результат.
С помощью этих инструментов преобразование числа в текст прописью в Excel выполняется очень просто. Если по каким-то причинам вы не хотите устанавливать их в Excel, можно воспользоваться другим способом.
Формула суммы прописью в Excel — как написать число
Для вывода числа прописью в Excel можно создать формулу. Приведем пример:
Для ее использования вам необходимо указать несколько массивов Excel:
Просто скопируйте эту таблицу на лист Excel, а формулу вставляйте туда, где необходима сумма прописью. Вышеприведенная конструкция предназначена для ячейки A3. Не забудьте поменять адрес.
В англоязычном Excel формула суммы прописью будет выглядеть следующим образом:
SUBSTITUTE(PROPER(INDEX(n_4,MID(TEXT(A1,n0),1,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),2,1)+1,MID(TEXT(A1,n0),3,1)+1)&IF(-MID(TEXT(A1,n0),1,3),»миллиард»&VLOOKUP(MID(TEXT(A1,n0),3,1)*AND(MID(TEXT(A1,n0),2,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),4,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),5,1)+1,MID(TEXT(A1,n0),6,1)+1)&IF(-MID(TEXT(A1,n0),4,3),»миллион»&VLOOKUP(MID(TEXT(A1,n0),6,1)*AND(MID(TEXT(A1,n0),5,1)-1),мил,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),7,1)+1)&INDEX(n1x,MID(TEXT(A1,n0),8,1)+1,MID(TEXT(A1,n0),9,1)+1)&IF(-MID(TEXT(A1,n0),7,3),VLOOKUP(MID(TEXT(A1,n0),9,1)*AND(MID(TEXT(A1,n0),8,1)-1),тыс,2),»»)&INDEX(n_4,MID(TEXT(A1,n0),10,1)+1)&INDEX(n0x,MID(TEXT(A1,n0),11,1)+1,MID(TEXT(A1,n0),12,1)+1)),»z»,» «)&IF(TRUNC(TEXT(A1,n0)),»»,»Ноль «)&»рубл»&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1,n0),11,2)-11,100),9),10),<0,»ь «;1,»я «;4,»ей «>,2)&RIGHT(TEXT(A1,n0),2)&» копе»&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1,n0),2)-11,100),9),10),<0,»йка»;1,»йки»;4,»ек»>,2)
Как видим, это не самый удобный способ преобразовать число в текст прописью в Excel.
Преобразование с помощью макросов Excel
Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль.
В него добавьте следующий код.
Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем».
В качестве аргумента укажите адрес с числом.
Перевод в сумму прописью осуществляется только для целых чисел.
Дробное число требует дополнительной формулы:
Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа.
Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!
Запишем число прописью в Excel без использования
VBA
. Вспомогательные диапазоны разместим в личной книге макросов. Кроме того, добавим руб./коп. для записи денежных сумм, например: четыреста сорок четыре руб. 00 коп.
Иногда требуется записать число прописью:
256
записать как
двести пятьдесят шесть
. Набирать этот текст безумно скучно, кроме того легко ошибиться, поэтому давно написаны макросы на VBA, которые легко справляются с этой задачей.
В статье
Число прописью (статичный вариант)
приведено решение этой задачи позволяющей перевести число в текстовую форму по следующему алгоритму:
- вводим число в определенную ячейку;
-
с помощью формул, вспомогательных диапазонов с текстом и
имен
получаем число прописью;
-
копируем результат вычисления формулы (число прописью) в
Буфер обмена
; -
вставляем текст в любую открытую книгу «Как значение» (
).
Это не всегда удобно. Хочется по аналогии с функциями на VBA написать что то вроде =ЧислоПрописью(А1) и получить результат. Все промежуточные вычисления должны быть «за кадром». Но, создание пользовательских функций это прерогатива VBA.
Тем не менее, можно предложить следующее решение с помощью обычных формул:
- разместить в Личной книге макросов (PERSONAL.XLSB) вспомогательные диапазоны, содержащие некоторые числа прописью (от 0 до 999);
-
создать формулу, переводящую в текст любое число от 0 до 1 млрд. с помощью вспомогательных диапазонов и
имен
;
-
в любой книге, где требуется записать число прописью создать
Именованную формулу
ЧислоПрописью
сотносительной
ссылкой на исходное число (относительную ссылку можно создать так, чтобы она позволяла выводить число прописью, например, в соседней ячейке слева от исходного числа).
В результате вышеуказанных манипуляций можно будет, например, записав в ячейке
G
6
исходное число, а в ячейке
G7
формулу
=ЧислоПрописью
, и получить нужный результат.
Все это реализовано в
файле примера
.
Как и в примере статьи
Число прописью (статичный вариант)
на листе
Служ
размещены вспомогательные диапазоны, содержащие некоторые числа прописью в Excel.
Теперь эти диапазоны длиннее (числа от 1 до 999) и содержат слова
тысяча
и
миллион
с учетом склонения. Также создан диапазон для отображения слова
Рублей
с учетом склонения.
Теперь все готово для записи формулы переводящей исходное число (ячейка
B
6
) в текст:
=СЖПРОБЕЛЫ( ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «& ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «& ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))
Задача в принципе решена, осталось только разместить вспомогательные диапазоны в Личную книгу макросов PERSONAL.XLSB, для того чтобы формула, переводящая число в текст была доступна в любой книге.
В Windows XP эта книга находится в папке C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда она будет автоматически загружается при каждом запуске приложения Excel. В Windows Vista эта книга хранится в папке C:Usersимя_пользователяApplication DataMicrosoftExcelXLStart.
Если Личная книга макросов еще не была создана, то скопируйте лист
Служ
из файла примера в новую книгу, и сохраните ее в директорию C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart (для XP) под именем PERSONAL.XLSB.
Если Личная книга макросов уже была ранее создана, то через меню
отобразите ее, скопируйте в нее лист
Служ,
сохраните Личную книгу макросов (можно ее потом скрыть
).
Теперь откройте
книгу, в которой нужно записать число прописью
. Исходное число разместите, например, в ячейке
А1
. Введите в нужную ячейку формулу:
=ЕСЛИ(A1;СЖПРОБЕЛЫ( ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&» «& ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «& ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00″)&» коп.»);»ноль руб. 00 коп.»)
Формула отобразит число прописью. Ячейки, содержащие исходное число и формулу, можно перенести в любое место в книге или даже в другую книгу.
Чтобы еще больше приблизиться к идеалу создадим
именованную формулу
ЧислоПрописью
. Для этого:
-
выделите ячейку
B1
; -
через меню
создайте именованную формулу
ЧислоПрописью;
-
в поле
Диапазон
введите формулу указанную выше: - нажмите ОК;
-
в ячейке
В1
введите формулу
=ЧислоПрописью
-
ячейка
В1
будет содержать число прописью.
Теперь ячейки
А1
и
В1
можно скопировать и перенести в любое место в книге, но они должны быть всегда на одной строке и в соседних столбцах, т.к. именованной формуле использована
относительная ссылка
.
При пересылке файла, например, по электронной почте, формула будет продолжать работать, не смотря на то, что Личная книга макросов не пересылалась, т.е. Ваши коллеги получившие файл, смогут с ним работать как Вы.