Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Готовые решения

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35704
Главная » Готовые решения » Excel » Формулы

Сумма прописью
28.07.2013, 12:37
[ Файл-пример (89.5Kb) ]
Преобразует число (например 10,5) в текст (десять руб 50 коп.)
Для того что бы перевести сумму денежных средств из числового представления в текстовое воспользуйтесь формулами из вложения. В файле представлены три варианта решения этой задачи: одной формулой:
Code
=ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(A1/10^8);10)+1)&ВЫБОР(ОСТАТ(ОТБР(A1/10^7);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(A1/10^6);10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОСТАТ(ОТБР(A1/10^7);10)<>1;ИНДЕКС({"";"один ";"два ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(A1/10^6);10)+1);"")&ЕСЛИ(ОСТАТ(ОТБР(A1/10^6);1000);"миллион"&ЕСЛИ(ОСТАТ(ОТБР(A1/10^7);10)=1;"ов ";ВПР(ОСТАТ(ОТБР(A1/10^6);10);{0;"ов ":1;" ":2;"а ":5;"ов "};2));"")&ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(A1/10^5);10)+1)&ВЫБОР(ОСТАТ(ОТБР(A1/10^4);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(A1/1000);10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОСТАТ(ОТБР(A1/10^4);10)<>1;ИНДЕКС({"";"одна ";"две ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(A1/1000);10)+1);"")&ЕСЛИ(ОСТАТ(ОТБР(A1/1000);1000);"тысяч"&ЕСЛИ(ОСТАТ(ОТБР(A1/10^4);10)=1;" ";ВПР(ОСТАТ(ОТБР(A1/1000);10);{0;" ":1;"а ":2;"и ":5;" "};2));"")&ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(A1/100);10)+1)&ВЫБОР(ОСТАТ(ОТБР(A1/10);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(A1);10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОТБР(A1)=0;"ноль ";ЕСЛИ(ОСТАТ(ОТБР(A1/10);10)<>1;ИНДЕКС({"";"один ";"два ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(A1);10)+1);""))&"рубл"&ЕСЛИ(ОСТАТ(ОТБР(A1/10);10)=1;"ей";ВПР(ОСТАТ(ОТБР(A1);10);{0;"ей":1;"ь":2;"я":5;"ей"};2))&ТЕКСТ(ОТБР((A1-ОТБР(A1)+0,00001)*100);" 00\ коп.;;")
так же с помощью имен и с помощью вспомогательных ячеек
Добавил: MCH |
Просмотров: 32572 | Рейтинг: 4.2/6
Всего комментариев: 4
0   Спам
1    MCH   (04.08.2013 15:33)
   Есть доработанные варианты прописи: http://www.excelworld.ru/forum/3-9902-1

0   Спам
2    mr_vads   (22.03.2014 03:18)
   огоаа... где-то в сети видел макрос с пользовательской функцией, но это - это чересчур) и удивление, и жалость) сам бы не написал такую задачу формулой, точно

+1  
3    NataLatka   (22.04.2014 16:53)
   конечно здорово!!!, но кто-то же придумал надстройку NUM2TEXT, которая возвращает число в виде текста и наоборот текст в число, только если не ошибаюсь TEXT2NUM, первой пользуюсь уже очень давно лет 6 назад об этом узнала.

0   Спам
4    Troynoy   (28.04.2015 20:46)
   Великолепное решение! Спасибо большое!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!