Найдем количество вхождений определенной Буквы или любого символа в ячейке EXCEL.
Определим, сколько букв Z в слове
Zigzag
(
слово находится в ячейке
A
1
)
.
Формула для подсчета символа Z в слове
Zigzag
(с учетом регистра), см.
файл примера
:
=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;»Z»;»»))
Формула для подсчета символа Z (или z) в слове
Zigzag
(без учета РЕгиСТра):
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A1);»z»;»»))
Для подсчета количества пробелов (код символа пробела — 32) в ячейке используйте формулу:
=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(32);»»))
В статье
Подсчет вхождений последовательности символов
показано, как подсчитать количество вхождений некоторой последовательности символов в текстовой строке.
О поиске позиции n-го вхождения буквы в слове или в текстовой строке можно прочитать
здесь
.
I am trying to count the number of times a sub-string appears within a column of string data in Excel. Please see the below example.
The column of string data (tweets) looks like this:
A
1 An example string with @username in it
2 RT @AwesomeUser says @username is awesome
The column with «substrings» (Twitter screen names) looks like this:
B
1 username
2 AwesomeUser
I want to use a formula to count the number of times that a substring from B1, B2, etc. appears in the strings in column A. For example: a formula searching for B1 would return «2» and a search for B2 would return «1».
I can’t do it this way:
=COUNTIF(A:A, "username")
because COUNTIF only looks for strings, not substrings. This formula would always return «0».
Here’s a formula I thought might do it:
=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username"))
Unfortunately, I have 16,000 entries in column B and tens of thousands in A, so counting characters won’t work even on a high power PC (also, the result returned by the function is suspect).
I thought about using:
=COUNTIF(A:A, "*username*")
but COUNTIF requires a string with the star operators; I need to use cell references due to the volume of data.
My question: does anyone know how I can use a formula for this? If using COUNTIF, how do I get a cell reference in the conditional part of the statement (or use a function to substitute the string in the cell referenced within the conditional part of a COUNTIF statement)?
I know that I could parse the data, but I would like to know how to do it in Excel.
Подсчет вхождений в MS EXCEL Букв (Символов) в ТЕКСТовой строке
Смотрите также ЮрияМ.: Смотря что уar = Cells(Rows.Count,
Cells(i, 5) =AVI excel как будет: 1 Меня интересует кол-во
) =3 отличаются.Serge_007Уточняю второй вопрос (включая и «=»
Аналогичная формула =СУММПРОИЗВ(ДЛСТР(A7:A11)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A7:A11); {«1″;»2″};»»)))
вхождений некоторой последовательностиНайдем количество вхождений определенной2. Формула, показанная вас в А1,
4).End(xlUp).Row
CStr(13 — Len(Trim(Cells(i,: Добрый день! звучать функция?{/post}{/quote}0mega
trig = True
чисел0mega0mega:Quote )
может подсчитать количество символов в текстовой Буквы или любого в этой теме. дата или текст…
excel2.ru
Подсчет символов в диапазоне в MS EXCEL
For i = 4))) & Trim(Cells(i,В столбце D
нашла уже, спасибо,ElseSerge_007
:: Да, конечно.0mega
(0mega)200?’200px’:»+(this.scrollHeight+5)+’px’);»>вопрос 2-ой
P.S. цифр (1 и
строке.
символа в ячейкеИли Вы видитеЮрий М 3 To ar 4))) число с количеством
LEN
По второму вопросу…trig = False: Макрофункции — этоkim=(47+В3-2)/D5-12 =4
, вчитайтесь в вопросA1=(47+В3-2)/D5-12если эти 2 2) в диапазонахО поиске позиции n-го EXCEL. только свое сообщение?: Скопируйте название своейCells(i, 5) =Next i цифр от 7Подскажите пожалуйста как в0mega
excel2.ru
Счет определенных символов в ячейке
End If не ВБА, как
, здравствуйте
- это не
_Boroda_
кол-во цифр ? вопроса имеют отличие
с числами.
вхождения буквы в
Определим, сколько букв Z
аррр темы в окно Format(Cells(i, 4), «‘0000000000000»)
End Sub
до 12-ти Excel показать количество:Next Вы его понимаетеЯ прекрасно понимаю,
набор случайных символов.:кол-во математических знаков? в решении, тогда
Пусть в диапазоне
слове или в
в слове Zigzag: Спасибо! поиска и выбирайте,Next iЯ определил сколькоМне необходимо в определённых символов. В
kimMsgBox xHugo что этот вопрос
Это совокупность математических
Quote (включая и «=»
просьба к модераторам
А7:A11 текстовой строке можно
(слово находится в
Numit
что Вам большеEnd Sub нулей добавить, но
столбец Е добавить частности есть таблица,End Sub: VBA не вписывается в действий с конкретными(_Boroda_)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Вы хотите выковырять
) перенести 2-ой вопроссодержатся числа 1;
прочитать здесь. ячейке: Помогите пожалуйста, подходит.AVI как заставить их эти же числа с размерами. НужноСпасибо,_Boroda_
Запятую грубо уничтожаем. =ЕСЛИ(…) числами и ячейками. кол-во цифр изкол-во цифр: A1=( в отдельную тему
22; 123; 8;Найдем количество вхождений определенногоA1как формулой посчитатьGuest: добавиться я не так, что бы
суммировать сколько напримерИнтересное решение со: Формулами200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub tt()
Учитывая, то обстоятельство И если топнуть формулы, которая выдает47_Boroda_
5. Формула, приведенная символа в диапазоне).
количество знаков в: Спасибо нашел!!! =ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;».»;»»))_Boroda_ знаю
общее их количество размеров L и
знаками200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ(—(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ(«A1:A»&ДЛСТР(A1)));1))+ЕОШИБКА(-ПСТР(A1&» «;СТРОКА(ДВССЫЛ(«A2:A»&ДЛСТР(A1)+1));1))=2))-СУММ(—(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ(«A1:A»&ДЛСТР(A1)));1))+(ПСТР(A1&» «;СТРОКА(ДВССЫЛ(«A2:A»&ДЛСТР(A1)+1));1)=»,»)+ЕЧИСЛО(-ПСТР(A1&»»;СТРОКА(ДВССЫЛ(«A3:A»&ДЛСТР(A1)+2));1))=3))Dim s As
, что это на Enter то в ячейке+В3-: Пара вариантов по выше, вернет 5, ячеек.Формула для подсчета символа
ячейке?
— работает как, Е-мае, точно. Спасибо.StoTisteg было 13, а сколько XL. Беда
NumitПоследний кусок — исключительно
String, i As вопрос не из в ячейка А1значение2
первому вопросу во т.к. в диапазонеОпределим, сколько букв Z
Z в словеЗаранее спасибо часы ))Марат
: недостающие заменить нулями в том, что: Помогите пожалуйста,
для борьбы с Long, x As серии «МНЕ ОБЯЗАТЕЛЬНО будет результат вычисления(то есть формат)/D5- вложении содержится две цифры содержится в диапазоне Zigzag (с учетомmazayZRЮрий М: Добрый деньCells(i, 5)=Cstr(Trim(Cells(i, 5))) в начале числа.
формулы которые якак формулой посчитать запятой. Если все Long НАДО. Я СКОПИРУЮ (напр 53,6451) ячейки не текстовый)?
12=ДЛСТР(B1)-ДЛСТР(ПОДСТАВИТЬ(B1;B2;»»)) 1 (в числахА7:A11
регистра), см. файл: =ДЛСТР(A1)
: А если всегда
Помогите подсчитать количество
For j=13 toТо есть 41533892 нашёл количество знаков в
числа целые, тоDim trig As
И ВСТАВЛЮ ...P.S.kim=
{=СУММ(--(ПСТР(B1;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(B1)));1)=B2))} 1 и 123)
. примера:
Numit начинать с поиска?
символов в ячейке. Len(Cells(i, 5).Value) Step должно поменяться нанапример
ячейке?
попроще
Boolean
" а относится
Оказывается , я
:
3
По второму — Вы и три цифры
Формула для подсчета (с
=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;»Z»;»»)): Спасибо, а то :-)) Пример ячейка A1 -1
0000041533892, а 31404053
=СУММПРОИЗВ (ДЛСТР ($E$2:$E$47)-ДЛСТР
Заранее спасибоCode200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ(—(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ(«A1:A»&ДЛСТР(A1)));1))+ЕОШИБКА(-ПСТР(A1&» «;СТРОКА(ДВССЫЛ(«A2:A»&ДЛСТР(A1)+1));1))=2))
s = «За к «ХОЧУ ЗНАТЬ» так же не0megaкол-во математических знаков? хотите выковырять кол-во
2 (в числах учетом РЕгиСТра), см.
Формула для подсчета символа прям вся измучаласьСергей «1.09» и A2
Cells(i, 5)=»0″ &
на 0000031404053 (ПОДСТАВИТЬ (ПРОПИСН ($E$2:$E$47);{«L»};»»)))mazayZRформулы массива
2 дня оштрафовали
и еще сюда могу выковырять цифры
excelworld.ru
Как посчитать количество знаков в ячейке?
, (включая и «=»
цифр из формулы, 22 и 123). файл примера:
Z (или z)
:): Есть формула которая
«10» какую можно Cells(i, 5)Формулой получается такили
: =ДЛСТР(A1)MCH 18 водителей на приплюсовать что я
и из текстаЕсли запись в ) которая выдает в
0mega=СУММПРОИЗВ(ДЛСТР(A7:A11)-ДЛСТР(ПОДСТАВИТЬ(A7:A11;B4;»»)))
planetaexcel.ru
Подсчёт определённого количества символов в ячейке Excel
в слове ZigzagGuest производит подсчет необходимых использовать функцию чтоNext j=ПОВТОР(«0″;13-ДЛСТР(D3))&D3=СУММПРОИЗВ (ДЛСТР (E2:E27)-ДЛСТРNumit: =СУММПРОИЗВ(ЕЧИСЛО(—ПСТР(ПОДСТАВИТЬ(A1;»,»;»»);СТОЛБЕЦ(A:IU);1))*ЕОШ(—ПСТР(ПОДСТАВИТЬ(A1;»,»;»»);СТОЛБЕЦ(A:IU)+1;1))) 142,56 руб « в VBA-командах ,
…
ячейке A1 являетсяA1
ячейке значение (то
: Доброго времени суток.Формула для подсчета (без
(без учета РЕгиСТра):: а в английском знаков в ячейке. бы мне подсчиталоНе проверял, ноА как добавлять
(ПОДСТАВИТЬ (E2:E27;»L»;»»))): Спасибо, а то
Добавить определённое количество символов в ячейку (Макросы/Sub)
0megas = Replace(s,
все равно, непоэтому еще 1 формулой, а не=
есть формат ячейки2003 учета РЕгиСТра):=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A1);»z»;»»)) excel как будетК примеру в сколько раз в попробуйте, должно работать
определенное количество нулейподсчитывают количество букв прям вся измучалась:
«,», «») смогу разобраться -
доп вопрос текстом прийдется использовать(47 не текстовый)?
вопрос 1-й
=СУММПРОИЗВ(ДЛСТР(A7:A11)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A7:A11);»z»;»»)))Для подсчета количества пробелов
звучать функция? с лове «1)
ячейке А1 и_Boroda_ в код я L и в
:)
MCH
For i = поэтому ответ неячейка D1 содержит макрофункции.+
0megaводоотводФормула для одновременного подсчета
ячейках с XLGuest
(код символа пробелаGuest лжлордыаоррфвдао, 2) орапдолрп,
сколько в ячейке: Обязательно реально нули
не знаю
, 1 To Len(s) является обязательным тект:И в любом
В3-2)
:
кол-во букв "о" символов Z и
- 32) в: а в английском
3) длорааываы" подщитать А2 есть символ
добавить? Просто поставить
КодSub ffff()
тоже. И соответственно: а в английском_Boroda_If IsNumeric(Mid(s, i,
excelworld.ru
Подсчет символов в ячейке
QuoteЗа 2 дня оштрафовали
случае решение будет/to_Boroda_ ? цифры 1 в ячейке используйте формулу: excel как будет количество «)» «.» тоесть результат формат «0000000000000» неar = Cells(Rows.Count, сумма больше нужной excel как будет,
1)) Then(kim)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Да, еще, понятия: 18 водителей на тяжелым.
D5,вопрос 2-ой диапазоне=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(32);»»)) звучать функция?{/post}{/quote}
vikttur В1 = «1» подойдет? 4).End(xlUp).Row
получается. звучать функция?благодарю за уделенноеIf trig =
количество чисел и 142,56 рубДа, еще, понятия:-
Александр, здравствуйтеA1=(47+В3-2)/D5-12А7:A11В статье Подсчет вхожденийнашла уже, спасибо
: Есть. В2 = «0»
Макросом можно такFor i =
XraptorxGuest
время False Then x
количество цифр несколькоподсчитать кол-во чисел
planetaexcel.ru
Как посчитать количество знаков в ячейке?
количество чисел и12 =
Это идеальное решение первогокол-во цифр ?(без учета РЕгиСТра):
последовательности символов показано,
LEN1. По совету
GuestSub tt() 3 To ar: да, формулой счетесли
: а в английскомkim = x + отличаются. Правильное замечание.
(2 18 142,56 количество цифр несколько4 вопроса
кол-во математических знаков?=СУММПРОИЗВ(ДЛСТР(A7:A11)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A7:A11); {«z»;»1″};»»)))
planetaexcel.ru
как подсчитать количество
Недавно коллега спросил, как подсчитать число вхождений подстроки (определенного символа) в текст, размещенный в одной ячейке? Я давно знал, что в Excel нет такой функции. И вот вчера написал небольшую пользовательскую функцию КолСимв. [1] Вот ее код:
Function КолСимв(строка As String, символ As String) As Integer
Application.Volatile True
Dim TestPos As Integer
КолСимв = 0
TestPos = 1
Do While InStr(TestPos, строка, символ) > 0
КолСимв = КолСимв + 1
TestPos = InStr(TestPos, строка, символ) + Len(символ)
Loop
End Function
Мастер функции КолСимв предлагает выбрать, «строку» – в чем ищем, и «символ» – что ищем (рис. 1). При этом «символ» может содержать и несколько символов (подстроку).
Рис. 1. Мастер функции КолСимв, подсчитывающей число вхождений символа (подстроки) в текст
Скачать заметку в формате Word, пример в формате архива zip (внутри архива вы найдете Excel файл с макросом; политика провайдера не позволяет мне загрузить файл Excel, содержащий код VBA)
Ниже я расскажу подробнее о функции и о том, как работает код VBA.
Гордый собою, я решил обратиться к Интернету, чтобы сравнить свое детище с другими идеями. И… наткнулся на решение без привлечения VBA кода!
Вот что пишет Пол Мак-Федрис в книге «Формулы и функции в Microsoft Office Excel 2007». В разделе, посвященном текстовым функциям, в примечаниях к описанию функции ПОДСТАВИТЬ:
Одним из неожиданных способов использования функции ПОДСТАВИТЬ() является подсчет количества вхождений определенного символа в заданной строке. Идея состоит в том, что при удалении определенного символа из строки разница в длине между исходной строкой и полученной строкой в точности равна количеству вхождений данного символа в исходной строке. Например, строка «издержки» состоит из 8 символов. Если удалить из строки все символы «и», то длина оставшейся строки будет 6 символов. Разница между длиной исходной и длиной полученной строки составляет 2 – именно столько раз символ «и» встречался в исходной строке. Чтобы выполнить такую операцию в формуле, необходимо использовать функцию ДЛСТР() и вычесть длину строки после удаления символа из длины исходной строки:
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"
и"
;"
"
))
Джон Уокенбах в книге «Excel 2007. Библия пользователя» развивает эту идею, приводя формулу, способную подсчитать число вхождений подстрок в текст:
Формула представленная ниже подсчитывает количество вхождении подстроки, состоящей из нескольких символов (но, и один не возбраняется, прим. мое) в заданную текстовую строку. Пусть искомая подстрока находится в ячейке B1, а просматриваемый текст — в ячейке A2:
=(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;B1;"
"
)))/ДЛСТР(B1)
Для любознательных и начинающих VBA-программистов (коим, в сущности, являюсь и я) поясню, как работает код пользовательской функции КолСимв.
Function КолСимв(строка As String, символ As String) As Integer
Функция передает из Excel в VBA две текстовые строки: строка и символ. Значение функции является целым.
Dim TestPos As Integer
КолСимв = 0
TestPos = 1
Задается переменная TestPos – позиция, с которой будет искаться символ (подстрока) в строке, а также начальные значения самой функции КолСимв = 0 и переменной TestPos = 1.
Do While InStr(TestPos, строка, символ) > 0
КолСимв = КолСимв + 1
TestPos = InStr(TestPos, строка, символ) + Len(символ)
Loop
Цикл, выполняется до тех пор, пока значение InStr больше нуля. Функция VBA InStr – аналог Excel`евской НАЙТИ. Они обе возвращают позицию в строке, относительно начальной, с которой начинается искомый символ. Значение InStr будет больше нуля, пока символ будет входить в строку. Как только символ не будет найден в строке, функция InStr выдаст значение ошибки, и цикл прекратится.
КолСимв = КолСимв + 1
После каждого попадания внутрь цикла значение КолСимв будет увеличиваться на единицу; если ни одного символа не будет найдено в строке, КолСимв так и останется равным нулю.
TestPos = InStr(TestPos, строка, символ) + Len(символ)
Также внутри цикла происходит увеличение начальной позиции поиска для следующего цикла. Напомню, что InStr возвращает номер позиции. Затем это значение TestPos увеличивается на длину символа (единицу, если мы ищем вхождение единичного символа). В следующем цикле символ будет искаться с позиции сразу после окончания вхождения всего предыдущего символа в строку (рис. 2а).
Рис. 2. Принципы поиска символа «апа» в строке: (а) начальная позиция следующего поиска отстоит от начальной позиции предыдущего найденного вхождения на длину символа; (б) начальная позиция следующего поиска отстоит от начальной позиции предыдущего найденного вхождения на единицу
Представленный код функции КолСимв найдет 5 вхождений символа «апа» в строку «апапапапапапапапапапап». То есть, следующее вхождение будет искаться только после окончания предыдущего вхождения.
Если строку кода
TestPos = InStr(TestPos, строка, символ) + Len(символ)
заменить на
TestPos = InStr(TestPos, строка, символ) + 1
то функция КолСимв найдет 10 вхождений символа «апа» в строку «апапапапапапапапапапап», как показано на рис. 2б.
Обратите также внимание, что функция КолСимв чувствительна к языку (см. рис. 1): русский символ «а» в англоязычной строке «afff» не находится…
[1] Если вы никогда не создавали пользовательских функций, вам сюда. Не пугайтесь, это совсем несложно! 🙂
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 с помощью функции ДЛСТР. Если вы хотите знать, как считать слова, а не отдельные знаки, вы найдете несколько полезных формул в нашей следующей статье, следите за обновлениями!
Возможно, вам будут также полезны:
На чтение 1 мин Опубликовано 20.07.2015
Этот пример научит вас подсчитывать число вхождений текста в выбранном диапазоне.
- К примеру, можно сосчитать количество ячеек, содержащих текст «star» по следующей формуле:
=COUNTIF(A1:A7,"star")
=СЧЁТЕСЛИ(A1:A7;"star")
- Для подсчёта количества ячеек, содержащих «star» + 1 символ, подойдёт вот эта формула:
=COUNTIF(A1:A7,"star?")
=СЧЁТЕСЛИ(A1:A7;"star?")
Вопросительный знак (?) соответствует ровно одному символу.
- Подсчитать количество ячеек, содержащих «star» + ряд символов (от нуля и более), можно по формуле ниже:
=COUNTIF(A1:A7,"star*")
=СЧЁТЕСЛИ(A1:A7;"star*")
Звездочка (*) соответствует ряду символов (от нуля или больше).
- Также можно сосчитать количество ячеек, которые в любом случае содержат «star», воспользовавшись этой формулой:
=COUNTIF(A1:A7,"star*")
=СЧЁТЕСЛИ(A1:A7;"*star*")
Эта функция подсчитывает все ячейки, которые содержат «star», независимо от того, что находится до или после искомого текста.
- Ещё вы можете подсчитать количество ячеек, содержащих любой текст, прописав эту формулу:
=COUNTIF(A1:A7,"*")
=СЧЁТЕСЛИ(A1:A7;"*")
Оцените качество статьи. Нам важно ваше мнение:
В этом руководстве показано, как применять формулы на основе функций LEN и SUSTITUTE для подсчета количества раз, когда определенный символ появляется в ячейке Excel.
Как посчитать количество конкретных символов в ячейке?
Общая формула
=LEN(cell_ref)-LEN(SUBSTITUTE(cell_ref, «character»,»»))
аргументы
Cell_ref: Ячейка содержит текст, внутри которого вы будете считать определенный символ. Вы также можете напрямую заменить cell_ref текстом, заключенным в кавычки;
Характер: Персонаж, которого вы хотите посчитать. Это может быть:
1. Символ, заключенный в кавычки;
2. Или ссылку на ячейку, содержащую символ.
Как пользоваться этой формулой?
1. Выберите пустую ячейку, скопируйте в нее формулу ниже, чтобы получить результат.
=LEN(B3)-LEN(SUBSTITUTE(B3,»e»,»»))
В этом случае он возвращает результат 3, что означает, что символ «e» встречается в B3 три раза.
Tips: Вы можете напрямую ссылаться на символьную ячейку в формуле, как показано ниже. Получив первый результат, перетащите маркер заполнения, чтобы применить формулу к другим ячейкам.
=LEN(B3)-LEN(SUBSTITUTE(B3,C3,»»))
Заметки:
- 1. Если конкретный символ не найден, он вернет 0;
- 2. Функция ЗАМЕНА чувствительна к регистру;
- 3. Если вы хотите подсчитать определенный символ в ячейке и проигнорировать регистр, используйте функцию ВЕРХНИЙ внутри ПОДСТАВКИ, как показано ниже:
- =LEN(B3)-LEN(SUBSTITUTE(UPPER(B3),C3,»»))
Как работает эта формула?
- 1. LEN(B3): Эта функция LEN вычисляет общую длину текста B3 и возвращает результат 20.
- 2. LEN(SUBSTITUTE(B3,»e»,»»)): Функция ЗАМЕНА удаляет символ «e» из ячейки B3, а затем функция LEN вычисляет длину текста для ячейки B3 без специального символа «e». Здесь результат 17;
- 3. Наконец, длина текста без символа «e» вычитается из общей длины текста исходной текстовой строки и получается общее количество «e» в ячейке B3 (20-17 = 3).
Связанные функции
Функция ДЛСТР в Excel
Функция LEN возвращает количество символов в текстовой строке.
Функция ПОДСТАВИТЬ в Excel
Функция SUBSTITUTE заменяет текст или символы в текстовой строке другим текстом или символами.
Родственные формулы
Лучшие инструменты для работы в офисе
Kutools for Excel — Помогает вам выделиться из толпы
Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.
- Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
- Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
- Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
- 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.
Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)
- Одна секунда для переключения между десятками открытых документов!
- Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
- Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
- Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.
Комментарии (1)
Оценок пока нет. Оцените первым!