Для подхода с учетом регистра, если у вас есть функция CONCAT
, вы можете использовать следующее:
(Для нечувствительного к регистру замените FIND
на SEARCH
)
=IF(OR(ISERR(FIND(MID(A1,ROW($A$1:INDEX($A:$A,LEN(A1),1)),1),CONCAT(" ",AllowedChars)))),"check failed", "check ok")
Если у вас нет функции CONCAT
, замените ее в формуле простой строкой допустимых символов:
=IF(OR(ISERR(FIND(MID(A1,ROW($A$1:INDEX($A:$A,LEN(A1),1)),1)," iamnotItersd"))),"check failed", "check ok")
и обратите внимание, что некоторые более ранние версии Excel требуют подтверждения этой формулы массива, удерживая нажатой ctrl + shift при нажатии , введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...}
вокруг формулы, отображаемой в строке формул.
- функция
MID(…
создает массив отдельных символов в тестовой строке FIND
затем учитывает регистр FIND
всех символов в тестовой строке для символов в AllowedChars
FIND
вернет ошибку #VALUE!
, если символ не найдено. OR(ISERR(…
вернет TRUE
, если будут обнаружены сбои.
Редактировать дальнейшее объяснение:
ISERR(…
вернет массив логических значений {FALSE,FALSE,FALSE,FALSE,TRUE, … }
в зависимости от того, возвращает ли каждый FIND
номер ошибки #VALUE!
OR
оценивает этот массив и возвращает TRUE
, если вообще есть какая-либо ошибка.
Где AllowedChars относится к диапазону, в котором хранятся разрешенные символы.
CONCAT
игнорирует пустые ячейки в диапазоне, поэтому мы должны добавить пробел в качестве одного из аргументов.