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

Вход

Регистрация

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

 

= Мир MS Excel/Перевод текста в число - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перевод текста в число (Макросы Sub)
Перевод текста в число
M73568 Дата: Среда, 12.06.2013, 15:28 | Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 46 ±
Замечаний: 0% ±

2007-2013
Бета-тестер во мне не умрёт никогда biggrin
Скормил вашим функциям:
Цитата

Тысяча сто
Одна две три тысячи
Одна Тысяча тысяч
две сотни
два десятка

Интересные результаты выходят wink

Распознали только миллион функции МСН, ну и просуммировали вторую строчку все
 
Ответить
СообщениеБета-тестер во мне не умрёт никогда biggrin
Скормил вашим функциям:
Цитата

Тысяча сто
Одна две три тысячи
Одна Тысяча тысяч
две сотни
два десятка

Интересные результаты выходят wink

Распознали только миллион функции МСН, ну и просуммировали вторую строчку все

Автор - M73568
Дата добавления - 12.06.2013 в 15:28
MCH Дата: Среда, 12.06.2013, 20:16 | Сообщение № 22
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Цитата (M73568)
Скормил вашим функциям

Я у себя в функции поверку на корректность исходной информации не делал, и какой должен быть результат для вышеперечисленных значений - #ЗНАЧ!?
Все вышеперечисленные варианты не являются корректной прописью для числительных
Настроить десятки и сотни путем умножения на 10 и 100 не составляет труда.

По ссылке на "Планету", которую я приводил есть вариант от ikki, в котором реализована проверка на корректность ввода

2AndreTM,
Андрей, твоя функция чувствительна к лишним пробелам, добавляет дробные значения если есть двойной пробел или лишний пробел в конце текста
 
Ответить
Сообщение
Цитата (M73568)
Скормил вашим функциям

Я у себя в функции поверку на корректность исходной информации не делал, и какой должен быть результат для вышеперечисленных значений - #ЗНАЧ!?
Все вышеперечисленные варианты не являются корректной прописью для числительных
Настроить десятки и сотни путем умножения на 10 и 100 не составляет труда.

По ссылке на "Планету", которую я приводил есть вариант от ikki, в котором реализована проверка на корректность ввода

2AndreTM,
Андрей, твоя функция чувствительна к лишним пробелам, добавляет дробные значения если есть двойной пробел или лишний пробел в конце текста

Автор - MCH
Дата добавления - 12.06.2013 в 20:16
AndreTM Дата: Четверг, 13.06.2013, 03:43 | Сообщение № 23
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Цитата (MCH)
Андрей, твоя функция чувствительна к лишним пробелам
Естественно. Мы же уже упоминали про "корректную пропись" smile
Впрочем, я всё равно собирался сборку конечного числа внести в один цикл с парсингом, так что заодно исправил и это.

----------------------
Для M73568, если есть желание smile

Если изменить определение порядка числительного на вот такое:
то будет правильно вычисляться не только число, начинающееся с квалификатора ("тысяча сто"), но и квалификатор как множитель ("пять тысяч миллионов"). Что касается "сотен" и "десятков" как квалификаторов порядка - у Михаила это делается легко, у меня - потребует небольшого изменения алгоритма. С другой стороны, сейчас у меня "квалификатор" ищется по такому алгоритму, что может получаться очень интересный результат при использовании "неподходящих" слов: сравните, например, "двадцать арбузов", "двадцать один арбуз" и "двадцать два арбузана" smile

И было бы интересно посмотреть на то, как функции будут разбирать числительные с разными склонениями.


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 13.06.2013, 05:18
 
Ответить
Сообщение
Цитата (MCH)
Андрей, твоя функция чувствительна к лишним пробелам
Естественно. Мы же уже упоминали про "корректную пропись" smile
Впрочем, я всё равно собирался сборку конечного числа внести в один цикл с парсингом, так что заодно исправил и это.

----------------------
Для M73568, если есть желание smile

Если изменить определение порядка числительного на вот такое:
то будет правильно вычисляться не только число, начинающееся с квалификатора ("тысяча сто"), но и квалификатор как множитель ("пять тысяч миллионов"). Что касается "сотен" и "десятков" как квалификаторов порядка - у Михаила это делается легко, у меня - потребует небольшого изменения алгоритма. С другой стороны, сейчас у меня "квалификатор" ищется по такому алгоритму, что может получаться очень интересный результат при использовании "неподходящих" слов: сравните, например, "двадцать арбузов", "двадцать один арбуз" и "двадцать два арбузана" smile

И было бы интересно посмотреть на то, как функции будут разбирать числительные с разными склонениями.

Автор - AndreTM
Дата добавления - 13.06.2013 в 03:43
M73568 Дата: Четверг, 13.06.2013, 10:19 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 46 ±
Замечаний: 0% ±

2007-2013
Цитата (AndreTM)
Для M73568, если есть желание smile

Ну я же не в порядке критики, а просто мне было интересно, да и в голове крутилась песенка "Арии", "Тысяча сто и смерть в лицо..."
Просто результаты для значений отличающихся от контрольных различны для разных функций, вот например сегодня утром по радио услышал отрывок из мф "Карлсон который живёт на крыше", когда Малыш спрашивает "И даже за сто тысяч миллионов крон?", на работе скормил функциям эту цифру - результат просто песня, все три функции дают разный результат, как итог - "рекурсия рулит" и даёт самый правильный ответ wink

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

А что от склонения зависит числовое значение? smile


Сообщение отредактировал M73568 - Четверг, 13.06.2013, 10:20
 
Ответить
Сообщение
Цитата (AndreTM)
Для M73568, если есть желание smile

Ну я же не в порядке критики, а просто мне было интересно, да и в голове крутилась песенка "Арии", "Тысяча сто и смерть в лицо..."
Просто результаты для значений отличающихся от контрольных различны для разных функций, вот например сегодня утром по радио услышал отрывок из мф "Карлсон который живёт на крыше", когда Малыш спрашивает "И даже за сто тысяч миллионов крон?", на работе скормил функциям эту цифру - результат просто песня, все три функции дают разный результат, как итог - "рекурсия рулит" и даёт самый правильный ответ wink

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

А что от склонения зависит числовое значение? smile

Автор - M73568
Дата добавления - 13.06.2013 в 10:19
AndreTM Дата: Четверг, 13.06.2013, 10:56 | Сообщение № 25
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Цитата (M73568)
А что от склонения зависит числовое значение?
Теоретически - нет. А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та smile

Кстати, насчет "ста тысяч мильёнов", если уж правильно цитировать - то да, функции будут врать. А вот если слово будет в правильной форме, то моя, например (с вышеуказанным дополнением в расчёте порядка) - посчитает даже "миллион тысяч".


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 13.06.2013, 11:00
 
Ответить
Сообщение
Цитата (M73568)
А что от склонения зависит числовое значение?
Теоретически - нет. А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та smile

Кстати, насчет "ста тысяч мильёнов", если уж правильно цитировать - то да, функции будут врать. А вот если слово будет в правильной форме, то моя, например (с вышеуказанным дополнением в расчёте порядка) - посчитает даже "миллион тысяч".

Автор - AndreTM
Дата добавления - 13.06.2013 в 10:56
M73568 Дата: Четверг, 13.06.2013, 11:26 | Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 46 ±
Замечаний: 0% ±

2007-2013
Цитата (AndreTM)
Теоретически - нет. А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та smile

Тем они и хороши, никогда не знаешь что выдадут
Цитата
Она была одна и двадцать семь котов 28 28 1 028 000
Один стол четыре стула, табурет и окно в сад 5 5 105 000 002 000


biggrin И вот уже день не такой скучный
К сообщению приложен файл: _post_238026.xls (71.5 Kb)
 
Ответить
Сообщение
Цитата (AndreTM)
Теоретически - нет. А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та smile

Тем они и хороши, никогда не знаешь что выдадут
Цитата
Она была одна и двадцать семь котов 28 28 1 028 000
Один стол четыре стула, табурет и окно в сад 5 5 105 000 002 000


biggrin И вот уже день не такой скучный

Автор - M73568
Дата добавления - 13.06.2013 в 11:26
MCH Дата: Четверг, 13.06.2013, 18:38 | Сообщение № 27
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Цитата (M73568)
Один стол четыре стула, табурет и окно в сад

И какое значение у данного "числительного"?

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

Цитата (M73568)
А вообще наверное стоит предусмотреть промежуточную функцию которая приводила бы разговорный вариант к строго математическому

Представляю данную функцию... может быть нужно чтобы еще и ошибки исправляла?

Есть определенные правила написания числительных, все корректные надстройки "сумма прописью" формируют пропись в соответствии с правилами русского языка.
Недопустимо писать "миллион тысяча" для обозначения числа 1001000, нужно писать "один миллион одна тысяча"
 
Ответить
Сообщение
Цитата (M73568)
Один стол четыре стула, табурет и окно в сад

И какое значение у данного "числительного"?

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

Цитата (M73568)
А вообще наверное стоит предусмотреть промежуточную функцию которая приводила бы разговорный вариант к строго математическому

Представляю данную функцию... может быть нужно чтобы еще и ошибки исправляла?

Есть определенные правила написания числительных, все корректные надстройки "сумма прописью" формируют пропись в соответствии с правилами русского языка.
Недопустимо писать "миллион тысяча" для обозначения числа 1001000, нужно писать "один миллион одна тысяча"

Автор - MCH
Дата добавления - 13.06.2013 в 18:38
nerv Дата: Пятница, 14.06.2013, 02:33 | Сообщение № 28
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (AndreTM)
А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та

Цитата (AndreTM)
И было бы интересно посмотреть на то, как функции будут разбирать числительные с разными склонениями.

моя рега smile причесывала к надлежащему виду. Не все, конечно, но многое.


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 14.06.2013, 02:34
 
Ответить
Сообщение
Цитата (AndreTM)
А вот практически, предложенными функциями, да в различных падежах - тоже песня ещё та

Цитата (AndreTM)
И было бы интересно посмотреть на то, как функции будут разбирать числительные с разными склонениями.

моя рега smile причесывала к надлежащему виду. Не все, конечно, но многое.

Автор - nerv
Дата добавления - 14.06.2013 в 02:33
Гость Дата: Четверг, 20.06.2013, 21:02 | Сообщение № 29
Группа: Гости
Как перевести число 346523,5 в тысячи прописью?
 
Ответить
СообщениеКак перевести число 346523,5 в тысячи прописью?

Автор - Гость
Дата добавления - 20.06.2013 в 21:02
Pelena Дата: Четверг, 20.06.2013, 21:22 | Сообщение № 30
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Гость, воспользуйтесь поиском по форуму. К этой теме Ваш вопрос не имеет отношения


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеГость, воспользуйтесь поиском по форуму. К этой теме Ваш вопрос не имеет отношения

Автор - Pelena
Дата добавления - 20.06.2013 в 21:22
Юрий Дата: Среда, 11.12.2013, 12:04 | Сообщение № 31
Группа: Гости
Доброго дня!

после продолжительных поисков на просторах интернета набрел на ваш форум.

подскажите пожалуйста как представленный у вас в обсуждении код адаптировать под MSWord?
 
Ответить
СообщениеДоброго дня!

после продолжительных поисков на просторах интернета набрел на ваш форум.

подскажите пожалуйста как представленный у вас в обсуждении код адаптировать под MSWord?

Автор - Юрий
Дата добавления - 11.12.2013 в 12:04
MCH Дата: Среда, 11.12.2013, 13:35 | Сообщение № 32
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Функции пропись2число() и пропись2число3() из 17-го сообщения не используют объектную модель MS Excel, поэтому они должны корректно работать в любой версии VBA (под Excel, под MS Word и др.), а также в VB.
Не имею опыта работы с VBA под Word, поэтому не могу подсказать как "скормить" финкции исходные данные и получить ответ в Word.

Но стандартная конструкция:
[vba]
Код
Sub main()
     MsgBox пропись2число3(InputBox("Введите числительное прописью"))
End Sub
[/vba]
нормально работает
 
Ответить
СообщениеФункции пропись2число() и пропись2число3() из 17-го сообщения не используют объектную модель MS Excel, поэтому они должны корректно работать в любой версии VBA (под Excel, под MS Word и др.), а также в VB.
Не имею опыта работы с VBA под Word, поэтому не могу подсказать как "скормить" финкции исходные данные и получить ответ в Word.

Но стандартная конструкция:
[vba]
Код
Sub main()
     MsgBox пропись2число3(InputBox("Введите числительное прописью"))
End Sub
[/vba]
нормально работает

Автор - MCH
Дата добавления - 11.12.2013 в 13:35
Юрий Дата: Среда, 11.12.2013, 14:01 | Сообщение № 33
Группа: Гости
спасибо за быстрый ответ!

А можно для такого чайника как Я, как-нибудь по проще? =)

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

вот ищу рецепт от рутины %)
 
Ответить
Сообщениеспасибо за быстрый ответ!

А можно для такого чайника как Я, как-нибудь по проще? =)

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

вот ищу рецепт от рутины %)

Автор - Юрий
Дата добавления - 11.12.2013 в 14:01
Pelena Дата: Среда, 11.12.2013, 14:05 | Сообщение № 34
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
большая таблица в ворде

Перекиньте её в Excel, переведите, а потом обратно в Word


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
большая таблица в ворде

Перекиньте её в Excel, переведите, а потом обратно в Word

Автор - Pelena
Дата добавления - 11.12.2013 в 14:05
Юрий Дата: Среда, 11.12.2013, 14:10 | Сообщение № 35
Группа: Гости
спасибо за подсказку!

А может кто из форумчан возьмется за написание такого макроса для ворда?

За вознаграждение договоримся =)
 
Ответить
Сообщениеспасибо за подсказку!

А может кто из форумчан возьмется за написание такого макроса для ворда?

За вознаграждение договоримся =)

Автор - Юрий
Дата добавления - 11.12.2013 в 14:10
Pelena Дата: Среда, 11.12.2013, 14:19 | Сообщение № 36
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Перенести тему в раздел РАБОТА/ФРИЛАНС?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПеренести тему в раздел РАБОТА/ФРИЛАНС?

Автор - Pelena
Дата добавления - 11.12.2013 в 14:19
Юрий Дата: Среда, 11.12.2013, 14:41 | Сообщение № 37
Группа: Гости
тему думаю не нужно переносить, поскольку мой вопрос не присутствовал здесь изначально да и не совсем по данной теме.

лучше сам напишу в том разделе объявление.

спасибо вам за помощь!
 
Ответить
Сообщениетему думаю не нужно переносить, поскольку мой вопрос не присутствовал здесь изначально да и не совсем по данной теме.

лучше сам напишу в том разделе объявление.

спасибо вам за помощь!

Автор - Юрий
Дата добавления - 11.12.2013 в 14:41
Kimky Дата: Вторник, 30.09.2014, 11:07 | Сообщение № 38
Группа: Гости
Подскажите пожалуйста как преобразовать колонку такого типа:
349 сек
219 сек
141 сек
в просто числовой без сек:
349
219
141
 
Ответить
СообщениеПодскажите пожалуйста как преобразовать колонку такого типа:
349 сек
219 сек
141 сек
в просто числовой без сек:
349
219
141

Автор - Kimky
Дата добавления - 30.09.2014 в 11:07
ShAM Дата: Вторник, 30.09.2014, 11:39 | Сообщение № 39
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
как преобразовать

Прочитать Правила и не флудить в чужих темах.
 
Ответить
Сообщение
как преобразовать

Прочитать Правила и не флудить в чужих темах.

Автор - ShAM
Дата добавления - 30.09.2014 в 11:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перевод текста в число (Макросы Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!