Добрый день. Необходимо подсчитать количество символов слева и до знака «!» или «?». Уважаемые модераторы, уже поискал ответ на вопрос в Приемах и на Форуме, ответа не нашел. |
|
_Boroda_ Пользователь Сообщений: 1496 Контакты см. в профиле |
Так нужно? Скажи мне, кудесник, любимец ба’гов… |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
Решение нужно формулами, макросами? |
формулами, макросы очень сложно. Кажется уже ответ получил, спасибо большое сейчас проверю |
|
_Boroda_, спасибо огромное!!! |
|
PooHkrd Пользователь Сообщений: 6602 Excel x64 О365 / 2016 / Online / Power BI |
confic confov, только учтите, что если в ячейке нет, ни одного из двух знаков, то эта формула выдаст не верный результат. Вот горшок пустой, он предмет простой… |
_Boroda_ Пользователь Сообщений: 1496 Контакты см. в профиле |
#7 14.08.2017 18:10:58
Почему неверный? Вы автор вопроса? Кто Вам сказал, что при отсутствии знаков нужно выводить не количество всех символов, а что-то иное? До тех пор, пока автор не уточнит этот момент, нет верной или неверной трактовки, есть различающиеся мнения. И вообще — я художник, я так вижу. Скажи мне, кудесник, любимец ба’гов… |
||
z_sir Пользователь Сообщений: 126 |
#8 14.08.2017 20:10:27
15
|
||||
z_sir,спасибо, попробую и такой варианТ! |
|
PooHkrd Пользователь Сообщений: 6602 Excel x64 О365 / 2016 / Online / Power BI |
#11 15.08.2017 18:50:14
Потому что формула выдает позицию знака, которого нет в исходном тексте. В моем понимании это не корректный результат.
Сам разобрался. Изменено: PooHkrd — 16.08.2017 09:30:50 Вот горшок пустой, он предмет простой… |
||
подскажите пожалуйста, добавил к формуле еще один знак — ? =MIN(SEARCH({«.»;»!»;»?»};M13&{«.»;»!»;»?»})) , но почему то теперь значение получается всегда 1, как исправить ? чтобы формула подхватывала 3 знака 1) ! 2) . 3) ? |
|
_Boroda_ Пользователь Сообщений: 1496 Контакты см. в профиле |
#13 16.08.2017 17:34:25 Знак вопроса и звездочка для ПОИСК — подстановочные знаки. ? — 1 любой символ, * — любое количество любых символов
PooHkrd,
Это в вашем понимании. Оно вовсе не означает, что так оно и есть на самом деле — мы же пока еще не увидели комментария автора по этому вопросу. И, кстати, это
и это
— разные вещи. confic confov, если при отсутствии в ячейке всех символов из поискового списка нужно выводить ноль, то вот так можно
Скажи мне, кудесник, любимец ба’гов… |
||||||||||
Skip to content
В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках.
В нашем предыдущем руководстве была представлена функция ДЛСТР , которая позволяет посчитать количество символов в ячейке Excel.
Функция ДЛСТР (LEN в английской версии) полезна сама по себе, а в связи с другими функциями, такими как СУММ, СУММПРОИЗВ и ПОДСТАВИТЬ, она может решать и более сложные задачи. Далее в этом руководстве мы более подробно рассмотрим несколько основных и более сложных выражений для подсчета количества знаков в Excel.
- Как посчитать все символы в диапазоне
- Как подсчитать определенные знаки в ячейке
- Подсчет определенных букв в ячейке без учета регистра
- Как посчитать вхождения текста или подстроки в ячейку?
- Сколько раз встречается символ в диапазоне?
- Подсчет определенных букв в диапазоне без учета регистра.
Как посчитать все символы в диапазоне
Когда дело доходит до подсчета общего количества знаков в нескольких клетках таблицы, сразу приходит на ум решение сделать это для каждой из них, а затем просто сложить эти числа:
=ДЛСТР(A2)+ДЛСТР(A3)+ДЛСТР(A4)
или
=СУММ(ДЛСТР(A2);ДЛСТР(A3);ДЛСТР(A4))
Описанное выше может хорошо работать для небольшого диапазона. Но вряд ли вы захотите таким образом складывать даже 20 чисел. Чтобы определить количество символов Excel в большем диапазоне, нам лучше придумать что-нибудь более компактное. Например, функцию СУММПРОИЗВ, которая перемножает массивы и возвращает сумму произведений.
Вот общая формула Эксель для подсчета символов в диапазоне:
=СУММПРОИЗВ(ДЛСТР( диапазон ))
И ваша реальная формула может выглядеть примерно так:
= СУММПРОИЗВ(ДЛСТР(A1:A4))
Другой способ подсчета знаков в диапазоне — использовать функцию ДЛСТР в сочетании с СУММ:
{=СУММ(ДЛСТР(A1:A4))}
В отличие от СУММПРОИЗВ, функция СУММ по умолчанию не вычисляет массивы. Поэтому вам нужно не забыть нажать Ctrl + Shift + Enter
, чтобы превратить ее в формулу массива.
Как показано на следующем скриншоте, СУММ возвращает такой же результат:
Как работает эта формула подсчета символов диапазона?
Это один из самых простых вариантов для подсчета знаков в Excel. Перво-наперво функция ДЛСТР вычисляет длину текста для каждого адреса в указанной области и возвращает их в виде массива чисел. Затем СУММПРОИЗВ или СУММ складывают эти числа и возвращают общий итог.
В приведенном выше примере суммируется массив из 4 чисел, которые представляют длины строк в ячейках от A1 до A4:
=СУММПРОИЗВ({23;13;23;17})
Примечание. Обратите внимание, что функция Excel ДЛСТР считает абсолютно все символы в каждой ячейке, включая буквы, числа, знаки препинания, специальные символы и все пробелы (ведущие, конечные и пробелы между словами).
Как подсчитать определенные знаки в ячейке
Иногда вместо подсчета всех символов вам может потребоваться подсчитать только вхождения определенной буквы, числа или специального символа.
Чтобы подсчитать, сколько раз данный символ появляется в выбранной ячейке, используйте функцию ДЛСТР вместе с ПОДСТАВИТЬ:
=ДЛСТР( ячейка ) — ДЛСТР(ПОДСТАВИТЬ( ячейка ; символ ; «»))
Чтобы лучше понять этот расчет, разберём следующий пример.
Предположим, вы ведете базу данных о доставленных товарах, где каждый тип товара имеет свой уникальный идентификатор. И каждая запись содержит несколько элементов, разделенных запятой, пробелом или любым другим разделителем. Задача состоит в том, чтобы подсчитать, сколько раз данный уникальный идентификатор появляется в каждой записи.
Предполагая, что список доставленных товаров находится в столбце B (начиная с B2), и мы считаем число вхождений «A». Выражение выглядит следующим образом:
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2,»A»,»»))
Чтобы понять логику расчётов, давайте разделим процесс на отдельные этапы:
- Сначала вы подсчитываете общую длину строки в B2:
ДЛСТР(B2) - Затем вы используете функцию ПОДСТАВИТЬ, чтобы удалить все вхождения буквы «А» в B2, заменив ее пустой строкой («»):
ПОДСТАВИТЬ(B2;»А»;»») - Затем вы подсчитываете длину получившейся строки без буквы «А»:
ДЛСТР(ПОДСТАВИТЬ(B2;»А»;»»)) - Наконец, вы вычитаете длину строки без буквы «А» из первоначальной длины.
В результате вы получаете количество «удаленных» знаков, которое и равно общему числу вхождений этого символа в ячейку.
Вместо того, чтобы указывать букву или цифру, которые вы хотите подсчитать, в формуле, вы можете ввести их, а затем указать на эту ячейку. Таким образом, ваши пользователи смогут подсчитывать вхождения того, что они укажут отдельно, без изменения самой формулы:
Примечание. Функция ПОДСТАВИТЬ в Excel чувствительна к регистру, поэтому в приведенном выше выражении также учитывается регистр. Например, B7 содержит 2 вхождения буквы «A» — одно в верхнем регистре и второе в нижнем регистре. Учитываем только символы верхнего регистра, потому что мы передали «A» функции ПОДСТАВИТЬ.
Подсчет определенных букв в ячейке без учета регистра
Если вам нужен счетчик букв без учета регистра, вставьте функцию ПРОПИСН в ПОДСТАВИТЬ, чтобы преобразовать указанную букву в верхний регистр перед выполнением подстановки. И обязательно используйте для поиска заглавные буквы.
Например, чтобы подсчитать буквы «A» и «a» в B2, используйте следующее:
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(B2);$C$1;»»))
Другой способ — использовать вложенные функции замены:
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;ПРОПИСН($C$1);»»);СТРОЧН($C$1);»»))
Как вы можете видеть на скриншоте ниже, оба варианта безупречно подсчитывают вхождения указанной буквы в верхнем и нижнем регистре:
Другой способ — преобразовать всё в верхний или нижний регистр. Например:
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(B2);ПРОПИСН($C$1);»»))
Преимущество этого подхода заключается в том, что независимо от того, используются прописные либо строчные буквы, ваша формула подсчета без учета регистра будет возвращать правильный счет:
Как посчитать вхождения текста или подстроки в ячейку?
Если вы хотите подсчитать, сколько раз определенная комбинация символов (например, определенный текст или подстрока) появляется в данной ячейке (например «A2» или «М5»), разделите количество определенных символов, возвращаемых приведенными выше формулами, на длину подстроки.
С учетом регистра:
=(ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2;$C$1;»»)))/ДЛСТР($C$1)
Без учета регистра:
=(ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;ПРОПИСН($C$1);»»);СТРОЧН($C$1);»»)) )/ДЛСТР($C$1)
Где B2 — запись, содержащая всю текстовую строку, а C1 – тот текст (подстроку), который вы хотите подсчитать.
Как эта формула подсчитывает количество вхождений определенного текста в ячейку?
- Функция ПОДСТАВИТЬ удаляет указанное слово из исходного текста.
В этом примере мы удаляем слово, введенное в ячейку С1, из исходного текста, расположенного в B2:
ПОДСТАВИТЬ(B2; $C$1;»») - Затем функция ДЛСТР вычисляет длину текстовой строки без указанного слова.
В этом примере ДЛСТР(ПОДСТАВИТЬ(B2; $C$1;»»)) возвращает длину текста в B2 после удаления всех букв и цифр, содержащихся во всех вхождениях «А2». - После этого указанное выше число вычитается из общей длины исходной текстовой строки:
ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2; $C$1;»»))
Результатом этой операции является количество символов, содержащихся во всех вхождениях целевого слова, которое в этом примере равно 4 (2 вхождения «A2», по 2 в каждом).
Наконец, указанное выше число делится на длину искомого текста. Другими словами, вы делите количество символов, содержащихся во всех вхождениях целевого слова, на число знаков, содержащихся в этом слове. В этом примере 4 делится на 2, и в результате мы получаем 2.
Сколько раз встречается символ в диапазоне?
Теперь, когда вы знаете формулу Excel для подсчета символов в одной определённой ячейке, вы можете улучшить ее, чтобы узнать, сколько раз определенный символ появляется в диапазоне. Для этого мы возьмем выражение, описанное в предыдущем примере, и поместим его в функцию СУММПРОИЗВ, которая умеет обрабатывать массивы:
СУММПРОИЗВ(ДЛСТР( диапазон ) -ДЛСТР(ПОДСТАВИТЬ( диапазон , символ , «»)))
В этом примере выражение принимает следующую форму:
=СУММПРОИЗВ(ДЛСТР(B2:B7)-ДЛСТР(ПОДСТАВИТЬ(B2:B7;$C$1;»»)))
А вот еще один способ для подсчета символов в диапазоне Excel:
{=СУММ(ДЛСТР(B2:B7)-ДЛСТР(ПОДСТАВИТЬ(B2:B7;$C$1;»»)))}
По сравнению с описанным ранее наиболее очевидным отличием здесь является использование СУММ вместо СУММПРОИЗВ. Другое отличие в том, что в данном случае требуется нажатие Ctrl + Shift + Enter. Думаю, вы помните, что в отличие от СУММПРОИЗВ, которая умеет работать с массивами, СУММ может обрабатывать массивы только при использовании её в формуле массива.
Разберем, как это работает.
Как вы, возможно, помните, функция ПОДСТАВИТЬ используется для замены всех вхождений указанного символа («A» в этом примере) пустой текстовой строкой («»).
Затем мы передаем текстовую строку, возвращаемую функцией ПОДСТАВИТЬ, в функцию ДЛСТР, чтобы она вычисляла длину строки без «A». Затем мы вычитаем это количество знаков из общей длины текстовой строки. Результатом этих вычислений является массив количества символов. В нем столько чисел, сколько ячеек в диапазоне.
Наконец, СУММПРОИЗВ суммирует числа в массиве и возвращает общее количество указанного символа в диапазоне.
Примечание. В ситуациях, когда вы подсчитываете количество вхождений определенной подстроки в диапазоне (например, заказы, начинающиеся с «A2»), вам необходимо разделить количество символов на длину подстроки. В противном случае каждый знак в подстроке будет учитываться индивидуально. Например:
=СУММПРОИЗВ(ДЛСТР(B2:B7)-ДЛСТР(ПОДСТАВИТЬ(B2:B7;$C$1;»»)))/ДЛСТР($C$1)
Подсчет определенных букв в диапазоне без учета регистра.
Вы уже знаете, что ПОДСТАВИТЬ — функция, чувствительная к регистру. Поэтому наша формула для подсчета также чувствительна к регистру.
Чтобы игнорировать регистр, следуйте подходам, продемонстрированным в предыдущем примере.
Используйте функции ПРОПИСН и СТРОЧН, введите прописную либо заглавную букву и укажите ссылку на нее:
=СУММПРОИЗВ(ДЛСТР(B2:B7) — ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2:B7;ПРОПИСН($C$1);»»);СТРОЧН($C$1);»»)))
На скриншоте ниже показана последняя формула в действии:
Совершенно аналогично, подобный метод можно применить, если мы будем считать число вхождений в диапазон какого- то слова. Вернемся к нашему примеру.
Чтобы подсчитать, сколько раз сочетание «А2» в точном виде встречается в наших данных, запишем выражение:
=СУММПРОИЗВ((ДЛСТР(B2:B7)-ДЛСТР(ПОДСТАВИТЬ(B2:B7;$C$1;»»)))/ДЛСТР($C$1))
Если не нужно учитывать регистр букв, то тогда —
=СУММПРОИЗВ((ДЛСТР(B2:B7)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2:B7;ПРОПИСН($C$1);»»);СТРОЧН($C$1);»»)))/ДЛСТР($C$1))
То есть, мы берем формулы, использованные нами для отдельной ячейки, меняем в них ссылку на диапазон данных и обрабатываем затем при помощи СУММПРОИЗВ.
Вы можете использовать функцию СУММ, но в формуле массива, как мы также уже рассматривали ранее.
Вот как вы можете подсчитывать символы в Excel с помощью функции ДЛСТР. Если вы хотите знать, как считать слова, а не отдельные знаки, вы найдете несколько полезных формул в нашей следующей статье, следите за обновлениями!
Возможно, вам будут также полезны:
- Когда нужен подсчет символов в ячейках
- Количество символов в ячейке – формула
- Посчитать количество определённых символов в ячейке
- Количество цифр в ячейке
- Количество английских букв в ячейке
- Количество русских букв в ячейке
- Количество любых букв в ячейке
- Процедура подсчета символов в ячейках
- Посчитать количество символов в нескольких ячейках одновременно
Подсчет количества символов в ячейках Excel бывает очень полезен – вопрос лишь в том, какой конкретно алгоритм использовать. А это в свою очередь зависит от ситуации и условий поставленной задачи.
Когда нужен подсчет символов в ячейках
Наиболее часто количество всех или определенных символов в ячейке нужно знать, когда есть какие-либо ограничения:
- количество символов в каждой ячейке не должно превышать определенное значение
- нет ограничений по длине на одну ячейку, но есть лимит на суммарное количество символов в нескольких
- когда есть ограничение по количеству символов снизу, иначе говоря, минимальная длина
- есть ограничение по количеству введенных в ячейку определенных символов (например, не более одного знака “!”)
Ниже я рассмотрю более детально каждый из случаев.
Количество символов в ячейке – формула
ДЛСТР — замечательная функция, и с её помощью можно решить уйму задач, связанных с подсчетом символов в ячейках. Вот простейший пример ее применения.
Посчитать количество определённых символов в ячейке
Чтобы посчитать количество определённых символов в ячейке, есть старый как мир лайфхак – достаточно посчитать длину ячейки целиком функцией ДЛСТР, а затем вычесть из неё длину той же ячейки, в которой удалёны эти самые символы. Для удаления используется функция ПОДСТАВИТЬ, третьим аргументом которой делают строковую пустоту, обозначаемую двойными кавычками, между которыми ничего нет.
Например, вот формула для подсчёта количества букв “у” в ячейке A1.
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"у";""))
Но что делать, когда таких символов сразу целое множество? Например, цифры, латиница, кириллица или вообще, любые буквы? На помощь здесь придет знание формул массива, настоятельно рекомендую ознакомиться с моими обучающими материалами по ним. А ниже несколько примеров.
Количество цифр в ячейке
Подробное руководство в моей исчерпывающей статье “Посчитать цифры в ячейках и ячейки с цифрами“. А я приведу лишь формулу массива оттуда:
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;{1;2;3;4;5;6;7;8;9;0};"")))
Есть и другой вариант – с помощью функции СЧЁТ:
=СЧЁТ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)+1)
Количество английских букв в ячейке
Английские буквы можно перечислить в массиве явно, как и цифры. Но, поскольку функция ПОДСТАВИТЬ регистрозависимая, чтобы не перечислять все 26*2=52 варианта английских букв, можно добавить в формулу функцию ПРОПИСН:
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);{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};"")))
Можно не перечислять английские буквы явно, обратившись к соответствующему им диапазону ANSI через функции СИМВОЛ и СТРОКА:
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);СИМВОЛ(СТРОКА(ДВССЫЛ("65:90")));"")))
Количество русских букв в ячейке
Проблема с русскими буквами (также известными как кириллица) в том, что буква ё, как строчная, так и заглавная, находится за пределами сплошного диапазона в таблицах ANSI и UNICODE, поэтому нужно либо перечислять русские буквы явно:
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);{А;Б;В;Г;Д;Е;Ё;Ж;З;И;Й;К;Л;М;Н;О;П;Р;С;Т;У;Ф;Х;Ц;Ч;Ш;Щ;Ъ;Ы;Ь;Э;Ю;Я};"")))
либо подсчет этой буквы вести отдельно и суммировать с результатом для диапазона из 32 остальных букв. Формула вводится сочетанием Ctrl + Shift + Enter
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);СИМВОЛ(СТРОКА(ДВССЫЛ("192:233")));"")))+ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);"Ё";""))
У этой формулы есть недостаток в том, что она не очень надежна. Она полагается на таблицу ANSI, наполнение которой в свою очередь зависит от того, какой язык у вас в настройках системы.
Поэтому рекомендуется либо явное перечисление букв, либо использование вместо СИМВОЛ функции ЮНИСИМВ, где для символов кириллицы “железно” застолбили диапазон 1040-1071:
=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);ЮНИСИМВ(СТРОКА(ДВССЫЛ("1040:1071")));"")))+ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(A1);"Ё";""))
Я все же за явное перечисление букв
Количество любых букв в ячейке
Здесь задача еще сложнее, ведь все буквы и не перечислишь – помимо латиницы и кириллицы есть масса диакритических символов, которые тоже нужно учитывать. Но благодаря их замечательному свойству менять регистр, их можно вычислить с помощью вот такой мудрёной комбинации функций в формуле массива:
=СУММ(НЕ(СОВПАД(ПРОПИСН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1));СТРОЧН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1))))+0)
Формула вводится сочетанием клавиш Ctrl + Shift + Enter и считает количество букв (способных менять регистр) в ячейке A1.
Процедура подсчета символов в ячейках
Поскольку ввод формул — занятие муторное, я разработал для задачи подсчёта символов несложную процедуру в !SEMTools. Прелесть процедуры в том, что она считает все моментально в пару кликов и выводит результат в столбец справа (если активна опция вывода в соседний столбец).
Можно выделять целиком весь столбец, надстройка сама определит конец рабочего диапазона:
Посчитать количество символов в нескольких ячейках одновременно
Если нет задачи считать длину содержимого каждой из ячеек, а нужна сразу сумма длин, можно использовать ту же функцию ДЛСТР, но в несколько ином виде — в виде формулы массива:
Текст формулы:
Важно понимать, что формула вернет корректный результат, только если обретет фигурные скобки после ввода ее в ячейку сочетанием клавиш Ctrl + Shift + Enter.
Понравилась статья? Поддержите ее автора!
Набор инструментов !SEMTools поможет решить множество задач без ввода сложных формул и сэкономит ваше время. И вам полезно, и автору приятно!
Как в Excel обрезать текст до определенного символа
Сегодня разберем вопрос о том как в Excel обрезать строку до определенного символа.
Очень часто, при работе с большим объемом информации, необходимо получить какую-то часть текста, для этого можно воспользоваться офисной программой Excel.
Все что нам необходимо сделать для решения нашей задачи это воспользоваться формулами.
И так к примеру у нас есть текст в ячейки:
Добро пожаловать на /гдз-класс.рф
Нам необходимо получить текст до слеша «/», как мы будем обрезать:
Для начала нам необходимо найти номер позиции нашего слеша, для этого воспользуемся формулой НАЙТИ
Синтаксис формулы достаточно прост:
НАЙТИ(символ, который ищем;текст, в котором будем искать наш символ)
Конечная формула в нашем случае выглядит так
Позиция слеша равна 21
Теперь воспользуемся формулой, которая будет работать с формулой НАЙТИ и позволит обрезать текст на заданное количество знаков, для этого будем использовать ПСТР.
Функция ПСТР возвращает указанное количество знаков из строки, начиная с указанной позиции.
ПСТР(текст, который необходимо обрезать;начальная позиция;число знаков)
Так как нам необходимо обрезать текст до слеша, а его позиция 21, то нам необходимо вычесть единицу.
Конечная формула будет такая:
Если вам необходимо обрезать до другого символа, то необходимо вместо слеша «/» указать необходимый символ.
Как обрезать символы в Excel
Обзор способов, позволяющих быстро обрезать значения ячеек и удалить лишний текст. Обрезка текста формулами слева и справа, быстрая обрезка строк надстройкой VBA, удаление лишнего текста до определенного символа, разбиение текста по столбцам.
Как обрезать символы при помощи формул?
Как оставить заданное количество символов в начале строки, остальные удалить?
Ввести в ячейку стандартную текстовую функцию Excel «ЛЕВСИМВ», которая возвращает заданное количество знаков с начала строки.
Как удалить заданное количество знаков в начале строки, остальные оставить?
Ввести в ячейку комбинацию стандартных функций Excel «ПРАВСИМВ» и «ДЛСТР», которая определяет длину строки, то есть количество символов в значении указанной ячейки.
Как оставить заданное количество символов в конце строки, остальные удалить?
Ввести в ячейку стандартную текстовую функцию Excel «ПРАВСИМВ», которая возвращает заданное количество знаков с конца строки.
Как удалить заданное количество знаков в конце строки, остальные оставить?
Ввести в ячейку комбинацию стандартных функций Excel «ЛЕВСИМВ» и «ДЛСТР»
Как видно из приведенных примеров, оставить текстовые строки заданной длины достаточно просто при помощи формулы в одно действие. Чтобы обрезать определенное количество знаков с начала или с конца строки, необходимо вносить в ячейки достаточно громоздкие формулы, что достаточно неудобно.
Как обрезать символы без ввода формул?
Надстройка для быстрой обрезки текста
Все описанные выше манипуляции с текстовыми значениями можно производить и без использования формул, что гораздо быстрее. Для этого нужно лишь вызвать диалоговое окно надстройки и задать в нем диапазон ячеек, подходящую функцию и количество знаков, которые необходимо удалить либо оставить.
1. обрезать заданное количество символов слева;
2. обрезать заданное количество символов справа;
3. обрезать значения ячеек до первого попавшегося заданного символа (сочетания символов);
4. обрезать значения ячеек до последнего попавшегося символа (сочетания символов).
В надстройку зашиты функции, аналогичные тем, которые описаны выше, что сокращает время на:
— выделение диапазона ячеек.
В программе предусмотрена возможность вместо выделения диапазона ячеек выделять целиком строки/столбцы. Программа автоматически сокращает выделенный диапазон до границы используемого диапазона, при этом на листе не должно быть отфильтрованных строк.
Разбиение текста по столбцам
Для обрезания значений ячеек можно использовать «Текст по столбцам». Это стандартное средство Excel не удаляет и не обрезает символы, а распределяет содержимое ячеек по разным столбцам при помощи мастера текстов. Кнопка вызова диалогового окна находится на вкладке «Данные» в группе кнопок «Работа с данными». Этот инструмент можно использовать в двух режимах работы, разделять исходные данные при помощи разделителей либо при помощи настраиваемых полей, когда можно вручную указать границы раздела значений.
Шаг1. Выбор формата исходных данных.
Шаг2. Установка нужной ширины полей.
Количество полей при этом не ограничено.
Шаг 3. Просмотр и получение результатов.
В результате таких манипуляций исходные значения нарезаются в соответствии с установленными полями и разносятся по различным столбцам.
Функция ЛЕВСИМВ в Excel. Примеры использования и советы.
В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое.
Среди множества различных функций, которые Microsoft Excel предоставляет для работы с текстовыми данными, ЛЕВСИМВ — одна из наиболее широко применяемых. Как следует из названия, она позволяет извлекать определенное количество знаков, начиная с левой стороны текста. Однако она способна на гораздо большее, чем такая простая операция. В этом руководстве вы найдете несколько базовых формул для понимания синтаксиса, а затем я покажу вам несколько способов, с помощью которых вы можете использовать ЛЕВСИМВ далеко за пределами ее базового применения.
Cинтаксис.
Функция ЛЕВСИМВ в Excel возвращает указанное количество символов (подстроку) от начала содержимого ячейки.
ЛЕВСИМВ (текст; [колич_знаков])
- Текст (обязательно) — это текст, из которого вы хотите извлечь подстроку. Обычно предоставляется как ссылка на ячейку, в которой он записан.
- Второй аргумент (необязательно) — количество знаков для извлечения, начиная слева.
- Если параметр опущен, то по умолчанию подразумевается 1, то есть возвращается 1 знак.
- Если введенное значение больше общей длины ячейки, формула вернет всё ее содержимое.
Например, чтобы извлечь первые 6 символов из A2, запишите такое выражение:
На следующем скриншоте показан результат:
Важное замечание! ЛЕВСИМВ относится к категории текстовых функций, поэтому результатом её всегда является текстовая строка, даже если исходное значение, из которого вы извлекаете цифры, является числом. Если вы работаете с числовым набором данных и хотите, чтобы было извлечено именно число, применяйте ее вместе с функцией ЗНАЧЕН, как показано в одном из примеров ниже.
Что еще можно делать, помимо извлечения текста слева? В следующих примерах показано, как можно применять её в сочетании с другими функциями Excel для решения более сложных задач.
Как извлечь подстроку перед определенным символом.
В некоторых случаях может потребоваться извлечь часть текста, который предшествует определенному знаку. Например, вы можете извлечь имена из столбца ФИО или получить коды стран из колонки с телефонными номерами. Проблема в том, что каждое имя и каждый код содержат разное количество символов, и поэтому вы не можете просто указать точное число сколько знаков отделить, как мы сделали в приведенном выше примере.
Если имя и фамилия разделены пробелом, проблема сводится к определению положения этого разделителя. Это можно легко сделать с помощью функции ПОИСК или НАЙТИ .
Предположим, что полное имя находится в ячейке A2, позиция пробела возвращается по этой простой формуле: ПОИСК(» «; A2)). А теперь вы вставляете это выражение в ЛЕВСИМВ:
Чтобы еще немного улучшить результат, избавьтесь от конечного пробела, вычтя 1 из результата поиска. Ведь невидимые конечные пробелы могут вызвать множество проблем, особенно если вы планируете использовать извлеченные имена в других вычислениях:
Таким же образом вы можете извлечь коды стран из столбца телефонных номеров. Единственное отличие состоит в том, что вам теперь нужно узнать позицию первого дефиса («-«), а не пробела:
Думаю, вы поняли, что можете брать эту универсальную формулу, чтобы получить подстроку, которая предшествует любому другому знаку:
Как удалить последние N символов.
Вы уже знаете, отрезать кусочек от начала текстовой строки. Но иногда вы можете захотеть сделать что-то другое — удалить определенное количество символов из конца строки и перенести оставшееся в другую ячейку. Для этого можно также применять функцию ЛЕВСИМВ в сочетании с ДЛСТР , например:
ЛЕВСИМВ ( текст ; ДЛСТР( текст ) — число_символов_для_удаления )
Это работает с такой логикой: ДЛСТР получает общее количество символов в ячейке, затем вы вычитаете количество ненужных знаков из общей длины, а ЛЕВСИМВ возвращает оставшееся.
Например, чтобы удалить последние 7 знаков из текста в A2, запишите такое выражение:
Как показано на скриншоте, формула успешно отсекает слово «продукты» (8 букв, разделитель и 2 пробела) из текстовых значений в столбце A.
При этом взять на вооружение способ, рассмотренный нами в предыдущем примере, будет очень сложно, так как все разделители разные.
Как заставить ЛЕВСИМВ возвращать число.
Как вы уже знаете, ЛЕВСИМВ в Эксель всегда возвращает текст, даже если вы извлекаете несколько первых цифр из ячейки. Для вас это означает, что вы не сможете использовать эти результаты в вычислениях или в других функциях Excel, которые работают с числами.
Итак, как заставить ЛЕВСИМВ выводить числовое значение, а не текстовую строку, состоящую из цифр? Просто заключив его в функцию ЗНАЧЕН (VALUE), которая предназначена для преобразования текста, состоящего из цифр, в число.
Например, чтобы извлечь символы перед разделителем “-” из A2 и преобразовать результат в число, можно сделать так:
Результат будет выглядеть примерно так:
Не работает ЛЕВСИМВ — причины и решения
Если ЛЕВСИМВ не работает на ваших листах должным образом, это, скорее всего, связано с одной из причин, которые мы перечислим ниже.
1. Аргумент «количество знаков» меньше нуля
Если ваша формула возвращает ошибку #ЗНАЧ!, то первое, что вам нужно проверить, — это значение аргумента количество_знаков. Если вы видите отрицательное число, просто удалите знак минус, и ошибка исчезнет (конечно, очень маловероятно, что кто-то намеренно поставит отрицательное число, но человек может ошибиться 🙂
Чаще всего ошибка #ЗНАЧ! возникает, когда этот аргумент получен в результате вычислений, а не записан вручную. В этом случае скопируйте это вычисление в другую ячейку или выберите его в строке формул и нажмите F9, чтобы увидеть результат ее работы. Если значение меньше 0, проверьте на наличие ошибок.
Чтобы лучше проиллюстрировать эту мысль, возьмем формулу, которую мы записали в первом примере для извлечения телефонных кодов страны:
ЛЕВСИМВ(A2; ПОИСК(«-«; A2)-1)
Как вы помните, функция ПОИСК в наших примерах вычисляет позицию первого дефиса в исходной строке, из которой мы затем вычитаем 1, чтобы удалить дефис из окончательного результата. Если я случайно заменю -1, скажем, на -11, Эксель выдаст ошибку #ЗНАЧ!, потому что нельзя извлечь отрицательное количество букв и цифр:
2. Начальные пробелы в исходном тексте
Если вы скопировали свои данные из Интернета или экспортировали из другого внешнего источника, довольно часто такие неприятные сюрпризы попадаются в самом начале текста. И вы вряд ли заметите, что они там есть, пока что-то не пойдет не так. Следующее изображение иллюстрирует проблему:
Чтобы избавиться от ведущих пробелов на листах, воспользуйтесь СЖПРОБЕЛЫ (TRIM).
3. ЛЕВСИМВ не работает с датами.
Если вы попытаетесь использовать ЛЕВСИМВ для получения отдельной части даты (например, дня, месяца или года), в большинстве случаев вы получите только первые несколько цифр числа, представляющего эту дату. Дело в том, что в Microsoft Excel все даты хранятся как числа, представляющие количество дней с 1 января 1900 года. То, что вы видите в ячейке, это просто визуальное представление даты. Ее отображение можно легко изменить, применив другой формат.
Например, если у вас есть дата 15 июля 2020 года в ячейке A1 и вы пытаетесь извлечь день с помощью выражения ЛЕВСИМВ(A1;2). Результатом будет 44, то есть первые 2 цифры числа 44027, которое представляет 15 июля 2020г. во внутренней системе Эксель.
Чтобы извлечь определенную часть даты, возьмите одну из следующих функций: ДЕНЬ(), МЕСЯЦ() или ГОД().
Если же ваши даты вводятся в виде текстовых строк, то ЛЕВСИМВ будет работать без проблем, как показано в правой части скриншота:
Вот как можно использовать функцию ЛЕВСИМВ в Excel.
Все описанные выше операции, а также многие другие действия с текстовыми значениями в Excel вы можете выполнить при помощи специального инструмента работы с текстом, включённого в надстройку Ultimate Suite. Вот только некоторые из этих возможностей: удалить лишние пробелы и ненужные символы, изменить регистр текста, подсчитать буквы и слова, добавить один и тот же текст в начало или конец всех ячеек в диапазоне, преобразовать текст в числа, разделить по ячейкам, извлечь отдельные слова, найти дубликаты слов.
СЦЕПИТЬ в Excel: как объединять текстовые строки, ячейки и столбцы — В этом руководстве вы узнаете о различных способах объединения текстовых значений, ячеек, диапазонов, столбцов и строк в Excel с помощью функций СЦЕПИТЬ, СЦЕП и оператора «&» . В ваших файлах Excel…
Как быстро посчитать количество слов в Excel — В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel — В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как удалить пробелы в ячейках Excel — Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с…
Функция СЖПРОБЕЛЫ — как пользоваться и примеры — Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии) не работает и как…
Функция ПРАВСИМВ в Excel — примеры и советы. — В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Как извлечь текст из ячейки при помощи функции ПСТР и специальных инструментов — ПСТР — одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста. В этом руководстве мы обсудим…
5 примеров с функцией ДЛСТР в Excel. — Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel — В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…
Как в Excel разделить текст из одной ячейки в несколько — В руководстве объясняется, как разделить ячейки в Excel с помощью формул и стандартных инструментов. Вы узнаете, как разделить текст запятой, пробелом или любым другим разделителем, а также как разбить строки на…
Подсчет символов в ячейках
Excel для Microsoft 365 Excel для Интернета Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше
Если необходимо подсчитать символы в ячейках, используйте функцию LEN, которая подсчитывает буквы, цифры, символы и все пробелы. Например, длина фразы «На улице сегодня 25 градусов, я пойду купаться» (не учитывая кавычки) составляет 46 символов: 36 букв, 2 цифры, 7 пробелов и запятая.
Чтобы использовать функцию, введите =LEN(cell) в строке формул, а затем нажмите клавишу ВВОД на клавиатуре.
Несколько ячеек: Чтобы применить одну и ту же формулу к нескольким ячейкам, введите формулу в первую ячейку, а затем перетащите маркер заполнения вниз (или поперек) диапазона ячеек.
Чтобы получить общее количество всех символов в нескольких ячейках, необходимо использовать функции СУММ вместе с LEN. В этом примере функция LEN подсчитывает символы в каждой ячейке, а функция СУММ добавляет счетчики:
=СУММ((LEN(
cell1
),LEN(
cell2
),(LEN(
cell3
))
))).
Попробуйте попрактиковаться
Ниже приведены некоторые примеры использования функции LEN.
Скопируйте приведенную ниже таблицу и вставьте ее в ячейку A1 на листе Excel. Перетащите формулу из B2 в B4, чтобы увидеть длину текста во всех ячейках столбца A.
Текстовые строки |
Формулы |
---|---|
Быстрая бурая лиса. |
=ДЛСТР(A2) |
Быстрая бурая лиса вскочила. |
|
Съешь же еще этих мягких французских булок, да выпей чаю. |
Подсчет символов в одной ячейке
-
Щелкните ячейку B2.
-
Введите =LEN(A2).
Формула подсчитывает символы в ячейке A2, которая составляет 27, включая все пробелы и точку в конце предложения.
ПРИМЕЧАНИЕ: LEN подсчитывает пробелы после последнего символа.
Подсчет символов
в
нескольких ячейках
-
Щелкните ячейку B2.
-
Нажмите клавиши CTRL+C, чтобы скопировать ячейку B2, затем выделите ячейки B3 и B4, а затем нажмите клавиши CTRL+V, чтобы вставить формулу в ячейки B3:B4.
При этом формула копируется в ячейки B3 и B4, а функция подсчитывает символы в каждой ячейке (20, 27 и 45).
Подсчет общего количества символов
-
В книге с примерами щелкните ячейку В6.
-
Введите в ячейке формулу =СУММ(ДЛСТР(A2);ДЛСТР(A3);ДЛСТР(A4)) и нажмите клавишу ВВОД.
Это подсчитывает символы в каждой из трех ячеек и суммирует их (92).