В Excel, как проверить, недействительна ли какая-либо ячейка в заданном диапазоне в соответствии с правилами проверки данных?

В Excel я пытаюсь написать формулу, которая проверяет, содержит ли какая-либо ячейка в определенном диапазоне ячеек недопустимые данные в соответствии с правилами проверки данных каждой ячейки. Я хочу использовать эту информацию для отображения сообщения в ячейке в верхней части листа, поэтому пользователю не нужно прокручивать весь лист, чтобы увидеть, содержит ли он какие-либо недопустимые данные.

Все ячейки в диапазоне, который я хочу проверить, используют одни и те же правила для их проверки данных, но эти правила довольно сложны и зависят от значений других ячеек в каждой строке. Я уже знаю, что вы можете проверить, соответствует ли какая-либо ячейка в данном столбце определенному значению с помощью функции VLOOKUP (например, = IF (ISNA (VLOOKUP («Lookup Value», A1: A20, 1, FALSE)), «Не найдено», «Найдено») ), но, похоже, не существует способа использовать тот же метод для проверки наличия ячеек с недопустимыми данными.

Есть ли способ сделать это в Excel без использования VBA? Если нет, можете ли вы порекомендовать альтернативное решение?

0
nl ja de
@barryhoudini Итак, вот формула, которую я положил в ячейку E16, которая возвращает true, когда эта ячейка недействительна: = AND (OR (D16 = "Fail", D16 = "N/A"), LEN (E16) < = 0) . (Эта формула взята из моего условного форматирования, она выделяет недопустимые поля в красном.)
добавлено автор Ajedi32, источник
@barryhoudini Проверка не предотвращает ввод неверных данных, поскольку сама проверка зависит от значения соседней ячейки. Например. В приведенном выше примере E16 является недопустимым, если его длина равна 0, а значение D16 - «Fail» или «N/A». Таким образом, E16 может быть действительным, а затем значение D16 может измениться и внезапно сделать его недействительным.
добавлено автор Ajedi32, источник
Я не верю, что вы можете использовать простую формулу, чтобы напрямую ссылаться на проверку ячейки, но вы можете использовать формулу, аналогичную условию, используемому при проверке данных, каково правило? Не проверяет достоверность ввода недопустимых данных .... или вставлена ​​ли она?
добавлено автор barry houdini, источник
Хорошо, я отправил ответ ...
добавлено автор barry houdini, источник

1 ответы

Таким образом, любая строка недействительна, если она содержит Fail или N/A в столбце D, а столбец E в той же строке пуст?

Попробуйте использовать COUNTIFS, чтобы увидеть, есть ли какие-либо недопустимые строки, например. эта формула наверху

= IF (SUM (COUNTIFS (D: D, {"Fail", "N/A"}, E: E, "")), "Invalid Data", "All OK")

или эта версия даст вам количество экземпляров

=IF(SUM(COUNTIFS(D:D,{"Fail","N/A"},E:E,"")),SUM(COUNTIFS(D:D,{"Fail","N/A"},E:E,""))&" Row(s) of Invalid Data","All OK")

COUNTIFS действует только в Excel 2007 или новее, в более ранних версиях вы можете подсчитать недопустимые строки с помощью SUMPRODUCT, т. Е.

<Код> = СУММПРОИЗВ ((D1: D1000 = { "Сбой", "N/A"}) * (Е1: E1000 = ""))

2
добавлено
Эй, это работает! Спасибо за вашу помощь. ;)
добавлено автор Ajedi32, источник
Поэтому я просмотрел функцию COUNTIFS, и она кажется действительно полезной. Мне немного любопытно, но почему функция SUM нужна в вашем примере. Почему COUNTIFS не дает правильное количество недопустимых строк? знак равно
добавлено автор Ajedi32, источник
Хорошо, это имеет смысл. Еще раз спасибо. :)
добавлено автор Ajedi32, источник
В этой формуле = COUNTIFS (D: D, {"Fail", "N/A"}, E: E, "") , потому что один из критериев - это «массив», code> {"Fail", "N/A"} , тогда код COUNTIFS также возвращает массив из двух значений (один из всех строк с «Fail» и пустой, один подсчет всех строк с «N/A» и пробел), и SUM необходимо добавить 2 значения. Вы можете использовать 2 отдельные функции COUNTIFS , но это немного короче ....
добавлено автор barry houdini, источник