Страницы: 1
RSS
Ссылка или число в формуле?, как проверить, есть ли в формуле, помимо ссылок, число(-ла)?
 
Добрый день, товарищи.

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

Буду благодарен любой подсказке )
 
Доброе время суток
Цитата
rehotka написал:
Буду благодарен любой подсказке
В правилах УФ можно использовать UDF-функции. Функцию пишем вида
Public Function hasNumber(ByVal cell As Range) As Boolean
Соответственно в функции проверяем если формула в ячейке. Плюс, составляем описание что такое число в формуле и регулярным выражением по этому описанию проверяем есть или нет число в формуле cell.Formula.
Как-то так.
Успехов.
 
Цитата
Андрей VG написал: В правилах УФ можно использовать UDF-функции
Тогда есть смысл и красить нужные ячейки не УФ, а макросом
Согласие есть продукт при полном непротивлении сторон
 
Я к сожалению не разбираюсь в ВБА и не умею писать пользовательские функции.
Можете дать подробное описание?
Или, еще лучше, может быть можно обойтись стандартными функциями?

Спасибо
 
Цитата
rehotka написал:
может быть можно обойтись стандартными функциями
Наверное возможно, проверка того, что в ячейке формула =ЕФОРМУЛА(A1), с 2013 получить текст формулы =Ф.ТЕКСТ(A1)
Только вы свою часть задания будете выполнять? С вас определение, что такое число в формуле.
Изменено: Андрей VG - 22.09.2017 15:25:06
 
по моим представлениям:
=А25 * А3 - в этой формуле нет чисел
=25 * А3   а в этой есть (число 25)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
по моим представлениям:
Эх, Игорь, если бы это было так просто. Минимальный шаблон проверки числа (включая в экспотенциальном формате) в тексте формулы для регулярного выражения
Код
[=\(\+\-\*/ \n\r]{1}\d+(?:,|\.)?\d+(?:(?:e|E)(?:\+|\-)?\d{1,3})?(?:[=\)\+\-\*/ \n\r]{1}|$)

Тут ещё не описаны случаи, когда число находится в одномерном или двумерном списке констант :)  
Кто готов воплотить формулами рабочего листа проверку на соответствие этому описанию?
P. S. Полностью шаблон не тестировал. Ага, ещё не учёл обрамление числа в случае использования степени, то есть случаи 123^A1 или A1^123 не будут определены.
Изменено: Андрей VG - 22.09.2017 16:38:19 (Пополнил)
 
А кто крайний за файлом примера?
Сравнение прайсов, таблиц - без настроек
 
Т.е. только через ВБА можно решить вопрос.
Но может кто-нибудь сможет привести пример кода? В принципе, лично мне нужны только целые числа.
 
Цитата
Андрей VG написал: В правилах УФ можно использовать UDF-функции. Функцию пишем вида
Public Function hasNumber(ByVal cell As Range) As Boolean
Ребята, может кто-нибудь помочь решить задачу указанным методом?
 
Может у Вас все проще..
Код
Function Formula(r As Range)
Formula = Mid(r.Formula, 1, 1) = "=" And r.Formula Like "*[A-Z]*"
End Function
Изменено: Маугли - 28.09.2017 06:56:32
 
Маугли, спасибо, но для меня лично не подходит. Ваш пример выделяет ячейки с формулами, где есть ссылки. А мне нужно выделять ячейки с формулами, в которых помимо ссылок, выполняются операции над числами, введенными в саму формулу.
Буду пробовать через перевод формулы в текст и анализ его на предмет операндов-чисел.
 
Цитата
rehotka написал:
А мне нужно
ваш файл пример, что вам нужно, мы так и не увидели. Покажите в примере  - как есть и как должно быть (почитайте правила форума).
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: 1
Наверх