Страницы: 1
RSS
Как проверить что в ячейке ТОЛЬКО цифры и/или буквы?
 
Как проверить что в ячейке ТОЛЬКО цифры или буквы (или цифры и буквы)?

Как вариант: если в ячейке ТОЛЬКО цифры или буквы (или цифры и буквы) - TRUE
если в ячейке имеются помимо цифр/букв какие-то другие символы (%, -, _, №, " и т.п.) - FALSE

И как усложненый вариант вопроса - буквы только латиница?

Спасибо!!!
 
Достаточно проверить содержит ли строка "какие-то другие символы (%, -, _, №, " и т.п.)", тогда - FALSE.
 
Карен, доброго утречка.  :)
Изменено: Владимир - 05.10.2014 10:34:34 (Обнаружил ошибку с Кирило-Мифодицей)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Вариант деления на цифры/не цифры:
=ЕСЛИ(ЕЧИСЛО(-A1);"только цифры";ЕСЛИ(И(ДЛСТР(ПОДСТАВИТЬ(A1;{0;1;2;3;4;5;6;7;8;9};))=ДЛСТР(A1));"нет цифр";"смесь"))
 
Можно формулой массива. Приведенная формула - частный случай того, что Вы просите для случая содержатся ли буквы.
Код
=ИЛИ(ЕЧИСЛО(ПОИСК({"А";"Б";"В";"Г";"Д";"Е";"Ж";"З";"И";"Й";"К";"Л";"М";"Н";"О";"П";"Р";"С";"Т";"У";"Ф";"Х";"Ц";"Ч";"Ш";"Щ";"Ъ";"Ы";"Ь";"Э";"Ю";"Я";"а";"б";"в";"г";"д";"е";"ж";"з";"и";"й";"к";"л";"м";"н";"о";"п";"р";"с";"т";"у";"ф";"х";"ц";"ч";"ш";"щ";"ъ";"ы";"ь";"э";"ю";"я"};F139)))

F139 - адрес ячейки, содержимое которой нужно проверить.
Вообще, так можно проверить наличие любого символа в слове, насколько я понимаю. Просто подставьте вместо содержимого массива другие символы. Удачи!
Изменено: Все_просто - 01.08.2013 20:25:04
С уважением,
Федор/Все_просто
 
Попаразитировал на файле Володи:
Код
Public Function DigLett(s$) As Boolean
    With CreateObject("vbscript.regexp")
        .Global = -1: .MultiLine = True: .Pattern = "[a-zA-Z\d]."
        DigLett = .test(s)
    End With
End Function
Изменено: KuklP - 01.08.2013 20:41:41
Я сам - дурнее всякого примера! ...
 
Все_просто,  функция ПОИСК() не различает строчные и прописные, потому массив букв можно сократить в два раза. Вот если вместо ПОИСК написать НАЙТИ, тогда правильно.
 
Забыл про это. Главное передал суть. :)
С уважением,
Федор/Все_просто
 
Серега, может имеет смысл и русские символы добавить?
Код
.Global = -1: .MultiLine = True: .IgnoreCase = true: .Pattern = "[a-zа-яё0-9]."
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дим, я так понял ТС это надо:
Цитата
Иван Иванов пишет:
И как усложненый вариант вопроса - буквы только латиница?
А кириллицу добавить - не вопрос :)
Я сам - дурнее всякого примера! ...
 
По мотивам формулы Все_просто, не массивная
Код
=И(СЧЁТ(ПОИСК({"А";"Б";"В";"Г";"Д";"Е";"Ж";"З";"И";"Й";"К";"Л";"М";"Н";"О";"П";"Р";"С";"Т";"У";"Ф";"Х";"Ц";"Ч";"Ш";"Щ";"Ъ";"Ы";"Ь";"Э";"Ю";"Я"};A1)))
 
Код
=ИЛИ(ЕЧИСЛО(НАЙТИ(СИМВОЛ(СТРОКА(ДВССЫЛ("65:122")));F199)))

Формулой массива для латиницы.
F199 - проверяемая ячейка.
Изменено: Все_просто - 01.08.2013 20:57:40
С уважением,
Федор/Все_просто
 
Неужели =и() можно использовать, чтобы избавиться от массива?
Одно дело использовать =суммпроизв() вместо =сумм(), а другое =и() вместо =или().
Для меня это открытие :)
И кстати, скорее всего формула выложенная в 12 посте не сработает. Я ее проверял, но результат оказался неверным.
Если заменить кириллические символы на латинские, как в 11 или 5 посте, все получится.
С уважением,
Федор/Все_просто
 
ДВССЫЛ - любимая функция? а без нее)
Код
=ИЛИ(ЕЧИСЛО(НАЙТИ(СИМВОЛ(СТРОКА(65:122));F199)))

и, кстати, СИМВОЛ(СТРОКА(91:96)) вернет {"[":"\":"]":"^":"_":"`"}
Цитата
Все_просто пишет:
Неужели =и() можно использовать, чтобы избавиться от массива
нельзя. Здесь И из числа делает логическое значение. От массива в данном случае позволяет уйти функция СЧЁТ() - считает только числа, все остальное (включая и ошибки) игнорируя.
Изменено: Михаил С. - 01.08.2013 21:22:33
 
Извиняюсь за некро, можете обьяснить для чего нужна ссылка (СТРОКА(65:122)?

Дело в том что мне нужна схожая формула, не хотел создавать новую тему
Мне надо чтобы ячейку проверяло на наличие текста и текста с цифрами, если только текст то надо 1. если текст с цифрами то 0.
 
СТРОКА(65:122) - массив чисел от 65 до 122.
А теперь посмотрите коды символов латиницы (Вставка-Символ)
 
А на вторую часть поста сможете ответ дать?
Понимаю что для вас вопрос элементарный, но для меня как начинающего пользователя excel'я это трудно решить ((
 
Создайте отдельную тему
 
Цитата
Thekypshak написал:
А на вторую часть
Дали. В №6.
Я сам - дурнее всякого примера! ...
 
На самом деле "только цифры" и "только буквы" проверяются через двойное "не". Если в ячейке отсутствуют не-цифры, значит там только цифры. T.e. not (not( is_digital))
Изменено: qwesz - 24.07.2017 04:52:14
 
Если только цифры - значит это число; достаточно =ЕОШ(--A1)
 
Не могу разобраться, в чем ошибка. Мне надо проверить, что ячейка содержит только текст, числа, запятые или пробелы. В остальных случаях выдавать сообщение.

=IF(REGEXMATCH(G818; "^[A-za-Zа-яЁё\d,] +$"); "Текст состоит из букв, цифр, запятых и пробелов."; "Текст содержит недопустимые символы.")

То есть, должно приниматься только типа "абырвалг, 19844, 222, 40"
 
Allkraft, следующая формула выдаст вам количество "недопустимых" символов, т.е. тех которые не перечислены
Прикрутить к какому то условию, думаю, догадаетесь
=СУММПРОИЗВ(--ЕОШ(ПОИСК(ПСТР(A2;СТРОКА($1:$99);1);", 0123456789абвгдеёжзийклмнопрстуфхцчшщъыьэюя")))
 
Цитата
написал:
Allkraft , следующая формула выдаст вам количество "недопустимых" символов, т.е. тех которые не перечисленыПрикрутить к какому то условию, думаю, догадаетесь=СУММПРОИЗВ(--ЕОШ(ПОИСК(ПСТР(A2;СТРОКА($1:$99);1);", 0123456789абвгдеёжзийклмнопрстуфхцчшщъыьэюя")))
Спасибо! Подходит так. Хороших выходных)
Страницы: 1
Читают тему
Наверх