Как узнать что за символ в экселе

Обновлено: 04.07.2024

Нужно найти другие символы или определить, что все символы являются допустимыми.

каждый символ данных ищешь в строке "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 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 0 1 2 3 4 5 6 7 8 9 / - ? : ( ) . , ' + " (без пробелов только)
если не находится, то это недопустимый символ В эксель-файле много столбцов и очень много строк. Надо как-то быстро проверить. (3) Скоро только кошки родятся(с)
Читай файлик и сравнивай. мне нужно не программныv путем, а с помощью функций экселя. Т.к. инф-ция из SAP.

Sub Check()
Symbols = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:().,'+ "

MsgBox res
End Sub

Спасибо, конечно.
Без макроса есть возможность проверить только формулами?

(10) Тогда о формулах в принципе нужно забыть.

Ну и в предложенном макросе вместо поиска в строке в условии
If InStr(1, Symbols, s) = 0 Then
использовать сравнение кодов символа

(7) Можно. Нужно один лист сделать только из формул и с помощью него проверять.
ИМХО. Пусть лучше САП проверяет что символы правильные. Для Excel это не родная задачка, а SAP, как я понял из (5), является источником. Почему бы при выгрузке не проверить? Если важна скорость - проще записать данные из экселя в текст(csv), а текст можно хоть чем обрабатывать.

а вот в опенофисе можно использовать регулярки для поиска и замены безо всяких там сцаных макросов.

(0) что значит "найти или определить"? Тебе нужно удалить все, что не считается допустимым или просто получить ответ на вопрос "есть или нет"?

Спасибо всем.
(15) Нужно сказать пользователю, для какой строки в каких столбцах есть недопустимые символы.
опенофиса никогда не видела, к сожалению у нас MS Excel 2010
(13) проверка в SAPе отпадает (14) посмотрю в инете что такое csv. И чем например его можно обработать. (13) наверено очень длинная формула получится. проверять каждый символ. (16) макрос нарисуй с использованием vbscript regexp. Регулярка такая:
"[^A-z|0-9|\/|-|\?|\:|(|)|.|\,|\'|+]" (19) в MS Excel 2010 можно? Новичку долго разбираться, что такое vbscript regexp? в MS Excel 2010 через References подключила Microsot VBScript Regular Expressions 5.5.

Посмотрите, пжл, почему-то моя функция =rgx(B7) не работает.
Public Function Rgx(astring As Range) As String

При работе с текстом (зачастую при импорте новых текстов из внешних источников) встает задача отфильтровать мусорные строки без текста и оставить строки, содержащие текст.

Самым простым вариантом для такой фильтрации было бы получить напротив каждой ячейки списка ответ на вопрос в булевом формате да/нет (в Excel ИСТИНА/ЛОЖЬ) — содержит ли ячейка текст.

Найти текст формулой

В Excel проверка ячейки на наличие текста присутствует в виде функции ЕТЕКСТ, но она довольно бестолковая по своей сути. Все, что проверяет функция, — это в каком формате находится содержимое ячейки. Например, в ячейке может быть пробел, число в текстовом формате или пунктуационный символ — функция во всех случаях вернет ИСТИНА. Если вас устраивает такой результат, дальше можно не читать. Но наверняка многие, когда ищут, как проверить ячейку на наличие текста, имеют в виду самый настоящий текст, ключевым признаком которого является сама текстовая информация, а не формат ячейки.

В общем, для того, чтобы ответить на вопрос как обнаружить лишь текст в ячейке и очередь, нужно определиться с понятием, что мы считаем текстом.

Для одних текст — это исключительно буквы, буквенные символы.

Если вы в их числе, формула проверки довольно проста. Функция СОВПАД, точнее, отрицание её результата функцией НЕ поможет нам вычислить наличие букв в тексте, а помогут ей в этом функции СТРОЧН и ПРОПИСН:

Логика работы довольно проста — если исходный текст в нижнем и верхнем регистре полностью совпадает, значит, букв в нем нет, т.к. функции СТРОЧН и ПРОПИСН изменяют только буквы.

Найти буквы и цифры

Однако кто-то может считать текстом еще и цифровые символы или попросту цифры (из них еще составляются числа — не путаем понятия :)).

За один заход можно проверить наличие букв и цифр в тексте с помощью моей надстройки.

Макрос легко найти в первой группе под названием «НАЙТИ» в меню «Символы».

Найти буквы или цифры в Excel

Найти буквы или цифры в Excel — процедура !SEMTools

А регулярное выражение для поиска кириллицы, латиницы и цифр в ячейке выглядит так:

Найти определенные текстовые символы

Для случаев, когда мы хотим найти не просто текст, а определенный текст, например, кириллицу или латиницу или цифры по отдельности — есть отдельные процедуры:

Для ещё более сложных случаев можно использовать процедуру «Найти ячейки по шаблону REGEX» в той же группе «НАЙТИ».


Процедура поиска текста по произвольному паттерну регулярных выражений

В этой статье описаны синтаксис формулы и использование функций ПОИСК и ПОИСКБ в Microsoft Excel.

Описание

Функции ПОИСК И ПОИСКБ находят одну текстовую строку в другой и возвращают начальную позицию первой текстовой строки (считая от первого символа второй текстовой строки). Например, чтобы найти позицию буквы "n" в слове "printer", можно использовать следующую функцию:

Эта функция возвращает 4, так как "н" является четвертым символом в слове "принтер".

Можно также находить слова в других словах. Например, функция

возвращает 5, так как слово "base" начинается с пятого символа слова "database". Можно использовать функции ПОИСК и ПОИСКБ для определения положения символа или текстовой строки в другой текстовой строке, а затем вернуть текст с помощью функций ПСТР и ПСТРБ или заменить его с помощью функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ. Эти функции показаны в примере 1 данной статьи.

Эти функции могут быть доступны не на всех языках.

Функция ПОИСКБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой БДЦС. В противном случае функция ПОИСКБ работает так же, как функция ПОИСК, и отсчитывает по одному байту на каждый символ.

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

Аргументы функций ПОИСК и ПОИСКБ описаны ниже.

Искомый_текст Обязательный. Текст, который требуется найти.

Просматриваемый_текст Обязательный. Текст, в котором нужно найти значение аргумента искомый_текст.

Начальная_позиция Необязательный. Номер знака в аргументе просматриваемый_текст, с которого следует начать поиск.

Замечание

Функции ПОИСК и ПОИСКБ не учитывают регистр. Если требуется учитывать регистр, используйте функции НАЙТИ и НАЙТИБ.

В аргументе искомый_текст можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку, звездочка — любой последовательности знаков. Если требуется найти вопросительный знак или звездочку, введите перед ним тильду (

Если аргумент начальная_позиция опущен, то он полагается равным 1.

Аргумент начальная_позиция можно использовать, чтобы пропустить определенное количество знаков. Допустим, что функцию ПОИСК нужно использовать для работы с текстовой строкой "МДС0093.МужскаяОдежда". Чтобы найти первое вхождение "М" в описательной части текстовой строки, задайте для аргумента начальная_позиция значение 8, чтобы поиск не выполнялся в той части текста, которая является серийным номером (в данном случае — "МДС0093"). Функция ПОИСК начинает поиск с восьмого символа, находит знак, указанный в аргументе искомый_текст, в следующей позиции, и возвращает число 9. Функция ПОИСК всегда возвращает номер знака, считая от начала просматриваемого текста, включая символы, которые пропускаются, если значение аргумента начальная_позиция больше 1.

Примеры

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части текстовой строки. Как и другие функции для работы с текстом, ПРАВСИМВ очень проста и понятна. Тем не менее, у нее есть несколько неочевидных применений, которые могут оказаться полезными в вашей работе.

Синтаксис.

ПРАВСИМВ возвращает указанное количество символов от конца текста.

ПРАВСИМВ(текст; [число_знаков])

Например, чтобы извлечь последние 6 символов из ячейки A2, запишите:

Результат может выглядеть примерно так:


Важное замечание! ПРАВСИМВ всегда возвращает текст, даже если исходное значение является числом. Чтобы заставить формулу выводить число, используйте ее в сочетании с ЗНАЧЕН, как показано в этом примере .

В реальных таблицах ПРАВСИМВ редко используется в одиночку. В большинстве случаев вы будете использовать ее вместе с другими функциями Excel в составе более сложных формул. Об этом и поговорим далее.

Как получить подстроку после определенного символа.

Если вы хотите извлечь все знаки, следующие за определенным символом, используйте формулу ПОИСК или НАЙТИ, чтобы определить позицию этого символа, вычтите позицию из общей длины текста, возвращаемой функцией ДЛСТР , и отделите это количество символов от его правого края.

ПРАВСИМВ( текст; ДЛСТР( текст ) - ПОИСК( символ ; текст ))

Скажем, ячейка A2 содержит имя и фамилию, разделенные пробелом, и вы хотите перенести фамилию в другую ячейку. Просто используйте приведенную выше общую формулу:

Формула даст следующий результат:


Аналогичным образом вы можете получить подстроку, которая следует за любым другим символом, например за запятой, точкой с запятой, дефисом и т. д. Например, чтобы извлечь то, что записано после дефиса, используйте выражение:

Результат будет выглядеть примерно так:


Как извлечь подстроку после последнего вхождения разделителя

При работе со сложными текстовыми выражениями, которые содержат несколько вхождений одного и того же разделителя, вам часто может потребоваться получить текст справа от последнего появления разделителя. Чтобы упростить понимание, взгляните на следующие исходные данные и желаемый результат:
рис4

Как вы можете видеть на скриншоте выше, столбец A содержит список ошибок. Ваша цель - получить описание ошибки, которое идет после последнего двоеточия. Дополнительная сложность заключается в том, что исходные значения могут содержать разное количество разделителей, например, A3 содержит 3 двоеточия, а A5 - только одно.

Ключом к поиску решения является определение позиции последнего разделителя (последнее вхождение двоеточия в этом примере). Для этого вам нужно будет выполнить несколько несложных операций:

  1. Подсчитайте количество разделителей в исходной строке. Это несложно:
    • Вычисляете общую ее длину с помощью ДЛСТР(A2).
    • Определяем длину без разделителей, используя формулу ПОДСТАВИТЬ, которая заменяет все вхождения двоеточия ничем: ДЛСТР(ПОДСТАВИТЬ(A2; ":"; ""))
    • Наконец, вы вычитаете длину исходной строки без разделителей из общей длины: ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";""))

Чтобы убедиться, что формула работает правильно, вы можете ввести ее в отдельную ячейку, и результатом будет 2, то есть количество двоеточий в ячейке A2.

  1. Замените последний разделитель на какой-нибудь уникальный символ. Чтобы извлечь текст, который идет после последнего разделителя, нам нужно каким-то образом «пометить» это последнее вхождение разделителя. Для этого давайте заменим последнее вхождение двоеточия символом, который нигде не встречается в исходных значениях, например, знаком доллара ($).

Если вы знакомы с синтаксисом функции ПОДСТАВИТЬ, вы можете помнить, что у нее есть 4-й необязательный аргумент (номер вхождения), который позволяет заменять только конкретное появление указанного символа. И поскольку мы уже вычислили количество разделителей, просто впишите рассмотренное выше выражение в четвертый аргумент функции ПОДСТАВИТЬ:

Если вы поместите эту формулу в отдельную ячейку, она вернет: ERROR: 432 $ Connection timed out

  1. Определяем позицию последнего разделителя. В зависимости от того, на какой символ вы заменили последний разделитель, используйте ПОИСК (без учета регистра) или НАЙТИ (с учетом регистра), чтобы определить позицию этого символа. Мы заменили последнее двоеточие на знак $, поэтому используем следующую формулу, чтобы узнать его местоположение:

В этом примере формула возвращает 10, что является позицией $ в измененном тексте.

  1. Получаем подстроку справа от последнего разделителя. Теперь, когда вы знаете позицию последнего разделителя, все, что вам нужно сделать, это вычесть это число из общей длины строки и использовать ПРАВСИМВ, чтобы вернуть это количество символов из конца исходного текста:

=ЕСЛИОШИБКА(ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("$"; ПОДСТАВИТЬ(A2;":";"$";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";""))))); A2)

Как показано на скриншоте ниже, формула работает отлично:


Замечание. В случае, если ячейка не содержит ни одного вхождения указанного разделителя, будет возвращена исходная строка целиком.

Как удалить первые N символов из ячейки

Помимо извлечения отрезка из конца строки, ПРАВСИМВ пригодится в ситуациях, когда вы хотите удалить определенное количество символов из её начала.

В наборе данных, использованном в предыдущем примере, вы можете удалить слово «ERROR», которое появляется в начале, и оставить только номер ошибки и описание. Для этого вычтите количество удаляемых символов из общей длины текста и передайте это число в аргумент количество_знаков:

ПРАВСИМВ( текст; ДЛСТР (текст) - число_символов_для_удаления )

В этом примере мы удаляем первые 6 символов (5 букв и двоеточие) из содержимого A2, поэтому наша формула выглядит следующим образом:


Может ли функция Excel ПРАВСИМВ вернуть число?

Как упоминалось в начале этого руководства, ПРАВСИМВ в Excel всегда возвращает текст, даже если исходное значение является числом. Но что, если вы работаете с числовым набором данных и хотите, чтобы результат тоже был числовым? Простой обходной путь - вложить формулу ПРАВСИМВ в функцию ЗНАЧЕН, которая специально разработана для преобразования текста, состоящего из цифр, в число.

Например, чтобы извлечь последние 6 символов (почтовый индекс) из значения A2 и преобразовать их в число, используйте эту формулу:

На рисунке ниже показан результат. Обратите внимание на числа с выравниванием по правому краю в столбце B, в отличие от текстовых значений, которые выровнены по левому краю в столбце A:


Почему ПРАВСИМВ не работает с датами?

Потому что она предназначена для работы с текстовыми значениями, тогда как даты на самом деле являются числами во внутренней системе Excel. Формула ПРАВСИМВ не может получить отдельную часть даты — день, месяц или год. Если вы попытаетесь это сделать, все, что вы получите, - это несколько последних цифр числа, представляющего дату.

Предположим, у вас есть дата 9 августа 2020 года в ячейке A1. Если вы попытаетесь извлечь год с помощью формулы ПРАВСИМВ(A1,4), результатом будет 4052, что является последними четырьмя цифрами числа 44052, представляющего 9 августа 2020года в системе Excel.

«Итак, как мне получить определенную часть даты?», - спросите вы меня. Используя одно из следующих выражений:

  • Функция ДЕНЬ для извлечения дня: = ДЕНЬ(A1)
  • Функция МЕСЯЦ, чтобы получить месяц: = МЕСЯЦ(A1)
  • ГОД, чтобы вытащить год: = ГОД(A1)

На скриншоте показаны результаты:

Если ваши даты записаны в виде текста, что часто бывает при экспорте данных из других программ, то ничто не мешает вам использовать ПРАВСИМВ для извлечения последних нескольких символов, которые представляют определенную часть даты:


Теперь наша попытка извлечь год из даты вполне удачна.

Почему не работает? Причины и решения.

Это может быть связано с одной из следующих причин:

Вот как вы можете использовать ПРАВСИМВ в Excel.

Все описанные выше манипуляции с текстовыми значениями вы можете выполнить без формул при помощи специального инструмента работы с текстом, который является частью надстройки Ultimate Suite. Вы сможете без проблем избавиться от лишних пробелов и ненужных символов, поменять регистр букв, подсчитать символы и слова в ячейке или в диапазоне, добавить один и тот же текст в начало или конец всех ячеек в диапазоне, преобразовать текст в числа, разделить его по отдельным ячейкам, извлечь отдельные слова, найти и удалить дубли слов.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге.

Как быстро извлечь число из текста в Excel - В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно… Как удалить пробелы в ячейках Excel - Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с… Функция СЖПРОБЕЛЫ — как пользоваться и примеры - Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии) не работает и как… Функция ЛЕВСИМВ в Excel. Примеры использования и советы. - В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди… Как извлечь текст из ячейки при помощи функции ПСТР и специальных инструментов - ПСТР - одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста. В этом руководстве мы обсудим… 5 примеров с функцией ДЛСТР в Excel. - Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)… Как быстро сосчитать количество символов в ячейке Excel - В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем… Как в Excel разделить текст из одной ячейки в несколько - В руководстве объясняется, как разделить ячейки в Excel с помощью формул и стандартных инструментов. Вы узнаете, как разделить текст запятой, пробелом или любым другим разделителем, а также как разбить строки на… Как преобразовать текст в число в Excel — 10 способов. - В этом руководстве показано множество различных способов преобразования текста в число в Excel: опция проверки ошибок в числах, формулы, математические операции, специальная вставка и многое другое. Иногда значения в ваших…

Читайте также: