Есть ли у кого-нибудь особый совет (не являющийся предпочтительным для VBA), чтобы систематически сообщать, имеет ли ячейка жестко закодированное значение или это производная формула?
Я имею дело с некоторыми данными, в которых есть грязные промежуточные итоги, и пытаюсь понять, смогу ли я выделить необработанные строки.
Ответы:
Используйте условное форматирование. Выберите опцию «Использовать формулу, чтобы определить, какие ячейки форматировать» и введите «= NOT (Cellhasformula)». Это отформатирует все, что жестко закодировано.
источник
Выберите нужные ячейки, нажмите Ctrl+, Gа затем выберите,
Special
чтобы открыть следующее диалоговое окно:Затем укажите желаемый тип ячеек и щелкните,
OK
и останутся выбранными только те типы ячеек.источник
Начиная с Excel 2013, вы можете делать:
Здесь полная документация
источник
или показать только формулы:
источник
Два других метода
источник
Я знаю, что вы сказали, что предпочитаете не VBA, но если у вас нет других решений, у объекта Range есть свойство HasFormula.
Возвращает: True, если все ячейки в диапазоне содержат формулы; False, если ни одна из ячеек в диапазоне не содержит формулы; в противном случае
Источник: http://msdn.microsoft.com/en-us/library/bb208626%28v=office.12%29.aspx
источник
Если вы хотите сохранить файл Excel в формате книги без макросов, вам следует избегать как VBA, так и макросов (т.е. подходы XL4 / XLM, предложенные в других ответах). В этом ответе я предположил, что файл Excel не содержит макросов.
Если вы используете MS-Excel 2013, вы можете использовать:
Если вы используете более старые версии MS-Excel (например, 2010, 2007), нет истинной функции, чтобы определить, содержит ли ячейка формулу. Однако вы можете приблизить его, используя:
Функция выше возвращает:
источник
Прошло далеко от первоначальной даты, но, если она кому-то пригодится, мне удалось обойти это, выделив диапазон ячеек, затем с помощью Replace (Ctrl + H), установив для него значение «Искать в» «Формулы» и заменить на равно
=
с апострофом-равным'=
Это выявило все формулы, но, очевидно, также преобразовало бы такие вещи, как если бы $ C $ 1 содержался
=if($A1=$B1,"Match","Different")
в'=if($A1'=$B1,"Match","Different")
Обратите внимание на
A1'=B1
середину формулы, которая может быть проблематичной, но все же означает, что вы можете увидеть формулы, хотя и непрагматично. Можно использовать функцию SUBSTITUTE, чтобы вернуть ее обратно, так что $ D $ 1 содержит=SUBSTITUTE(C1,"'=","=")
, затем просто скопировать в Блокнот и вставить обратно в $ E $ 1.Другим способом было бы «показывать формулы», но при этом показывались бы формулы для каждой ячейки, а не только для выбранного диапазона.
источник
источник