Как добавить букву к числу в excel
Перейти к содержимому

Как добавить букву к числу в excel

  • автор:

Как сделать в эксель чтобы цифры автоматически прописывались

​ в ячейке начинается​ функция, причем, она​ по порядку позиций,​ заглавными, что нам​ на то, что​ Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart (для​ относительной ссылкой на​Запишем число прописью в​ надо было.​ я открыла файл​ стрелочкой как показано​

​Обратите внимание! По умолчанию​ Интересный факт! При​ подтверждают запись данных​ текст на тайском​ ed_txt = Nums1(ed)​скопируйте и вставьте туда​

  • ​ с большой буквы.​ намного проще предыдущей.​
  • ​ но тоже с​ и требуется;​ Личная книга макросов​ XP) под именем​
  • ​ исходное число (относительную​ Excel без использования VBA.​Guest​
  • ​ и ничего не​ на рисунке:​ текст выравнивается по​ изменении ширины столбца​ в ячейку.​

​ языке и добавление​ rrr: ‘формируем итоговую​ текст этой функции:​ Как и в​ Эта функция называется​ большой буквы. Теперь​ЛЕВСИМВ​ не пересылалась, т.е.​ PERSONAL.XLSB.​ ссылку можно создать​ Вспомогательные диапазоны разместим​

​: Огромное Вам спасибо​ происходит (число стоит,​Данное окно можно вызвать​ левей стороне ячеек,​

  • ​ / строки курсором,​Заметьте! Если воспользоваться первой​ суффикса «бат».​ строку СУММАПРОПИСЬЮ =​Function СУММАПРОПИСЬЮ(n As​
  • ​ прошлый раз, копируем​ПРОПНАЧ​ нам нужно вставить​– возвращает указанное​ Ваши коллеги получившие​Если Личная книга макросов​
  • ​ так, чтобы она​ в личной книге​ за помощь,там английский​ а там где​ комбинацией горячих клавиш​ а цифры по​ подсвечивается информация о​ возможностью то после​В Microsoft Excel​ decmil_txt & mil_txt​ Double) As String​ формулу на ячейки​

​. Её синтаксис очень​ полученный результат в​ количество знаков конкретного​​ файл, смогут с​​ уже была ранее​ позволяла выводить число​​ макросов. Кроме того,​​ втречается, да и​ должна быть сумма​

​ CTRL+1.​ правой. Данная особенность​

​ размерах в разных​ подтверждения «Enter» курсор​ для Windows стиль​ & sottys_txt &​ Dim Nums1, Nums2,​ расположенные ниже.​

​ простой:​ исходную таблицу. Выделяем​ текста в ячейке.​ ним работать как​ создана, то через​ прописью, например, в​ добавим руб./коп. для​ много что то​ прописью — стоит​

​К нашей табличке добавьте​ позволяет быстро найти​ единицах измерения:​​ сместится на соседнюю​​ формата бат может​
​ dectys_txt & tys_txt​
​ Nums3, Nums4 As​
​После этого копируем результат​
​=ПРОПНАЧ(адрес_ячейки)​

​ диапазон с формулами.​То есть, исходя из​ Вы.​ меню Вид/ Окно/​ соседней ячейке слева​ записи денежных сумм,​ нулей встречалось, пока​ #ИМЯ?​ еще данных, как​

​ цифры в ячейке​Ширина столбца в количестве​ ячейку вниз (при​ быть изменен с​ & sot_txt &​ Variant Nums1 =​ при помощи контекстного​На нашем примере её​ Кликаем правой кнопкой​ этого набора функций,​Во многих случаях требуется,​

​ Отобразить отобразите ее,​ от исходного числа).​ например: четыреста сорок​ маловато волоку.​Igor67​ показано ниже на​ и не спутать​ символов стандартного размера​ настройках по умолчанию).​ помощью значка Язык​ dec_txt & ed_txt​

​ Array(«», «один «,​ меню.​ применение будет выглядеть​ мыши и в​ с помощью​ чтобы первая буква​ скопируйте в нее​В результате вышеуказанных манипуляций​ четыре руб. 00​Макс​: Проверяем включение макросов.​

​ рисунке.​​ их с текстом​ шрифта(Calibri 11 пунктов)​​ Если же использовать​ и стандарты на​​ End Function ‘вспомогательная​​ «два «, «три​Вставляем данные через пункт​
​ следующим образом.​
​ контекстном меню выбираем​
​ЛЕВСИМВ​
​ в ячейке таблицы​ лист Служ, сохраните​ можно будет, например,​

​ коп.​: файл создавался на​В данном случае​Задание 1. Выделите диапазон​ (ведь текст также​ – по умолчанию​ вторую возможность и​

​ панели управления.​ функция для выделения​ «, «четыре «,​«Значения»​

  • ​Выделяем свободную область листа.​​ пункт​​мы вернем в​
  • ​ была заглавной (прописной).​ Личную книгу макросов​ записав в ячейке​Иногда требуется записать число​
  • ​ базе 2003 Офиса.​ используются так называемые​
  • ​ ячеек D2:D3 и​
  • ​ содержит символы цифр,​​ 8,43 символов такая​​ подтвердить галочкой «Ввод»,​
  • ​В Excel для​​ из числа разрядов​​ «пять «, «шесть​параметры вставки в​

​ Кликаем по значку​​«Копировать»​​ указанную ячейку первую​ Если пользователь изначально​ (можно ее потом​G6​ прописью: 256 записать​и при его​ «Пользовательские функции», которые​ установите финансовый числовой​ но не позволяет​

​ длина текста в​ то курсор останется​ «Макинтоша» стиль числового​ Private Function Class(M,​ «, «семь «,​ исходную таблицу.​«Вставить функцию»​.​ букву, с помощью​ ошибочно везде вписал​ скрыть Вид/ Окно/​

Трансформация первой буквы из строчной в заглавную в Microsoft Excel

Заглавная буква в Microsoft Excel

​исходное число, а​ как двести пятьдесят​ открытии в новом​ распознаются как макросы​ формат. В диапазоне​ производить с ними​ стандартной ячейке. Таким​ на месте.​ формата бат может​ I) «восемь «, «девять​Удаляем промежуточные значения через​.​После этого, выделяем исходные​ оператора​ строчные буквы или​ Скрыть).​ в ячейке​ шесть. Набирать этот​ Офисе не работают​ и работают только​ E2:E3 сделайте процентный​ математические расчеты). Например,​ образом, можно быстро​​ быть изменен с​ Int(Int(M — (10​ «) Nums2 =​

​ контекстное меню.​В открывшемся Мастере функций​

Процедура трансформации первой буквы в заглавную

​ ячейки с фамилиями​ПРОПИСН​ скопировал в Excel​Теперь откройте​G7​ текст безумно скучно,​ многие макросы и​ при включенных макросах.​ формат. В результате​ если в место​ определить длину текста​Заполните ячейки текстом, так​ помощью объекта Control​ ^ I) *​ Array(«», «десять «,​

Способ 1: замена первой буквы в ячейке на заглавную

​В новом окне подтверждаем​ ищем​​ в таблице. Вызываем​​сделаем её заглавной,​ данные из другого​книгу, в которой нужно​​формулу =ЧислоПрописью, и​​ кроме того легко​​ формулы.​​Если у Вас​

  • ​ должно получиться так:​​ запятой в качестве​​ в ячейке Excel.​ как показано на​ Panel for Numbers.​ Int(M / (10​
  • ​ «двадцать «, «тридцать​​ удаление строк, путем​«ПРОПНАЧ»​ контекстное меню кликом​ а затем функцией​
  • ​ источника, в котором​​ записать число прописью​ получить нужный результат.​ ошибиться, поэтому давно​

​Подумали работать с​ Ехс 2002(ХР) или​Формат – это свойство​​ разделителя разрядов стоит​​ Но чаще всего​ рисунке, чтобы содержимое​Синтаксис​ ^ I))) /​​ «, «сорок «,​​ установки переключателя в​. Найдя это наименование,​​ правой кнопки мыши.​​ЗАМЕНИТЬ​ все слова начинались​

​. Исходное число разместите,​Все это реализовано в​ написаны макросы на​

​ файлом на Windows​

​ 2003 идем меню​ ячейки, а не​ точка или пробел,​ для этого применяется​ вмещалось в ячейках.​БАТТЕКСТ(число)​ 10 ^ (I​ «пятьдесят «, «шестьдесят​ соответствующее положение. Жмем​ выделяем его и​ В блоке​заменим строчную букву​ с маленькой буквы,​​ например, в ячейке​​ файле примера.​

    ​ VBA, которые легко​ 7, но через​ СЕРВИС — ПАРАМЕТРЫ​ ее содержимое. Поэтому​

​ то цифры распознаны​

Формула в Microsoft Excel

Результат вычисления в Microsoft Excel

Маркер заполнения в Microsoft Excel

Копирование данных в Microsoft Excel

Вставка значений в Microsoft Excel

Удаление ячеек в Microsoft Excel

Удаление строки в Microsoft Excel

​ Теперь при запуске​ случаях лучше сделать​ образом, можно быстро​Высота строки в пунктах​Задание 1. Чтобы​ формула, принимающая числовые​ тип файла должен​ «триста «, «четыреста​

Готовый результат в Microsoft Excel

Способ 2: каждое слово с большой буквы

​ таблицу, но только​«Текст»​ цифрами.​Но лучше все это​ желаемое состояние. Но,​ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&» «&​ числа прописью в Excel.​ позволяющей перевести число​ активации надстроек «Сумма​ файла на вопрос​ в обратном порядке.​​ сориентироваться, как распознала​​ измерения высоты шрифтов​ уместить длинный текст​

​ быть с поддержкой​ «, «пятьсот «,​ все слова в​

    ​. Выделяем первую ячейку​Как видим, после этого​​ рассмотреть на конкретном​​ возможно у Эксель​

Переход в мастер функций в Microsoft Excel

Мастер функций в Microsoft Excel

Окно аргументов функциив Microsoft Excel

​ 2003 под Windows​ Ответить ДА, КОНЕЧНО​ пустую ячейку суму​ как текст или​ 15 пунктов.​ наведите курсор мыши​ заполняем ячейки данными,​ формате xlsm!) и​ «, _ «восемьсот​ будут прописаны с​ исходной таблице. После​ были вставлены в​

​ имеем заполненную таблицу,​

​ с помощью которых​ коп.»)​​ до 999) и​​вводим число в определенную​

​ 7.​ ХОЧУ!​ с валютой следующим​ как цифру. Например,​В скобках размеры указаны​ на границу заголовков​ автоматически проверяются типы​ вернитесь в Excel.​ «, «девятьсот «)​ большой буквы.​ того, как её​ исходные позиции таблицы.​ в которой все​

Копирование формулы в Microsoft Excel

Копирование результата в Microsoft Excel

Вставка результата в Microsoft Excel

Удаление расчетов в Microsoft Excel

Удаление строки в Microsoft Excel

​ «одна «, «две​ то, что массовую​ поле окна аргументов,​ буквы в первых​ маленькой буквы. Нам​ программы есть функция​ число и формулу,​

Готовая таблица в Microsoft Excel

​ учетом склонения. Также​ диапазонов с текстом​ Михаил Ч. обновил​ СЕРВИС-МАКРОС-Безопасность​ что программа сама​ не запятой, а​ для строк.​ Курсор изменит свой​ она: цифры; формулы;​ в любую ячейку​ «, «три «,​ смену строчных букв​ жмем на кнопку​ словах ячеек были​ предстоит первый символ​ для изменения строчных​ можно перенести в​ создан диапазон для​ и имен получаем​ своё решение одной​Guest​ присвоит ячейке финансовый​

​ точкой, то данные​

Сумма прописью

​В Excel 2010 можно​ внешний вид как​ логические выражения.​ листа этой книги​​ «четыре «, «пять​ на прописные в​​«OK»​ заменены на прописные.​ в каждой ячейке​ букв на прописные.​ любое место в​ отображения слова Рублей​ число прописью;​

  1. ​ формулой:​​: Спасибо большое, правда​​ формат. То же​ цифр распознаются как​
  2. ​ задать размеры строк​ показано на рисунке.​​Если не подтвердился ни​
  3. ​ обычным способом -​ «, «шесть «,​

​ в Excel имеется​ Для этого:​) в текст:​ значение» (Главная/ Буфер​ легко копировать/переносить, в​: Здравствуйте!​ быстрого ввода при​ C2 и удерживая​ правой кнопкой по​ длинного текста.​Введенные данные в ячейку​ категория​ «, «четырнадцать «,​ символы вручную, особенно,​ предыдущем способе, ввести​​ выполняли преобразование на​​В любом свободном месте​​ отдельная кнопка, нажав​выделите ячейку​​=СЖПРОБЕЛЫ(​​ обмена/ Вставить/ Вставить​ т.ч. и в​Здесь на форуме​ установке формата ячеек.​ левую клавишу проведите​

​ заголовку столбца или​Задание 2. Наведите​ можно редактировать изменять​Определенные пользователем​ _ «пятнадцать «,​

​ в ячейку функцию​

​ одном листе. Выделяем​ данного листа или​ на которую, можно​B1​ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&» «&​

Можно ли Excel сделать так, что бы автоматически цифры писались прописью?

​ как значение).​​ другие книги​ нашел преобразование число​

​ Посмотрите выпадающий список​​ его вниз до​

​ строки и выберем​​ курсор мыши на​ и удалять. Далее​) или просто набрав​
​ «шестнадцать «, «семнадцать​ много. Указанные выше​ вручную с записью​
​ указанный диапазон, кликаем​
​ на другом листе​ автоматически превратить строчную​;​ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&» «&​
​Это не всегда удобно.​3. Работает до​ в пропись, все​ валют и измените​ ячейки C3. Вы​ опцию «ширина». Потом​ границу заголовков колонок​
​ рассмотрим способы редактирования​ ее в ячейке​ «, «восемнадцать «,​ алгоритмы берегут не​ координат исходных данных.​ правой кнопкой мыши​
​ записываем следующую формулу:​
​ букву в заглавную.​
​через меню Формулы/ Определенные​ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))​ Хочется по аналогии​ 999 млрд. руб.​ цифры прописываются, кроме​ формат на Евро:​ выделили диапазон из​

Заполнение ячеек текстом и числовыми значениями

​ вводим значение в​ ячеек между B​ ячеек.​ вручную и указав​ «девятнадцать «) If​ только силы юзера,​ В данном случае​

​ и в контекстном​=ЗАМЕНИТЬ(B4;1;1;ПРОПИСН(ЛЕВСИМВ(B4;1)))​ Для этого придется​ имена/ Присвоить имя​Задача в принципе решена,​ с функциями на​

​4. Делает первую​ нуля, а нужно,​Читайте так же: как​ 2-ух ячеек (C2:C3)​ сантиметрах. Этого особенно​

​ и C. Курсор​Самый простой способ изменения​ в качестве аргумента​ n 0 Then​

Ввод текста в ячейку Excel

​ но и самое​ эта запись будет​ меню останавливаем выбор​Чтобы произвести обработку данных​

  1. ​ использовать функции, причем​ создайте именованную формулу​ осталось только разместить​ VBA написать что​ букву прописной, остальные​ что бы и​ перевести число и​
  2. ​ для дальнейшей работы​ удобно при подготовке​ мышки изменит свой​ содержимого ячейки –​ ячейку с суммой:​ tys_txt = Nums4(tys)​ ценное – время.​

​ иметь следующий вид:​ на пункте​ и увидеть результат,​ сразу несколько. Впрочем,​

​ ЧислоПрописью;​ вспомогательные диапазоны в​ то вроде =ЧислоПрописью(А1)​ строчные​

​ 0 писалось бы​ сумму прописью в​ с ними. На​ документа для вывода​ вид. После чего​ это заново вписать​Если вам необходимо добавить​ & «тысяч «​ Поэтому желательно, чтобы​=ПРОПНАЧ(B4)​«Удалить…»​

​ жмем кнопку Enter​

Как уместить длинный текст в ячейке Excel?

​ в любом случае,​в поле Диапазон введите​ Личную книгу макросов​ и получить результат.​

​5. Правильно округляет​ прописью.​ Excel.​ полосе инструментов выберите​ на печать. Ведь​

  1. ​ 2, 3, 4​ работе.​.​ в позицию​ начинается с прописной​ бы на ручное​В1​ была доступна в​ пользовательских функций это​6. Изменяет окончание​ полагаю, надо доработать​ так чтобы сумма​ показано на рисунке:​ 29,7см.​ размера. Аналогичным способом​ имеется две возможности:​ =СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.» ​
  2. ​ tys_txt = Nums4(tys)​Автор: Максим Тютюшев​Выбор конкретного варианта полностью​«Строку»​
  3. ​ буквы.​ изменение данных.​введите формулу =ЧислоПрописью​ любой книге.​

​ прерогатива VBA.​ в слове «копейка»​ код VBA, пытался​ написанная числом отображалась​Не трудно догадаться, что​Но благодаря показателям в​ как описано в​Сделайте ячейку активной переместив​=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.»​ & «тысячи «​Ниже вы найдете готовую​ зависит от пользователя.​. Жмем на кнопку​Становимся курсором в нижний​Для решения поставленной задачи​ячейка​В Windows XP эта​Тем не менее, можно​ в соответствии с​ редактировать, но не​

​ прописью (например 101,50​ рядом расположен инструмент​ пикселях при обычном​ этих двух практических​ на нее курсор.​Тогда, например, для числа​ Case 5 To​

  • ​ пользовательскую функцию на​ Для тех юзеров,​
  • ​«OK»​ левый угол ячейки​
  • ​ используется основная функция​В1​

Введение цифр в ячейки Excel

​ книга находится в​ предложить следующее решение​ правилами русского языка,​ получается.​ р. — сто​ «Уменьшить разрядность». Так​ режиме, то можно​

Исходная таблица.

​ заданиях можно изменять​ Потом введите текст​ 35,15 результат функции​ 9 tys_txt =​ VBA, которая переводит​ которые не привыкли​.​ с формулой и​ЗАМЕНИТЬ​будет содержать число​ папке C:\Documents and​ с помощью обычных​ а не просто​vikttur​ один рубль пятьдесят​ можно изменять формат​ пересчитать самому в​ высоту строки. Только​ и нажмите «Enter»​ будет выглядеть как​ Nums4(tys) & «тысяч​ любое число​ держать в голове​После этого, лишние данные​ с помощью маркера​, а также вложенные​ прописью.​ Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart, откуда​ формул:​ «коп.»​: В коде сверху​ копеек).​ ячеек на числовой​ сантиметры, используя данные​ здесь курсор следует​ или просто переместите​

​ «тридцать пять руб.​ » End Select​от 0 до 9​ множество разных формул,​ будут очищены, и​ заполнения копируем формулу​ функции первого и​Теперь ячейки​ она будет автоматически​разместить в Личной книге​7. Формула менее​ 4 или 5​Заранее спасибо.​ для отображения цифр​ для конвертации единиц​

Увеличение разрядности.

​ наводить на границы​ курсор на любую​ 15 коп.»​ If dectys =​ 999 999​ естественно, легче действовать​ мы получим тот​ в нижние ячейки.​ второго порядка​

​А1В1​ загружается при каждом​ макросов (PERSONAL.XLSB) вспомогательные​ 1000 знаков, и​ абзац, начало:​mazayZR​ разным количеством разрядности​ измерений:​ между номерами строк.​ другую ячейку.​Алексей​ 0 And tys​в его текстовое​

Формат ячеек.

​ при помощи Мастера​ результат, который добивались:​ Мы должны скопировать​

Введение валют и процентов

​ПРОПИСН​можно скопировать и​ запуске приложения Excel.​ диапазоны, содержащие некоторые​

​ спокойно редактируется в​If Num =​: это невозможно​ (количество цифр отображаемых​0,98 см = 37​ А дальше перемещать​Сделайте ячейку активной с​

Финансовый формат чисел.

​: Конечно. применить макрос​ = 0 And​ представление, т.е. в​ функций. В то​ в каждой ячейке​ её именно настолько​и​ перенести в любое​ В Windows Vista​

​ числа прописью (от​ 2003 Excel​ 0 Then​епрст, уже и​ после запятой).​ пикселей;​ его для изменения​ помощью курсора и​ сумма прописью)))​ sottys <> 0​

Финансовый формат Евро.

​ сумму прописью. Перед​ же время, другие​ таблицы первое слово​ позиций вниз, сколько​ЛЕВСИМВ​ место в книге,​ эта книга хранится​ 0 до 999);​

Финансовый формат Евро.

​Юрий М​SummaPropis = «»​ поиск даже не​Оба эти инструмента автоматически​

Число прописью

​1,01 см = 38​​ высоты или делать​ введите данные в​Анастасия​ Then sottys_txt =​ использованием, эту функцию​ считают, что намного​ начинается с большой​ ячеек с фамилиями​
​.​

​ но они должны​​ в папке C:\Users\имя_пользователя\Application​

​создать формулу, переводящую в​: Ну, не совсем​ЕСЛИ номер «0»,​ на главной странице​ меняют форматы ячеек​

​ пикселей;​​ двойной щелчок для​ строку формул (широкое​
​: нет к сожалению​

​ sottys_txt & «​​ необходимо добавить в​
​ быстрее ручной ввод​ буквы.​ имеет в своем​Функция​ быть всегда на​ Data\Microsoft\Excel\XLStart.​ текст любое число​ одной, конечно :-)​ то отображаем «»,​

​ и называется узнаваемо​​ на «числовой». Чтобы​
​0,50 см = 19​ автоматической подстройки. Задать​ поле ввода под​Crosswert​ тысяч » eee:​ вашу книгу. Для​
​ оператора.​Но бывают случаи, когда​ составе исходная таблица.​ЗАМЕНИТЬ​ одной строке и​Если Личная книга макросов​ от 0 до​Hugo​ т.е. ничего не​ (а не ФАС). ​ изменить формат ячеек​ пикселей.​ ширину столбца или​
​ полосой инструментов). И​: если в виде​ sot_txt = Nums3(sot)​

​ этого:​​Какой бы вариант не​ нужно сделать не​Как видим, учитывая что​осуществляет замену одного​ в соседних столбцах,​

​ еще не была​​ 1 млрд. с​
​: Да, поизучал -​ отображаем :)​Igor67​ на «числовой» так​Вводить текстовые данные в​ высоту строки можно​ нажмите галочку «Ввод».​ текста, то это:​
​ ‘проверяем десятки Select​
​нажмите сочетание клавиш​
​ был выбран, в​ только первое слово​ ссылки в формуле​ символа или части​ т.к. именованной формуле​

​ создана, то скопируйте​​ помощью вспомогательных диапазонов​ там ещё две​Замените SummaPropis =​
​: А поискать не​ же можно воспользоваться​
​ ячейки уже умеем,​
​ вручную с помощью​Если вы передумали заполнять​ =БАТТЕКСТ()​ Case dec Case​
​ALT+F11​ ячейке с функцией​

​ в ячейке, начинающимся​​ относительные, а не​ строки на другие,​ использована относительная ссылка.​ лист Служ из​ и имен;​

​ коротенькие ЕСЛИ() в​​ 0​ пробовали?​ диалоговым окном настройки​ теперь разберемся с​ курсора или контекстного​ ячейку то в​

​Однако понадобиться дополнительная​​ 1 ed_txt =​, чтобы открыть редактор​
​ мы получили тот​ с заглавной буквы,​ абсолютные, копирование произошло​ согласно указанным аргументам;​При пересылке файла, например,​
​ файла примера в​в любой книге, где​ именах есть :)​Hugo​
​Смотрим вариант.​ форматов. Для его​ заполнением цифровых данных.​

​ меню. Щелчок правой​ место «Enter» или​ кодировка — тайская,​ Nums5(ed) GoTo rrr​ Visual Basic​

​ результат, который нам​​ а вообще, каждое​ со сдвигом. Поэтому​ПРОПИСН​ по электронной почте,​

​ требуется записать число​
​Остальные имена думаю​
​: Плохо искали. Теперь​Guest​ вызова необходимо зайти:​ Заполните простую табличку​ кнопкой по заголовку​
​ «Ввод» жмите «ESC».​ вроде.​
​ Case 2 To​добавьте новый пустой модуль​ был нужен. Теперь​
​ слово. Для этого​ в нижних ячейках​– делает буквы​ формула будет продолжать​
​ сохраните ее в​ прописью создать Именованную​ формулами назвать нельзя.​ можете в коде​: Смотрим вариант.​ «Главная»-«Число» и щелкнуть​
​ как показано на​ и опция «Ширина​Клавиша «Enter» или инструмент​Дословно из Excel​

​ 9 dec_txt =​​ через меню​ каждое новое слово​

​ тоже существует отдельная​​ отобразилось содержимое следующих​ прописными, то есть,​ работать, не смотря​ директорию C:\Documents and​
​ формулу ЧислоПрописью с​ :)​ по слову «ноль»​

Числа прописью в Excel быстро и без вспомогательных инструментов! ⁠ ⁠

Зачастую бывают такие ситуации, когда записанные при помощи цифр числа в Excel должны быть представлены в виде прописи, например, подобное потребоваться при составлении договоров, чеков, накладных и так далее.

Естественно, данную задачу можно легко решить при помощи VBA, либо же различных Add-In-ов, однако, в таком случае эти самые Add-In-ы придется устанавливать, либо же интегрировать макросы VBA. В этом же посте я хочу поделиться интересным решением данной задачи при помощи всего одной формулы.

Вот пример её действия:

Числа прописью в Excel быстро и без вспомогательных инструментов! Microsoft Excel, Формула, Работа, Видео, Длиннопост

Файл с формулой можно скачать по следующей ссылке:

Как можете заметить, в функции очень много ссылок на одну и ту же ячейку – H6. Естественно, вручную перетаскивать все ссылки H6 не вариант (их 97!). Поэтому вот как работаем с этой формулой:

1. Её текст можно скопировать из файла по ссылке и вставить в ячейку, где в будущем нужна пропись цифры

2. Выбираем две ячейки, включая ячейку с формулой (показываю на примере самого файла по ссылке – в формуле с выводом сотых заменим ссылку на новое значение в ячейке C6):

Числа прописью в Excel быстро и без вспомогательных инструментов! Microsoft Excel, Формула, Работа, Видео, Длиннопост

Лучше всего, чтобы вторая выбранная ячейка была пустой, или в крайнем случае не содержала той же самой ссылки, так как мы её сейчас будем автоматически менять.

3. Вызываем окно поиска и замены с помощью CTRL+H

4. В «Найти» вписываем заменяемый адрес – H6, в «Заменить на» — адрес новой нужной ячейки – например, C6

Числа прописью в Excel быстро и без вспомогательных инструментов! Microsoft Excel, Формула, Работа, Видео, Длиннопост

5. Нажимаем на «Заменить все». Замена происходит лишь в обеих выбранных ячейках (именно для этого мы и выбирали вторую ячейку, чтобы ограничить замену лишь на выбранный диапазон). Готово! Формула сразу ссылается на нужное значение:

Числа прописью в Excel быстро и без вспомогательных инструментов! Microsoft Excel, Формула, Работа, Видео, Длиннопост

Из особенностей формулы:

1. Формула абсолютно самостоятельна и не использует VBA или сторонние Add-Ins

2. Формула работает с числами до 999.999.999

3. Формула правильно склоняет слова

4. Вся формула в свою очередь состоит в основном из формул ЛЕВСИМВ, ПСТР, ЕСЛИ, ТЕКСТ, И, ВЫБОР

5. Количество символов в формуле с прописью целых и сотых: 6034

Вот в этом видео разобран принцип работы формулы, то, как её использовать, а также рассказаны еще некоторые детали, обязательно советую его посмотреть:

661 пост 14.8K подписчиков

Правила сообщества

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях

Важно — сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде «пост — отстой», это оскорбление автора и будет наказываться баном.

Иллюстрация к комментарию

Иллюстрация к комментарию

полагаю, в данном случае намного эффективнее использовать макрос. его можно импортировать несколькими движениями и создать кнопочку на панели быстрого доступа, либо создать пользовательскую функцию. если кто-то захочет использовать много таких формул в документе, он начнет безбожно глючить

ты текстом формулу выложить не мог?

Решение интересное. Но макросом тут все же проще.

Осталось только осознать тот факт, что бывают не только сотые но и десятые)

Иллюстрация к комментарию

Читать ещё на Пикабу

EXCEL — ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО⁠ ⁠

Я решил с двух ног ворваться в тему макросов.

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Кто-то про них слышал, кто-то даже видел, отдельные сверхразумы их даже использовали. Сегодня будет ознакомительный пост: что это вообще такое и как с этим начать работать. Обратите внимание – этот пост тех, кто не знает, что такое макросы и никогда с ними не работал

Первым делом нужно включить вкладку «Разработчик». По умолчанию в Excel ее спрятали, чтобы не взорвать мозг юзерам. Идем в Параметры -> Настройка ленты -> Основные вкладки -> Разработчик (поставить галочку).

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Теперь идем в эту вкладку, нажимаем «Записать макрос» выбираем имя жмакаем «ок». Все, теперь любые действия в Excel надежным образом записываются.

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Давайте теперь что-то сделаем. На пример поменяем заливку ячейки А1, в ячейку A2 напишем значение «Мама, я программист», а в ячейке А3 пропишем формулу текущей даты «=Сегодня()»

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Останавливаем запись макроса. Нажимаем иконку «Макросы», выбираем наш макрос как мы его обозвали, нажимаем кнопку «изменить».

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Появляется окно Microsoft Visual Basic for Applications. Кстати оно также вызывается комбинацией клавиш (Alt + F11) У меня почему-то вызывается только левым Altом, а правым нет, видимо намекая на то что для написания макросов лучше иметь 2 руки (хотя я и одной нажать могу). Появился редактор языка VBA – это язык, который написан специально под офис чтобы на нем писать макросы. В основном окне видим саму эту запись, которую автоматически сделал Excel.

Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range(«A2»).Select
ActiveCell.FormulaR1C1 = «Мама, я программист»
Range(«A3»).Select
ActiveCell.FormulaR1C1 = «=TODAY()»
Range(«A4»).Select
End Sub

Такой инструмент автоматической записи называется макрорекордер, по началу он хорошо помогает вообще понять, что происходит. Теперь давайте разберемся как выглядит записанный макрос (записанный макрос у автора этой статьи может различаться с записанным макросом у вас поскольку форма записи с макроса зависит от последовательности нажатий, способах ввода информации и криворукости пользователь, в любом случае автор этой статьи снимает с себя всю ответственность за любые действия которые привели или могут привести к изменению годовых отчетов, искажению пространственное – временного континуума и прочих непредвиденных вымираний.)

Теперь давайте разбираться что делает этот макрос

Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With

(Весь этот кусок от начала говорит нам о том, что с тем элементом что был выделен ранее происходит некоторое дерьмо, в том числе изменение цвета. Вот там, где Color = 255. Все остальное это параметры заливки, которые по итогу не менялись, но макрорекордер решил их тоже записать, на всякий. Это связано с внутренними особенностями работы excel как я понял. Вообще привыкайте к тому что макрорекордер пишет много того что потом вообще можно удалить. Конструкция With – End With позволяет делать несколько действий с одним объектом, на пример выше берется объект Selection.Interior, то есть фон выбранной области и ряду параметров этой заливки назначаются конкретные значения. То есть With нужен для облегчения записи кода, чтобы Selection.Interior не писать вначале каждой строчки.

Range(«A2»).Select –выделяем ячейку «A2»
ActiveCell.FormulaR1C1 = «Мама, я программист» – пишем в ячейку значение
Range(«A3»).Select – выделяем ячейку «А3»
ActiveCell.FormulaR1C1 = «=TODAY()» –пишем в ячейку формулу
Range(«A4»).Select – зачем то выделяем ячейку А4.
End Sub

Теперь при создании нового листа и запуске этого макроса он будет делать все то же самое.

Тут стоит понимать, что половину того что записал макрос можно опустить, так как нам важен результат, а не путь по которому к этому результату пришли, а макрорекордер записывает именно путь. На пример вместо всей конструкции With можно записать

так как мы точно знаем, что хотим поменять только цвет в ячейке А1. Также вместо того чтобы выделять ячейку, а потом в активной ячейке писать формулу можно сразу записать нужное значение в ячейку

Range(“A2”).Value = ”Мама, я программист”

или писать формулу как в третей ячейке

С формулами и значениями лично мне не понятно, как excel их интерпретирует, но в макрорекордре он записывает любой ввод в ячейку как ввод формулы. Благо лично у меня при написании макросов не возникает необходимости писать формулы в ячейки. На пример вместо вставки формулы как это было выше можно написать Range(“A3”).Value = Date(), тогда макрос вставит сразу текущую дату в ячейку как значение.

Опытные макроделы пишут макросы сразу без их записи макрорекордером, но это полезный инструмент для самостоятельного изучения при написании макросов: если не знаешь, что как делается в VBА то запускаешь и делаешь, потом смотришь что он там написал.

Теперь давайте напишем какой ни будь полезный макрос, я буду писать строчки и как можно подробнее их комментировать. Комментарии от программы отделяются символом «‘», он ставится вначале комментария. Прошу учесть, что я самоучка и многого не знаю, и просто напишу так ка делаю это сам, возможно есть более изящные решения. Напоминаю, что это просто ознакомительный опус для тех, кто не в зуб ногой.

Sub Colorization()
‘начало нашего макроса и его название
Dim x As Integer
‘объявляем переменную х типа интеджер, это тип для целых чисел от -32 768 до 32 767 (2 байта),
‘она нам нужна для перебора ячеек
For x = 1 To ActiveSheet.UsedRange.Rows.Count
‘перебираем х от 1 до конца использованной части листа, то есть не весь лист, а там где есть данные.
‘Тут цикл For повторяется от этой строки до строки Next x, которая прописана ниже
If Cells(x, 1).Value = «красный» Then Cells(x, 1).Interior.Color = RGB(255, 0, 0)
‘если значение в ячейке равно «красный» то закрашиваем ячейку в красный цвет. Функция If выполняет часть
‘после Then если условие между If и Then верно. Так как у нас необходимое действие занимает одну
‘строку можно писать в таком виде, если же действий несколько применяется конструкция:
‘If … Then
‘…
‘…
‘End If
If Cells(x, 1).Value = «зеленый» Then Cells(x, 1).Interior.Color = RGB(0, 255, 0)
‘как выше только в зеленый цвет
If Cells(x, 1).Value = «синий» Then Cells(x, 1).Interior.Color = RGB(0, 0, 255)
‘в синий цвет
Next x ‘берем следующее значение х, конец цикла For, который мы начали выше
End Sub ‘конец макроса
Как работает этот макрос: берет первый столбец, сначала 1 ячейку, смотрит что в ней написано, и если это равно «красный», «зеленый» или «синий», то красит фон ячейки в этот цвет, если нет по пропускает. Потом берет вторую и т. д. до конца активной части текущего листа.
Для проверки работы макроса нам нужен лист, где в первом столбце будут случайным образом прописаны цвета «красный», «зеленый», «синий». Запускаем макрос – когда он отработает ячейки будут раскрашены:

EXCEL - ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО Макрос, Microsoft Excel, Обучение, Офис, Работа, Длиннопост

Некоторые пояснения: если не писать просто Cells то макрос будет делать все в активном листе активного окна. Но макрос может идти и в другие листы, файлы, даже в другие приложения офиса, но об этом не сегодня.

После того, как макрос поработал с документом, не удастся кнопкой «назад» вернуть все изменения, так что, если данные важны, то сохраняйте их отдельно и макросом работайте с копией, макросы беспощадны.

Итак, на этом пока все. Надеюсь теперь те, кто никогда не видел макросов получат о них начальное представление. Дальше буду писать про более практичное применение.

Как перевести сумму или число прописью в Excel

Часто нужно перевести число в текст в Excel так, чтобы оно отображалось прописью (словами) на русском или других языках. Так как по умолчанию нет готовой функции, создадим свою пользовательскую функцию с помощью макросов.

Пример использования пользовательской функции для преобразования числа суммы в текстовые слова, которую можно скачать в конце статьи:

числа словами в Excel.

Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:

  1. Открыть редактор макросов ALT+F11.
  2. Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub . Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем». Module.
  3. Вставить в модуль следующий код и сохранить:

Function ЧислоПропись(Число As Currency ) As String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String , strМиллионы As String , strТысячи As String , strЕдиницы As String , strСотые As String
Dim Поз As Integer

strЧисло = Format(Int(Число), "000000000000" )

‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), "миллиард " , "миллиарда " , "миллиардов " )

‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), "миллион " , "миллиона " , "миллионов " )

‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), "ж" )
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), "тысяча " , "тысячи " , "тысяч " )

‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = "" Then strЕдиницы = "ноль "
‘strЕдиницы = strЕдиницы & ИмяРазряда(" ", Mid(strЧисло, Поз + 1, 2), "рубль ", "рубля ", "рублей ")

‘Сотые’
‘strСотые = strКопейки & " " & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘"копейка", "копейки", "копеек")

ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) — 1)

Число_Error:
MsgBox Err.Description
End Function

Function Сотни(n As String ) As String
Сотни = ""
Select Case n
Case 0: Сотни = ""
Case 1: Сотни = "сто "
Case 2: Сотни = "двести "
Case 3: Сотни = "триста "
Case 4: Сотни = "четыреста "
Case 5: Сотни = "пятьсот "
Case 6: Сотни = "шестьсот "
Case 7: Сотни = "семьсот "
Case 8: Сотни = "восемьсот "
Case 9: Сотни = "девятьсот "
End Select
End Function

Function Десятки(n As String , Sex As String ) As String
Десятки = ""
Select Case Left(n, 1)
Case "0" : Десятки = "" : n = Right(n, 1)
Case "1" : Десятки = ""
Case "2" : Десятки = "двадцать " : n = Right(n, 1)
Case "3" : Десятки = "тридцать " : n = Right(n, 1)
Case "4" : Десятки = "сорок " : n = Right(n, 1)
Case "5" : Десятки = "пятьдесят " : n = Right(n, 1)
Case "6" : Десятки = "шестьдесят " : n = Right(n, 1)
Case "7" : Десятки = "семьдесят " : n = Right(n, 1)
Case "8" : Десятки = "восемьдесят " : n = Right(n, 1)
Case "9" : Десятки = "девяносто " : n = Right(n, 1)
End Select

Dim Двадцатка As String
Двадцатка = ""
Select Case n
Case "0" : Двадцатка = ""
Case "1"
Select Case Sex
Case "м" : Двадцатка = "один "
Case "ж" : Двадцатка = "одна "
Case "с" : Двадцатка = "одно "
End Select
Case "2" :
Select Case Sex
Case "м" : Двадцатка = "два "
Case "ж" : Двадцатка = "две "
Case "с" : Двадцатка = "два "
End Select
Case "3" : Двадцатка = "три "
Case "4" : Двадцатка = "четыре "
Case "5" : Двадцатка = "пять "
Case "6" : Двадцатка = "шесть "
Case "7" : Двадцатка = "семь "
Case "8" : Двадцатка = "восемь "
Case "9" : Двадцатка = "девять "
Case "10" : Двадцатка = "десять "
Case "11" : Двадцатка = "одиннадцать "
Case "12" : Двадцатка = "двенадцать "
Case "13" : Двадцатка = "тринадцать "
Case "14" : Двадцатка = "четырнадцать "
Case "15" : Двадцатка = "пятнадцать "
Case "16" : Двадцатка = "шестнадцать "
Case "17" : Двадцатка = "семнадцать "
Case "18" : Двадцатка = "восемнадцать "
Case "19" : Двадцатка = "девятнадцать "
End Select

Десятки = Десятки & Двадцатка
End Function

Function ИмяРазряда(Строка As String , n As String , Имя1 As String , Имя24 As String , ИмяПроч As String ) As String

Select Case n
Case "1" : ИмяРазряда = Имя1
Case "2" , "3" , "4" : ИмяРазряда = Имя24
Case Else : ИмяРазряда = ИмяПроч
End Select
End If

ЧислоПропись.

Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:

Function ЧислоПрописьюВалюта(Число As Double , Optional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = "Функция преобразовывает число суммы текстовыми словами"
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = " \n1"
Dim Edinicy(0 To 19) As String : Dim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As String : Dim Sotni(0 To 9) As String : Dim mlrd(0 To 9) As String
Dim mln(0 To 9) As String : Dim tys(0 To 9) As String
Dim SumInt, x, shag, vl As Integer : Dim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = "" : EdinicyPoslednie(0) = IIf(Валюта = 0, "евро" , IIf(Валюта = 1, "рублей" , "долларов" ))
Edinicy(1) = "один " : EdinicyPoslednie(1) = IIf(Валюта = 0, "один евро" , IIf(Валюта = 1, "один рубль" , "один доллар" ))
Edinicy(2) = "два " : EdinicyPoslednie(2) = IIf(Валюта = 0, "два евро" , IIf(Валюта = 1, "два рубля" , "два доллара" ))
Edinicy(3) = "три " : EdinicyPoslednie(3) = IIf(Валюта = 0, "три евро" , IIf(Валюта = 1, "три рубля" , "три доллара" ))
Edinicy(4) = "четыре " : EdinicyPoslednie(4) = IIf(Валюта = 0, "четыре евро" , IIf(Валюта = 1, "четыре рубля" , "четыре доллара" ))
Edinicy(5) = "пять " : EdinicyPoslednie(5) = IIf(Валюта = 0, "пять евро" , IIf(Валюта = 1, "пять рублей" , "пять долларов" ))
Edinicy(6) = "шесть " : EdinicyPoslednie(6) = IIf(Валюта = 0, "шесть евро" , IIf(Валюта = 1, "шесть рублей" , "шесть долларов" ))
Edinicy(7) = "семь " : EdinicyPoslednie(7) = IIf(Валюта = 0, "семь евро" , IIf(Валюта = 1, "семь рублей" , "семь долларов" ))
Edinicy(8) = "восемь " : EdinicyPoslednie(8) = IIf(Валюта = 0, "восемь евро" , IIf(Валюта = 1, "восемь рублей" , "восемь долларов" ))
Edinicy(9) = "девять " : EdinicyPoslednie(9) = IIf(Валюта = 0, "девять евро" , IIf(Валюта = 1, "девять рублей" , "девять долларов" ))
Edinicy(11) = "одиннадцать " : EdinicyPoslednie(11) = IIf(Валюта = 0, "одиннадцать евро" , IIf(Валюта = 1, "одиннадцать рублей" , "одиннадцать долларов" ))
Edinicy(12) = "надцать " : EdinicyPoslednie(12) = IIf(Валюта = 0, "надцать евро" , IIf(Валюта = 1, "надцать рублей" , "надцать долларов" ))
Edinicy(13) = "тринадцать " : EdinicyPoslednie(13) = IIf(Валюта = 0, "тринадцать евро" , IIf(Валюта = 1, "тринадцать рублей" , "тринадцать долларов" ))
Edinicy(14) = "четырнадцать " : EdinicyPoslednie(14) = IIf(Валюта = 0, "четырнадцать евро" , IIf(Валюта = 1, "четырнадцать рублей" , "четырнадцать долларов" ))
Edinicy(15) = "пятнадцать " : EdinicyPoslednie(15) = IIf(Валюта = 0, "пятнадцать евро" , IIf(Валюта = 1, "пятнадцать рублей" , "пятнадцать долларов" ))
Edinicy(16) = "шестнадцать " : EdinicyPoslednie(16) = IIf(Валюта = 0, "шестнадцать евро" , IIf(Валюта = 1, "шестнадцать рублей" , "шестнадцать долларов" ))
Edinicy(17) = "семнадцать " : EdinicyPoslednie(17) = IIf(Валюта = 0, "семнадцать евро" , IIf(Валюта = 1, "семнадцать рублей" , "семнадцать долларов" ))
Edinicy(18) = "восемнадцать " : EdinicyPoslednie(18) = IIf(Валюта = 0, "восемнадцать евро" , IIf(Валюта = 1, "восемнадцать рублей" , "восемнадцать долларов" ))
Edinicy(19) = "девятнадцать " : EdinicyPoslednie(19) = IIf(Валюта = 0, "девятнадцать евро" , IIf(Валюта = 1, "девятнадцать рублей" , "девятнадцать долларов" ))
»———————————————
Desyatki(0) = "" : Sotni(0) = "" : tys(0) = "тисячь " : mln(0) = "миллионов " : mlrd(0) = "миллиардов "
Desyatki(1) = "десять " : Sotni(1) = "сто " : tys(1) = "тысяча " : mln(1) = "миллион " : mlrd(1) = "миллиарда "
Desyatki(2) = "двадцать " : Sotni(2) = "двести " : tys(2) = "тысячи " : mln(2) = "миллиона " : mlrd(2) = "миллиарда "
Desyatki(3) = "тридцать " : Sotni(3) = "триста " : tys(3) = "тысячи " : mln(3) = "миллиона " : mlrd(3) = "миллиарда "
Desyatki(4) = "сорок " : Sotni(4) = "четыреста " : tys(4) = "тысячи " : mln(4) = "миллиона " : mlrd(4) = "миллиарда "
Desyatki(5) = "пятьдесят " : Sotni(5) = "пятьсот " : tys(5) = "тысяч " : mln(5) = "миллионов " : mlrd(5) = "миллиардов "
Desyatki(6) = "шестьдесят " : Sotni(6) = "шестьсот " : tys(6) = "тысяч " : mln(6) = "миллионов " : mlrd(6) = "миллиардов "
Desyatki(7) = "семьдесят " : Sotni(7) = "семьсот " : tys(7) = "тысяч " : mln(7) = "миллионов " : mlrd(7) = "миллиардов "
Desyatki(8) = "восемьдесят " : Sotni(8) = "восемьсот " : tys(8) = "тысяч " : mln(8) = "миллионов " : mlrd(8) = "миллиардов "
Desyatki(9) = "девяносто " : Sotni(9) = "девятьсот " : tys(9) = "тысяч " : mln(9) = "миллионов " : mlrd(9) = "миллиардов "
‘———————————————

On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
shag = shag + 1
Select Case x
Case 12 ‘ — сотни миллиардов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 11 ‘ — десятки миллиардов
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 10 ‘ — единицы миллиардов
vl = Mid(SumInt, shag, 1)
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & "миллиарда " Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на "мільярдов" независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mlrd(vl)
End If

Case 9 ‘ — сотни миллионов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 8 ‘ — десятки миллионов
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 7 ‘ — единицы миллионов
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = "0" ) Then GoTo 10
End If
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & "миллиона " Else : txt = txt & Edinicy(vl) & mln(vl) ‘числа в диапозоне от 11 до 19 склоняются на "миллиардов" независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mln(vl)
End If
‘-КОНЕЦ БЛОКА_______________________

Case 6 ‘ — сотни тысяч
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 5 ‘ — десятки тысяч
vl = Mid(SumInt, shag, 1)
If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 4 ‘ — единицы тысяч
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = "0" ) Then GoTo 10
End If
Sclon_Tys = Edinicy(vl) & tys(vl) ‘ — вводим переменную Sclon_Tys из-за иного склонения тысяч в русском языке
If vl = 1 Then Sclon_Tys = "одна " & tys(vl) ‘ — для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys )
If vl = 2 Then Sclon_Tys = "две " & tys(vl) ‘ — для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys )
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag — 1, 2)) & "тисяч "
End If
txt = txt & Sclon_Tys

‘-КОНЕЦ БЛОКА_______________________
Case 3 ‘ — сотни
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 2 ‘ — десятки
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 1 ‘ — единицы
If Mid(SumInt, shag — 1, 1) <> 1 Or Mid(SumInt, shag — 1, 2) = "10" Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag — 1, 2)
txt = txt & EdinicyPoslednie(vl)

End Select
10: Next x
a = Число
b = Int(a)
c = (Round(a — b, 2)) * 100
If c < 10 And c >= 1 Then c = "0" + CStr(c)
If c = 0 Then c = CStr(c) + "0"
d = ""
If Валюта = 1 Then d = "коп." Else d = "цен."
If Валюта > 2 Or Валюта < 0 Then MsgBox "Укажите параметр 0-2"
If Валюта > 2 Or Валюта < 0 Then GoTo 11
If Копейки = 0 Then
d = ""
c = ""
End If
If Копейки = 2 Then d = ""
If Копейки > 2 Or Копейи < 0 Then MsgBox "Укажите параметр 0, 1 или 2"
If Копейки > 2 Or Копейки < 0 Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + " " + CStr(c) + d
11:
End Function

Sub DescribeFunction()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1 To 3) As String

FuncName = "ЧислоПрописьюВалюта"
FuncDesc = "Функция преобразовывает число суммы текстовыми словами"
Category = 1 ‘Text category
ArgDesc(1) = "Исходная сумма"
ArgDesc(2) = "(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары."
ArgDesc(3) = "(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов)."

Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
ArgumentDescriptions:=ArgDesc
End Sub

Также не забудьте добавить в рабочую книгу код вызова макроса регистрации DescribeFunction, чтобы отображать описание атрибутов для пользовательской функции:

Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»

ЧислоПрописьюВалюта.

Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:

  • 1-рубли;
  • 2-доллары;
  • 0-евро;

Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).

Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:

ЧислоСловоВалюта гривня.

Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.

Как в экселе число написать буквами

Цифры прописью в Excel — вот так чудо, и это один из наглядных примеров рационального использования достижений автоматизации процессов. О такой возможности многие пользователи и не догадываются, а между тем можно порядком сэкономить драгоценное время.

Цифры прописью в Excel

Для замены цифр прописью в Excel потребуется воспользоваться дополнительной надстройкой, но не стоит пугаться, если вы ничего в этом не понимаете. Читайте и делайте согласно инструкции, и все у вас получится.

Интересно. Как сделать подобное в Word читайте здесь.

Число прописью в Экселе. Установка

В данном уроке вам будет предложено скачать бесплатно корректно работающий вариант приложения для написания числа прописью найденного на просторах интернета.

Как правило, необходимость конвертировать цифры в текст возникает в различных бухгалтерских и платежных документах, поэтому радует и наличие возможности выбора основных валют (рубли, доллары и евро).

Довольно лирики, давайте приступим и подробно разберемся, как написать число прописью.

Делаем в следующем порядке:

1. Скачиваем и распаковываем файл кликнув здесь.

2. Закиньте файл NUMSTR.XLA в папку Library, которая находится C:\ProgramFiles (x86)\MicrosoftOffice\Office14\Library (возможно расположение немного отличается, зависит от версий ПО).

3. Запустите Excel и на вкладке «Разработчик» кликните по кнопке «Надстройки» ( если ее нет, читайте ниже ).

Внимание. Если нет вкладки «Разработчик», пройдите Файл → Параметры → Настройка ленты и установите галку напротив пункта «Разработчик».

4. В окне «Надстройки» отметьте пункт NumStrAdd-in и нажмите ОК.

Число прописью в Excel. Как пользоваться

Расширение установлено, теперь несколько слов как использовать:

5. Для примера напишите в произвольной ячейке число цифрами.

6. Кликните по кнопке «Вставить Функцию».

7. В открывшемся окне «Мастер функций» в списке «Категория» выберите «Определенные пользователем».

8. После этого выберите необходимую функцию:

NumStr – отобразит цифры буквами в Excel;

RubStr — преобразует число прописью в рублях;

USDStr – конвертирует число прописью в долларах;

EURStr – выведет сумму прописью в евро.

9. В следующем окне «Аргументы функции» укажите в поле ячейку с данными (кликнут курсором) или непосредственно число цифрами, завершив нажатием кнопки ОК и растянувшейся улыбкой.

Интересно. Как закрепить строки в Excel читайте тут.

Сумма прописью в Microsoft Excel

При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.

Использование надстройки

В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.

Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.

Перемещаемся в раздел «Параметры».

В активном окне параметров переходим в раздел «Надстройки».

Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».

В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».

Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».

Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».

Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.

Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».

Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5) , то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».

Если вы введете в ячейку формулу =Сумма_прописью(A2) , то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.

Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.

Сумма прописью в Excel: как написать число текстом

Здравствуйте.

Нередко в различных документах Excel (особенно, связанных с бухгалтерией, подсчетом денег и т.д. 👌) требуется прописать полученную сумму «Итого» прописью (текстом). Например, рядом с числом «5100,45» — написать «пять тысяч сто рублей 45 копеек».

Встроенной простой функции для решения это небольшой задачки в Excel нет (к сожалению). Разумеется, чтобы каждый раз не работать «руками», решая эту задачу — лучше это всё автоматизировать!

Собственно, об этом и будет эта небольшая заметка.

Важно: не претендую на истину в последней инстанции. Предложенный мной способ — не лучший и не худший (есть и другие). Просто он наиболее быстрый и простой для понимания любым неподготовленным пользователем.

Автоматически: число —> текст

Для расширения функций Excel нам понадобиться сторонняя надстройка . Своего рода это скрипт, который нужно будет установить в Excel, а потом использовать его (делается это очень просто). Ссылку на эту надстройку привожу ниже. 👇

Загрузить этот спец. файл можно отсюда: ссылка на Яндекс-диск (на вирусы проверено, всё чисто ✔). Совместимо с Excel 2019, 2016, 2013 (с др. не проверял).

Она позволит написать сумму прописью на русском языке:

После открываем Excel и переходим в меню «Файл/параметры» .

Далее в разделе «Надстройки» нажимаем по кнопке «Перейти» (в нижней части окна).

Надстройки Excel — перейти

Затем с помощью кнопки «Обзор» указываем загруженную надстройку (см. ШАГ 1 ☝), ставим галочку напротив «Сумма прописью» и нажимаем OK. См. пример ниже. 👇

Если всё прошло корректно — то в Excel должно было появиться 4-ре новых функции. Чтобы проверить так ли это — попробуйте начать вводить функцию «=сум» (на русском!). 👇

Теперь в Excel появилось 4 новых функции

Собственно, осталось дело за малым: написать формулу, например, «=Сумма прописью ()» , а в скобках указать ячейку, в которой у вас находится число (сумма), требующуюся написать прописью.

Как видите из примера ниже — всё работает! «Пятьдесят четыре тысячи сто семьдесят семь рублей 84 копейки» (прямо как во всех бухгалтерских документах) 👌

Очень простые альтернативные решения — приветствуются!

Как перевести сумму или число прописью в Excel

Часто нужно перевести число в текст в Excel так, чтобы оно отображалось прописью (словами) на русском или других языках. Так как по умолчанию нет готовой функции, создадим свою пользовательскую функцию с помощью макросов.

Пример использования пользовательской функции для преобразования числа суммы в текстовые слова, которую можно скачать в конце статьи:

Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:

  1. Открыть редактор макросов ALT+F11.
  2. Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub . Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем».
  3. Вставить в модуль следующий код и сохранить:

Function ЧислоПропись(Число As Currency ) As String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String , strМиллионы As String , strТысячи As String , strЕдиницы As String , strСотые As String
Dim Поз As Integer

strЧисло = Format(Int(Число), «000000000000» )

‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), «м» )
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), «миллиард » , «миллиарда » , «миллиардов » )

‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), «м» )
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), «миллион » , «миллиона » , «миллионов » )

‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), «ж» )
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), «тысяча » , «тысячи » , «тысяч » )

‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), «м» )
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = «» Then strЕдиницы = «ноль »
‘strЕдиницы = strЕдиницы & ИмяРазряда(» «, Mid(strЧисло, Поз + 1, 2), «рубль «, «рубля «, «рублей «)

‘Сотые’
‘strСотые = strКопейки & » » & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘»копейка», «копейки», «копеек»)

ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) — 1)

Число_Error:
MsgBox Err.Description
End Function

Function Сотни(n As String ) As String
Сотни = «»
Select Case n
Case 0: Сотни = «»
Case 1: Сотни = «сто »
Case 2: Сотни = «двести »
Case 3: Сотни = «триста »
Case 4: Сотни = «четыреста »
Case 5: Сотни = «пятьсот »
Case 6: Сотни = «шестьсот »
Case 7: Сотни = «семьсот »
Case 8: Сотни = «восемьсот »
Case 9: Сотни = «девятьсот »
End Select
End Function

Function Десятки(n As String , Sex As String ) As String
Десятки = «»
Select Case Left(n, 1)
Case «0» : Десятки = «» : n = Right(n, 1)
Case «1» : Десятки = «»
Case «2» : Десятки = «двадцать » : n = Right(n, 1)
Case «3» : Десятки = «тридцать » : n = Right(n, 1)
Case «4» : Десятки = «сорок » : n = Right(n, 1)
Case «5» : Десятки = «пятьдесят » : n = Right(n, 1)
Case «6» : Десятки = «шестьдесят » : n = Right(n, 1)
Case «7» : Десятки = «семьдесят » : n = Right(n, 1)
Case «8» : Десятки = «восемьдесят » : n = Right(n, 1)
Case «9» : Десятки = «девяносто » : n = Right(n, 1)
End Select

Dim Двадцатка As String
Двадцатка = «»
Select Case n
Case «0» : Двадцатка = «»
Case «1»
Select Case Sex
Case «м» : Двадцатка = «один »
Case «ж» : Двадцатка = «одна »
Case «с» : Двадцатка = «одно »
End Select
Case «2» :
Select Case Sex
Case «м» : Двадцатка = «два »
Case «ж» : Двадцатка = «две »
Case «с» : Двадцатка = «два »
End Select
Case «3» : Двадцатка = «три »
Case «4» : Двадцатка = «четыре »
Case «5» : Двадцатка = «пять »
Case «6» : Двадцатка = «шесть »
Case «7» : Двадцатка = «семь »
Case «8» : Двадцатка = «восемь »
Case «9» : Двадцатка = «девять »
Case «10» : Двадцатка = «десять »
Case «11» : Двадцатка = «одиннадцать »
Case «12» : Двадцатка = «двенадцать »
Case «13» : Двадцатка = «тринадцать »
Case «14» : Двадцатка = «четырнадцать »
Case «15» : Двадцатка = «пятнадцать »
Case «16» : Двадцатка = «шестнадцать »
Case «17» : Двадцатка = «семнадцать »
Case «18» : Двадцатка = «восемнадцать »
Case «19» : Двадцатка = «девятнадцать »
End Select

Десятки = Десятки & Двадцатка
End Function

Function ИмяРазряда(Строка As String , n As String , Имя1 As String , Имя24 As String , ИмяПроч As String ) As String

Select Case n
Case «1» : ИмяРазряда = Имя1
Case «2» , «3» , «4» : ИмяРазряда = Имя24
Case Else : ИмяРазряда = ИмяПроч
End Select
End If

Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:

Function ЧислоПрописьюВалюта(Число As Double , Optional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = «Функция преобразовывает число суммы текстовыми словами»
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = » \n1″
Dim Edinicy(0 To 19) As String : Dim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As String : Dim Sotni(0 To 9) As String : Dim mlrd(0 To 9) As String
Dim mln(0 To 9) As String : Dim tys(0 To 9) As String
Dim SumInt, x, shag, vl As Integer : Dim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = «» : EdinicyPoslednie(0) = IIf(Валюта = 0, «евро» , IIf(Валюта = 1, «рублей» , «долларов» ))
Edinicy(1) = «один » : EdinicyPoslednie(1) = IIf(Валюта = 0, «один евро» , IIf(Валюта = 1, «один рубль» , «один доллар» ))
Edinicy(2) = «два » : EdinicyPoslednie(2) = IIf(Валюта = 0, «два евро» , IIf(Валюта = 1, «два рубля» , «два доллара» ))
Edinicy(3) = «три » : EdinicyPoslednie(3) = IIf(Валюта = 0, «три евро» , IIf(Валюта = 1, «три рубля» , «три доллара» ))
Edinicy(4) = «четыре » : EdinicyPoslednie(4) = IIf(Валюта = 0, «четыре евро» , IIf(Валюта = 1, «четыре рубля» , «четыре доллара» ))
Edinicy(5) = «пять » : EdinicyPoslednie(5) = IIf(Валюта = 0, «пять евро» , IIf(Валюта = 1, «пять рублей» , «пять долларов» ))
Edinicy(6) = «шесть » : EdinicyPoslednie(6) = IIf(Валюта = 0, «шесть евро» , IIf(Валюта = 1, «шесть рублей» , «шесть долларов» ))
Edinicy(7) = «семь » : EdinicyPoslednie(7) = IIf(Валюта = 0, «семь евро» , IIf(Валюта = 1, «семь рублей» , «семь долларов» ))
Edinicy(8) = «восемь » : EdinicyPoslednie(8) = IIf(Валюта = 0, «восемь евро» , IIf(Валюта = 1, «восемь рублей» , «восемь долларов» ))
Edinicy(9) = «девять » : EdinicyPoslednie(9) = IIf(Валюта = 0, «девять евро» , IIf(Валюта = 1, «девять рублей» , «девять долларов» ))
Edinicy(11) = «одиннадцать » : EdinicyPoslednie(11) = IIf(Валюта = 0, «одиннадцать евро» , IIf(Валюта = 1, «одиннадцать рублей» , «одиннадцать долларов» ))
Edinicy(12) = «надцать » : EdinicyPoslednie(12) = IIf(Валюта = 0, «надцать евро» , IIf(Валюта = 1, «надцать рублей» , «надцать долларов» ))
Edinicy(13) = «тринадцать » : EdinicyPoslednie(13) = IIf(Валюта = 0, «тринадцать евро» , IIf(Валюта = 1, «тринадцать рублей» , «тринадцать долларов» ))
Edinicy(14) = «четырнадцать » : EdinicyPoslednie(14) = IIf(Валюта = 0, «четырнадцать евро» , IIf(Валюта = 1, «четырнадцать рублей» , «четырнадцать долларов» ))
Edinicy(15) = «пятнадцать » : EdinicyPoslednie(15) = IIf(Валюта = 0, «пятнадцать евро» , IIf(Валюта = 1, «пятнадцать рублей» , «пятнадцать долларов» ))
Edinicy(16) = «шестнадцать » : EdinicyPoslednie(16) = IIf(Валюта = 0, «шестнадцать евро» , IIf(Валюта = 1, «шестнадцать рублей» , «шестнадцать долларов» ))
Edinicy(17) = «семнадцать » : EdinicyPoslednie(17) = IIf(Валюта = 0, «семнадцать евро» , IIf(Валюта = 1, «семнадцать рублей» , «семнадцать долларов» ))
Edinicy(18) = «восемнадцать » : EdinicyPoslednie(18) = IIf(Валюта = 0, «восемнадцать евро» , IIf(Валюта = 1, «восемнадцать рублей» , «восемнадцать долларов» ))
Edinicy(19) = «девятнадцать » : EdinicyPoslednie(19) = IIf(Валюта = 0, «девятнадцать евро» , IIf(Валюта = 1, «девятнадцать рублей» , «девятнадцать долларов» ))
»———————————————
Desyatki(0) = «» : Sotni(0) = «» : tys(0) = «тисячь » : mln(0) = «миллионов » : mlrd(0) = «миллиардов »
Desyatki(1) = «десять » : Sotni(1) = «сто » : tys(1) = «тысяча » : mln(1) = «миллион » : mlrd(1) = «миллиарда »
Desyatki(2) = «двадцать » : Sotni(2) = «двести » : tys(2) = «тысячи » : mln(2) = «миллиона » : mlrd(2) = «миллиарда »
Desyatki(3) = «тридцать » : Sotni(3) = «триста » : tys(3) = «тысячи » : mln(3) = «миллиона » : mlrd(3) = «миллиарда »
Desyatki(4) = «сорок » : Sotni(4) = «четыреста » : tys(4) = «тысячи » : mln(4) = «миллиона » : mlrd(4) = «миллиарда »
Desyatki(5) = «пятьдесят » : Sotni(5) = «пятьсот » : tys(5) = «тысяч » : mln(5) = «миллионов » : mlrd(5) = «миллиардов »
Desyatki(6) = «шестьдесят » : Sotni(6) = «шестьсот » : tys(6) = «тысяч » : mln(6) = «миллионов » : mlrd(6) = «миллиардов »
Desyatki(7) = «семьдесят » : Sotni(7) = «семьсот » : tys(7) = «тысяч » : mln(7) = «миллионов » : mlrd(7) = «миллиардов »
Desyatki(8) = «восемьдесят » : Sotni(8) = «восемьсот » : tys(8) = «тысяч » : mln(8) = «миллионов » : mlrd(8) = «миллиардов »
Desyatki(9) = «девяносто » : Sotni(9) = «девятьсот » : tys(9) = «тысяч » : mln(9) = «миллионов » : mlrd(9) = «миллиардов »
‘———————————————

On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
shag = shag + 1
Select Case x
Case 12 ‘ — сотни миллиардов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 11 ‘ — десятки миллиардов
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 10 ‘ — единицы миллиардов
vl = Mid(SumInt, shag, 1)
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиарда » Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на «мільярдов» независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mlrd(vl)
End If

Case 9 ‘ — сотни миллионов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 8 ‘ — десятки миллионов
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 7 ‘ — единицы миллионов
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0» ) Then GoTo 10
End If
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиона » Else : txt = txt & Edinicy(vl) & mln(vl) ‘числа в диапозоне от 11 до 19 склоняются на «миллиардов» независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mln(vl)
End If
‘-КОНЕЦ БЛОКА_______________________

Case 6 ‘ — сотни тысяч
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 5 ‘ — десятки тысяч
vl = Mid(SumInt, shag, 1)
If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 4 ‘ — единицы тысяч
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0» ) Then GoTo 10
End If
Sclon_Tys = Edinicy(vl) & tys(vl) ‘ — вводим переменную Sclon_Tys из-за иного склонения тысяч в русском языке
If vl = 1 Then Sclon_Tys = «одна » & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную Sclon_Tys )
If vl = 2 Then Sclon_Tys = «две » & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную Sclon_Tys )
If shag > 1 Then
If Mid(SumInt, shag — 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag — 1, 2)) & «тисяч »
End If
txt = txt & Sclon_Tys

‘-КОНЕЦ БЛОКА_______________________
Case 3 ‘ — сотни
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 2 ‘ — десятки
vl = Mid(SumInt, shag, 1)
If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
Case 1 ‘ — единицы
If Mid(SumInt, shag — 1, 1) <> 1 Or Mid(SumInt, shag — 1, 2) = «10» Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag — 1, 2)
txt = txt & EdinicyPoslednie(vl)

End Select
10: Next x
a = Число
b = Int(a)
c = (Round(a — b, 2)) * 100
If c And c >= 1 Then c = «0» + CStr(c)
If c = 0 Then c = CStr(c) + «0»
d = «»
If Валюта = 1 Then d = «коп.» Else d = «цен.»
If Валюта > 2 Or Валюта Then MsgBox «Укажите параметр 0-2»
If Валюта > 2 Or Валюта Then GoTo 11
If Копейки = 0 Then
d = «»
c = «»
End If
If Копейки = 2 Then d = «»
If Копейки > 2 Or Копейи Then MsgBox «Укажите параметр 0, 1 или 2»
If Копейки > 2 Or Копейки Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + » » + CStr(c) + d
11:
End Function

Sub DescribeFunction()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1 To 3) As String

FuncName = «ЧислоПрописьюВалюта»
FuncDesc = «Функция преобразовывает число суммы текстовыми словами»
Category = 1 ‘Text category
ArgDesc(1) = «Исходная сумма»
ArgDesc(2) = «(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары.»
ArgDesc(3) = «(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов).»

Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
ArgumentDescriptions:=ArgDesc
End Sub

Также не забудьте добавить в рабочую книгу код вызова макроса регистрации DescribeFunction, чтобы отображать описание атрибутов для пользовательской функции:

Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»

Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:

Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).

Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:

Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *