Я хотел бы сделать правило проверки, которое запрещает ввод определенных символов в данной ячейке. Например, если мой набор символов поиска ("/","&","%") , то я должен получить следующие результаты поиска:

"Test, test" = false
"Te/st" = true
"Test...test&"= true

и вторые два примера не должны быть разрешены.

Я думаю, что я ищу что-то похожее на SQL, где ...В грамматике. Как бы я сделал это в Excel? Я знаю, что могу просто использовать операторы OR() или вложенные IF(), но мне интересно, есть ли что-нибудь чище.

3 ответа3

2

если вы используете Excel 2007, вы можете попробовать что-то на основе:

=IFERROR(FIND("%",A1),0)+IFERROR(FIND("&",A1),0)+IFERROR(FIND("/",A1),0)

который возвращает 0, если строка верна, и положительное число, если это не так.

если вы используете 2003, то вам нужно изменить IFERROR на IF(ISERROR) seg

=IF(ISERROR(FIND("%",A1)),0,1)+IF(ISERROR(FIND("&",A1)),0,1)+IF(ISERROR(FIND("/",A1)),0,1)

который дает вам 0, если строка действительна, и 1, если это не так.

Примечание. Ваша логика отрицательна (т. Е. Вы используете TRUE для и error и FALSE для отсутствия ошибок), но при желании это достаточно просто изменить.

1

Вот еще один вариант

=SUM(COUNTIF(A1,{"*%*","*&*","*/*"}))>0

Чтобы получить список символов из диапазона:

Если строка для проверки находится в A2, а список символов в A1:C1

=SUM(COUNTIF(A2,"*"&($A$1:$C$1)&"*"))>0
-1

Вы можете использовать несколько Find-звонков. Проверьте, является ли это число, то оно содержит запрещенный символ.

isnumber(find("/", cell)+find("%", cell)+find("&", cell))

НЕПРАВИЛЬНО - проверяет, все ли символы находятся в ячейке. Я не проверял всего этого утверждения, потому что у моего Excel была другая локализация, и я был ленивым. Должно быть, тоже были точки с запятой. @Rhys Gibsons ответ правильный, спасибо @chris neilsen за подсказку!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .