2015-04-24 2 views
7

Есть ли способ, отличный от VBA, для проверки Col B и Col C, чтобы увидеть, содержат ли они какие-либо символы, не являющиеся альфа-символами? Просто для того, чтобы уточнить Не-Альфу, я имею в виду что-то, что не является частью алфавита (без учета регистра).Проверьте, содержит ли ячейка символы, отличные от альфы, в Excel

Col B и Col C - список первых и последних имен. Некоторые из этих имен содержат символы или цифры в них из-за плохого ввода данных. Я пытаюсь найти все те, которые нужно исправить. Поэтому мне нужно найти те, которые содержат НИЧЕГО Это не письмо.

ответ

17

Существует «странно», но простой и универсальный ответ.

=SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"abcdefghijklmnopqrstuvwxyz")) 
  • Эта формула возвращает #VALUE! ошибку, если A1 содержит любые небуквенные символы, число, если A1 содержит только букву или #REF! ошибку, если A1 является пустым.

  • Вы можете приложить эту формулу в ISNUMBER или ISERR, чтобы преобразовать ее в значение TRUE/FALSE.

  • Замените SEARCH на FIND, чтобы сделать его чувствительным к регистру.

  • Вы можете поместить любой символ в строку "abc...xyz". Это позволяет легко тест буквенно-цифровой или обычной пунктуации и т.д.

"1:"&LEN(A1) означает, что, начиная с первой буквой, вплоть до последней буквы будет проверяться. Изменение этого параметра на "2:"&(LEN(A1)-1) не проверяет первую и последнюю буквы.

+0

Это работает очень хорошо. И ваше объяснение того, как это работает, очень ценится. У меня есть еще один вопрос. Как я могу позволить ему принимать пробелы? Идея заключалась в том, что ценность ячейки «Чада» была бы хорошей, «Чад1» не был бы хорош, и «О Нил» был бы хорош. –

+1

@ChadPortman Поместите пробел в строку '' abc ... xyz''. как в '' abc ... xyz ". –

+0

Это было просто, должно быть, попробовал это. Спасибо за помощь. –

2

Вы можете использовать 26 вложенных SUBSTITUTE s для удаления всех буквенных символов из текста.

Если что-то осталось, ячейка содержит не-альфа-символы.

И спасибо @RaGe за указание на то, что вам нужно проверить для пустых ячеек, а также:

=AND(ISTEXT(A2),SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2),"a",),"b",),"c",),"d",),"e",),"f",),"g",),"h",),"i",),"j",),"k",),"l",),"m",),"n",),"o",),"p",),"q",),"r",),"s",),"t",),"u",),"v",),"w",),"x",),"y",),"z",) = "") 

enter image description here

+0

Просто будьте осторожны, чтобы это возвращало TRUE для пустой ячейки, а также – RaGe

+0

Ничего себе, что так странно, что работает. Я чувствую, что должен быть более эффективный способ сделать, чем 26 вложенных формул, но он действительно работает. Спасибо за это. Наверное, я буду использовать это сейчас, пока не найду что-нибудь более оптимистичное. –

+0

@RaGe, спасибо, обновлено. –

Смежные вопросы