Страницы: 1
RSS
Проверка диапазона на наличие/отсутствие формул, есть ли в диапазоне пропущенная формула
 
Здравствуйте. Подскажите, возможно ли без макросов проверить диапазон на отсутствие формул? Достаточно, что бы выдавало: ИСТИНА/ЛОЖЬ.
Желательно, что бы формула работала в Microsoft Excel до 2010 включительно.
P.S. Пробовал использовать формулу ЕФОРМУЛА, но она проверяет только одну ячейку, либо первую в диапазоне.

Дело  в том, что имеется несколько больших таблиц, которые с некой периодичностью расширяются (добавляются строки и столбцы) и нужно не забывать переносить/копировать формулы в добавляемые строки/столбцы. Для избежания ошибки в расчётах, подумал добавить по контуру таблиц формулы или на крайний случай макросы, которые бы проверяли: везде ли на протяжении строк/столбцов имеются формулы.
Изменено: Максим - 26.07.2019 20:05:47
 
Встречал макрос для проверки, но он тоже был рассчитан для проверки ячейки, а не диапазона.
Изменено: Максим - 26.07.2019 19:56:14
 
Сегодня день загадок. Мини-квест: ФМ. :)
Кроме того, есть еще метод Range.SpecialCells.
Изменено: sokol92 - 27.07.2019 12:40:25
Владимир
 
ну для 2013 и новее масивная
=OR(ISFORMULA(B1:H2))

А вот для старых, если диапазоны в несколько ячеек можно через макрофункцию, а вот если большие, то UDF.
По вопросам из тем форума, личку не читаю.
 
Если все ячейки должны иметь формулы, то AND вместо OR у Михаила. Простейшая UDF:

Код
Function IsAllFormula(ByVal rg As Range) As Boolean
  Dim c As Range
  For Each c In rg.Cells
    If Not c.HasFormula Then Exit Function
  Next c
  IsAllFormula = True
End Function
Владимир
 
sokol92, БМВ, Спасибо

Цитата
sokol92 написал:
Простейшая UDF:
Не совсем понял как он работает. Создаю модуль (через Alt+F11), потом пробую запустить через F8, но не получается. Уже прочитал статьи по созданию надстроек, но не выходит.
Я так понял что диапазон можно будет указывать после запуска?
 
Цитата
Максим написал:
пробую запустить через F8
Не нужно ничего запускать: ищите эту UDF в списке функций.
 
Не помню, работает ли в Excel 2003 такой прием проверки ячеек на содержание формул:
1. выделить необходимый диапазон ячеек
2. нажать клавишу F5
3. в появившемся окне нажать кнопку "Выделить..."
4. выбрать пункт "Формулы"
5. ОК
В ранее выделенном диапазоне выделенными останутся только ячейки с формулами и пока они выделены, можно временно применить к ним заливку, чтобы продолжать работать на листе.
 
Юрий М, Спасибо. Действительно находится в Функции -> Определенные пользователем

Для проверки сделал вот такую формулу, которая работает даже в 2003:
=ЕСЛИ(СЧЁТЕСЛИ(I136:I261;"<>""")-СЧЁТЗ(I136:I261)>0;ЛОЖЬ;ИСТИНА)
Может можно её упростить?
Дело в том, что когда в таблицу добавляются новые СТРОКИ/СТОЛБЦЫ они создаются пустыми и чтобы не забыть добавить в них формулы не обязательно производить поиск на наличие формул в диапазоне, а просто установить нет ли в диапазоне пустых (без формул ячеек) и с этим легко справляется функция СЧЁТЗ
Изменено: Максим - 27.07.2019 16:10:36
 
Максим, Максим, последний вопрос никак не отнести к начальной теме, так ка не решает поставленный вопрос о формулах

=COUNTIF(A1:B1;"<>""")-COUNTA(A1:B1)=0
=ROWS(A1:B1)*COLUMNS(A1:B1)-COUNTA(A1:B1)=0
Массивная =NOT(OR(ISBLANK(A1:B1)))
Вариантов масса.
По вопросам из тем форума, личку не читаю.
 
БМВ, Спасибо
Страницы: 1
Наверх