Excel посчитать количество одинаковых символов в ячейке

 

vmk19871987

Пользователь

Сообщений: 2
Регистрация: 16.01.2014

Добрый день! В ячейке есть набор символов, например, предложение «Летом мы каждый день купались в море». Требуется сосчитать, сколько раз в ячейке встречается определённый символ, то есть, например, сколько раз в этом предложении встречается буква «а». Подскажите, как это сделать?

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»а»;)

Изменено: Владимир05.10.2014 11:04:13

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

vmk19871987

Пользователь

Сообщений: 2
Регистрация: 16.01.2014

Огромное спасибо и Вам, и модератору за справедливое замечание.

Изменено: vmk1987198716.01.2014 17:40:50

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#4

16.01.2014 22:52:52

И от меня еще замечание.
В правилах есть пункт об отображаемом имени. «Бессмысленный набор…»
Исправите?

Добрый день.
Задача казалась простой…
Не нашёл на форуме аналогичной задачи — решения
и опять обращаюсь к Вам.

В ячейках с текстом есть повторяющиеся знаки (скобки, кавычки, ….)
Необходимо посчитать сколько раз встречается в диапазоне данный символ — например левая скобка.
Можно конечно посчитать для каждой ячеки из диапазона, а потом сложить.

Заранее спасибо.


Для одной ячейки(А1). Искомый символ — «)»

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»)»;»»))

Для подсчета искомого символа в диапазоне ячеек(формула массива)

=СУММ(ДЛСТР(A1:A20)-ДЛСТР(ПОДСТАВИТЬ(A1:A20;»)»;»»)))

A1:A20 — диапазон ячеек;
Искомый символ — «)»

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


)) как всё просто…
Виртуальная подстановка.
Это всегда так, если функция внутри другой функции, то она выполняется виртуально?

Спасибо!


Цитата: nikitalg от 09.03.2010, 13:31если функция внутри другой функции, то она выполняется виртуально?

Не совсем понял суть вопроса. Если Вы про
ДЛСТР(ПОДСТАВИТЬ(
то всегда сначала выполняется та функция, которая «более» внутри. Т.е. сначала выполнится ПОДСТАВИТЬ, а затем ДЛСТР. Если бы в ПОДСТАВИТЬ была еще, скажем, ПСТР, то порядок вычисления функций был бы таков
ПСТР->ПОДСТАВИТЬ->ДЛСТР

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


Помогите Подсчитать число повторений символа ‘a’ в строке символов из ячейки a3.


Ромка Исаков а самому применить формулу из 2-ого сообщения подставив своё значение и свою ячейку — ни как?



Skip to content

Как посчитать количество повторяющихся значений в Excel?

Зачем считать дубликаты? Мы можем получить ответ на множество интересных вопросов. К примеру, сколько клиентов сделало покупки, сколько менеджеров занималось продажей, сколько раз работали с определённым поставщиком и т.д. Если вы хотите посчитать точное количество повторяющихся записей на листе Excel, используйте один из следующих способов для подсчета дубликатов.

  1. Подсчет количества каждого из дубликатов.
  2. Считаем общее количество дубликатов в столбце.
  3. Количество совпадений по части ячейки.
  4. Как посчитать количество дубликатов внутри ячейки.
  5. Подсчет дубликатов строк.

Подсчет количества каждого из дубликатов.

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

Чтобы узнать, сколько раз та или иная запись встречается в вашей рабочей таблице Excel, используйте простую формулу COUNTIF, где A2 — первый, а A8 — последний элемент списка:

=СЧЁТЕСЛИ($A$2:$A$17;A2)

Как показано на следующем снимке экрана, программа подсчитывает вхождения каждого элемента: «Fanta» встречается 2 раза, «Sprite» — 3 раза, и так далее.

Если вы хотите указать на 1- е , 2- е , 3- е и т. д. появление каждого элемента, используйте:

=СЧЁТЕСЛИ($A$2:$A2;A2)

Мы отметили на рисунке первое, второе и третье появление Sprite.

Аналогичным образом вы можете посчитать количество повторяющихся строк. Единственное отличие состоит в том, что вам нужно будет использовать функцию СЧЁТЕСЛИМН() вместо СЧЁТЕСЛИ(). Например:

=СЧЁТЕСЛИМН($A$2:$A$17;A2;$B$2:$B$17;B2;$C$2:$C$17;C2)

На скриншоте мы отметили одинаковые строки.

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

Считаем общее количество дубликатов в столбце.

Самый простой способ подсчета повторений в столбце — это использовать любую из формул, которые мы использовали для идентификации дубликатов в Excel (ссылки смотрите в конце этой статьи). И затем вы можете подсчитать повторы:

=СЧЁТЕСЛИ(диапазон, «Дубликат»)

Пересчитываем метки, которые вы использовали для поиска дубликатов.

В этом примере наше выражение принимает следующую форму:

=СЧЁТЕСЛИ(B2:B17;»Дубликат»)

Еще один способ подсчета числа повторений в Excel — с использованием более сложной формулы массива. Преимущество этого подхода в том, что он не требует вспомогательного столбца:

{=ЧСТРОК($A$2:$A$17)-СУММ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$17;$A$2:$A$17)=1;1;0))}

Поскольку это формула массива, не забудьте нажать Ctrl + Shift + Enter, чтобы завершить ввод. 

Кроме того, имейте в виду, что она подсчитывает все повторяющиеся записи, включая первые вхождения:

Можно обойтись и без формулы маиисва:

=СУММПРОИЗВ(—(СЧЁТЕСЛИ(A2:A17;A2:A17)>1))

Это работает и с текстом, и с числами, а пустые ячейки игнорируются, что также очень полезно.

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

Здесь также есть два способа. Первый – с использованием вспомогательного столбца В.

В столбце B проставляем соответствующие отметки, как мы это уже не раз делали.

=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A2; A2)>1;»Дубликат»;»»)

Далее  определяем количество ячеек, содержимое которых встречается не в первый раз:

=СЧЁТЕСЛИ(B2:B17;»Дубликат»)

или формула массива

{=СЧЁТЗ(A2:A17)-СУММ(1/СЧЁТЕСЛИ(A2:A17;A2:A17))}

Ну а можно пойти от обратного. Считаем количество уникальных записей вот таким простым и элегантным способом:

{=СУММ(1/СЧЁТЕСЛИ(A2:A17;A2:A17))}

Возможно,вам эта формула массива будет полезна при подсчете уникальных значений.

Ну а теперь школьная задачка: если у нас всего 16 слов (можно использовать функцию СЧЁТЗ), и из них 10 – уникальных, то сколько будет неуникальных? Правильно – 6!

Количество совпадений по части ячейки.

Предположим, у нас в ячейке записано не только название товара, но и другая дополнительная информация: товарная группа, номер счёта, единицы измерения и т.п. Как в этом случае подсчитать число упоминаний определённого товара?

Будем проверять часть содержимого, используя функцию СЧЕТЕСЛИ и знаки подстановки.

Делаем это так:

=СЧЁТЕСЛИ($A$2:$A$17;»*»&C2&»*»)

Ищем любое вхождение искомого слова при помощи знаков подстановки “*”.

Как посчитать количество дубликатов внутри ячейки.

 Случается, что список находится вовсе не в таблице, а в одной ячейке ($A$2):
Рассмотренные нами выше приемы здесь точно не сработают. Но в Excel хватает других возможностей, и все можно сделать так же достаточно просто:

=(ДЛСТР($D$1)-ДЛСТР(ПОДСТАВИТЬ($D$1;D3;»»)))/ДЛСТР(D3)

При помощи ДЛСТР считаем количество символов в ячейке со списком товаров ($A$2)
Затем при помощи ПОДСТАВИТЬ заменяем в указанном тексте заданное слово на пустое «». По умолчанию заменяем все повторы. А фактически – удаляем их.

Теперь наша задача – узнать, сколько слов мы удалили. При помощи ДЛСТР узнаем количество символов, оставшихся в списке после этой замены. Вычитаем из первоначального количества символов количество оставшихся, то есть узнаем, сколько символов было удалено. Делим результат на число букв в искомом слове.

Результат вы видите на скриншоте выше.

Подсчет дубликатов строк.

Чтобы найти общее количество повторяющихся строк, вставьте функцию СЧЁТЕСЛИМН() вместо СЧЕТЕСЛИ() и укажите все столбцы, которые вы хотите проверить на наличие совпадений. Например, чтобы подсчитать повторяющиеся строки на основе столбцов A и B, введите следующую формулу массива в свой лист Excel:

{=ЧСТРОК($A$2:$A$17)-СУММ(ЕСЛИ(СЧЁТЕСЛИМН($A$2:$A$17;$A$2:$A$17;$B$2:$B$17;$B$2:$B$17)=1;1;0))}

Как видите, выполнить подсчет повторяющихся значений в таблицах Excel можно множеством различных способов. 

Рекомендуем также:


Найдем количество вхождений определенной Буквы или любого символа в ячейке EXCEL.

Определим, сколько букв Z в слове

Zigzag

(

слово находится в ячейке

A

1

)

.

Формула для подсчета символа Z в слове

Zigzag

(с учетом регистра), см.

файл примера

:

=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;»Z»;»»))

Формула для подсчета символа Z (или z) в слове

Zigzag

(без учета РЕгиСТра):

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A1);»z»;»»))

Для подсчета количества пробелов (код символа пробела — 32) в ячейке используйте формулу:

=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(32);»»))

В статье

Подсчет вхождений последовательности символов

показано, как подсчитать количество вхождений некоторой последовательности символов в текстовой строке.

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

здесь

.

Хитрости »

11 Ноябрь 2012              574608 просмотров


Как подсчитать количество повторений

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

    Что будем считать

  • Количество повторений каждой ячейки
  • Особенность при работе с функцией СЧЁТЕСЛИ
  • Количество повторений значения внутри ячейки

Количество повторений каждой ячейки

Имеется таблица:

И необходимо подсчитать количество повторений каждого наименования:

Самый простой способ — создать сводную таблицу, поместив в область строк и в область значений данные столбца А. Сводная сделает все сама. Подробнее про создание и использование сводных таблиц можно узнать в этой статье с видеоуроком: Общие сведения о сводных таблицах

Но если по каким-то причинам сводная не Ваш вариант — в Excel имеется функция СЧЁТЕСЛИ(COUNTIF), при помощи которой все это можно сделать тоже буквально за секунды. Если количество повторений каждого наименования необходимо вывести в столбец В таблицы, а сами наименования расположены в столбце А:
=СЧЁТЕСЛИ($A$2:$A$30;A2)
=COUNTIF($A$2:$A$30,A2)
Диапазон ($A$2:$A$30) — указываются ячейки диапазона, в которых записаны значения, количество которых необходимо подсчитать. Главная особенность: данный аргумент может быть исключительно ссылкой на ячейку или диапазон ячеек. Недопустимо указывать произвольный массив значений.
Критерий (A2) — указывается ссылка на ячейку или непосредственно значение для подсчета. Т.е. можно указать и так: =СЧЁТЕСЛИ($A$2:$A$30;»Яблоко»). Помимо этого можно применять символы подстановки: ? и *. Т.е. указав в качестве Критерия «*банан*» можно подсчитать количество ячеек, в которых встречается слово «банан»(банановый, банан, бананы, банановый сок, сто бананов, три банана и орех и т.п.). А указав «банан*» — значения, начинающиеся на «банан»(бананы, банановый сок, банановая роща и т.п.). «?» — заменяет лишь один символ, т.е. указав «бан?н» можно подсчитать строки и со значением «банан» и со значением «банон» и т.д. Если в качестве критерия указать =СЧЁТЕСЛИ($A$2:$A$30;»*»), то будут подсчитаны все текстовые значения. Числовые значения при этом игнорируются. Данные подстановочные символы (* и ?) не получится применить к числовым значениям — исключительно к тексту. Т.е. если если указать в качестве критерия «12*», то числа 1234, 123, 120 и т.п. не будут подсчитаны. Для подсчета числовых значений следует применять операторы сравнения: =СЧЁТЕСЛИ($A$2:$A$30;»>12″)

Подсчитать числа, которые больше нуля:=СЧЁТЕСЛИ($A$2:$A$30;»>0″)
Подсчитать количество непустых ячеек: =СЧЁТЕСЛИ($A$2:$A$30;»<>»)

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


Если необходимо подсчитать количество повторений на основании нескольких условий(значений), то начиная с 2007 Excel это легко можно сделать при помощи функции

СЧЁТЕСЛИМН(COUNTIFS)

. Синтаксис функции почти такой же, как у

СЧЁТЕСЛИ(COUNTIF)

, только условий и диапазонов больше:

=СЧЁТЕСЛИМН($A$2:$A$30;A2;$B$2:$B$30;B2)
предполагается, что условия записаны в столбце В

По сути идет просто перечисление:

=СЧЁТЕСЛИМН(Диапазон_условий1;Условие1; Диапазон_условий2;Условие2; Диапазон_условий3;Условие3; и т.д.)


Особенность при работе с функцией СЧЁТЕСЛИ

Так же не могу не написать про небольшую особенность функции

СЧЁТЕСЛИ

(а так же

СЧЁТЕСЛИМН

,

СУММЕСЛИ

,

СУММЕСЛИМН

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

ВПР

, которая к типам относится очень бережно и ничего не преобразует). Что это значит. Если у нас в ячейке записано число

23

— оно будет воспринято как число. Если тоже число будет записано как текст —

«023»

, то функция преобразует его сначала в число 23, а потом уже будет работать с ним. Т.е. и 23 и «023» у нас будут считаться одинаковым значением. Иными словами: если значение можно преобразовать в число — оно будет преобразовано в число и функция будет работать уже именно с этим числом.
С одной стороны это хорошо, но иногда такое поведение может сыграть злую шутку. Например, у нас в ячейках расположены некие номера счетов, длина которых более 15-ти символов и могут иметь ведущие нули:

00034889913131323455
0034889913131323455
00034889913131323477

как видно, первые два числа почти одинаковые, но у первого числа три ведущих нуля спереди, а второго — два. И это разные счета. А третий счет вообще отличается на последние цифры. Но СЧЁТЕСЛИ после преобразования все три этих значения будет считать как число

34889913131323400

и если записать функцию так:

=СЧЁТЕСЛИ($A$1:$A$3;A1)

, то она вернет значение 3. Особо обращаю внимание на тот факт, что все числа после 15-го знака будут преобразованы в нули. Эти особенности всегда необходимо учитывать при использовании данных функций, чтобы не попасть в неловкую ситуацию, когда подсчет будет некорректным.


Количество повторений значения внутри ячейки

Еще один вариант подсчета значений. Бывают случаи, когда список расположен вовсе не в таблице, а в одной ячейке(

$D$1

):

Дыня Киви Груша Яблоко Дыня Груша Груша Арбуз Яблоко Банан Яблоко Яблоко Банан Яблоко Яблоко Дыня Дыня Киви Банан Дыня Арбуз Дыня Киви Яблоко Дыня Груша Яблоко Киви Арбуз

Здесь СЧЁТЕСЛИ точно не поможет. Но в Excel полно других функций и все можно сделать так же достаточно просто:

=(ДЛСТР($D$1)-ДЛСТР(ПОДСТАВИТЬ($D$1;D3;»»)))/ДЛСТР(D3)
=(LEN($D$1)-LEN(SUBSTITUTE($D$1,D3,»»)))/LEN(D3)
ДЛСТР(LEN)

— подсчитывает количество символов в указанной ячейке/строке(

$D$1, D3

)

ПОДСТАВИТЬ(SUBSTITUTE) (текст; старый_текст; новый_текст)

— заменяет в указанном тексте заданный символ на любое другое заданное значение. По умолчанию заменяет все повторы указанного символа. Именно это и положено в основу алгоритма. На примере значения Банан(

D3

) пошаговый разбор формулы:

  • при помощи функции ДЛСТР получаем количество символов в строке с исходным текстом($D$1) =(170-ДЛСТР(ПОДСТАВИТЬ($D$1;D3;»»)))/ДЛСТР(D3);
  • при помощи функции ПОДСТАВИТЬ заменяем в строке с исходным текстом($D$1) все значения Банан(D3) на пусто и при помощи ДЛСТР получаем количество символов строки после этой замены =(170-155)/ДЛСТР(D3);
  • вычитаем из общего количества символов количество символов в строке после замены и делим результат на количество символов в критерии =(170-155)/5.

Получаем число 3. Что нам и требовалось.

Но тут есть и более каверзная ситуация — когда у нас диапазон ячеек, в каждой из которых наше слово может встречаться более одного раза. И подсчитать надо ВСЕ повторения. Диапазон для подсчета повторений у нас будет в ячейках A1:A10. Слово для подсчета повторений запишем в ячейку B1(там будет все тоже слово «банан»):
Подсчет внутри ячеек диапазона
Базируясь на формуле выше можно написать такую:
=СУММПРОИЗВ((ДЛСТР(A1:A10)-ДЛСТР(ПОДСТАВИТЬ(A1:A10;B1;»»)))/ДЛСТР(B1))
=SUMPRODUCT((LEN(A1:A10)-LEN(SUBSTITUTE(A1:A10,B1,»»)))/LEN(B1))


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

Function GetRepeat(sTxt As String, sCntWord As String)
    GetRepeat = (Len(sTxt) - Len(Replace(sTxt, sCntWord, ""))) / Len(sCntWord)
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Ctrl+F3), отыскав её в категории Определенные пользователем (User Defined Functions).
Синтаксис функции:
=GetRepeat($D$1;D3)
sTxt — текст, в котором подсчитываем кол-во вхождения.
sCntWord — текст для подсчета. Может быть символом или словом.

Скачать пример

  Пример Подсчета повторений.xls (70,5 KiB, 13 310 скачиваний)

Так же см.:
Что такое формула?
Функция СУММЕСЛИ, а так же СУММЕСЛИ по двум критериям


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Excel порядковый номер дня месяца
  • Excel посчитать количество непустых ячеек в строке
  • Excel порядковый номер автоматически формула
  • Excel посчитать количество красных ячеек в excel
  • Excel порядковый день в году