Посчитать количество повторяющихся слов в excel
Как подсчитывать повторения в Excel?
Добрый день, уважаемый читатель!
Эту статью я хочу посвятить повторам тех значений, которые встречаются в вашей таблице, то есть мы научимся как подсчитывать повторения в Excel. Данная возможность будет полезной при подсчёте одинаковых значений в необходимом диапазоне, это поможет когда с большого массива вам нужно сгруппировать, например, сколько сотрудников сделало чеков, сколько раз работали с тем или иным поставщиком и многое другое.
Для начала рассмотрим, как выглядят столбики с данными, повторения в которых, мы собственно и будем считать. К примеру, возьмём список сотрудников, которые совершают продажи. Теперь можно посчитать, сколько раз сотрудник производил продажи, то есть попросту считаем сколько повторений его фамилии в столбике. Это возможно произвести несколькими способами:
Используя функцию СЧЁТЕСЛИ
В Excel произвести такой подсчёт чрезвычайно просто, достаточно задействовать функцию СЧЁТЕСЛИ и она за несколько секундок всё за вас сделает. В нашем случае формула будет следующего вида:
=СЧЁТЕСЛИ($B$2:$B$11;B15) В первом аргументе «диапазон» $B$2:$B$11, указываем тот диапазон ячеек, в котором и будет производиться подсчёт повторяющихся данных. Важно! Указывать случайный диапазон данных недопустимо. Его особенностью является то, что он может быть только диапазоном ячеек или ссылкой на определённую ячейку.
Вторым аргументом «критерий» ставим указание на ячейку, по которому будет производиться подсчёт аналогичных данных. Если он один вы можете его прописать вручную как текстовое слово и вместо адреса ячейки «B15» указать «Нагаев А.В.», результат будет аналогичным, но только в одном конкретном случае, возможность автоматизации таблицы тогда значительно сократится.
Дополнительная информация! Кроме прямого указания поиска данных, функция СЧЁТЕСЛИ умеет работать с символами подстановки. Таких знаков используют двух видов «?» и «*», применять их возможно только при работе с текстовыми символами. Знак «*» позволяет заменить абсолютно любое количество значений, а Знак «?» производит замену только одного символа.
Для работы с числовыми значениями необходимо применять знаки операторов сравнения: «>», « » и «=». К примеру, для подсчёта числовых значений больше «нуля» прописывайте «>0», а для подсчёта непустых ячеек нужен указать «<>».
Используем функцию СЧЁТЕСЛИМН
Когда у вас возникает необходимость подсчитывать повторения в Excel, но уже по нескольким критериям, тогда нужно работать с функцией СЧЁТЕСЛИМН, которая легко и просто сможет это выполнить.
В моём примере я добавлю категорию продаж по городам и используя формулы соберу необходимые мне повторы:
=СЧЁТЕСЛИМН($B$2:$B$11;B14;$C$2:$C$11;C14) Замечу, что орфография функции абсолютно аналогична предыдущей функции СЧЁТЕСЛИ, разница состоит только в их количестве. В нашем примере их два, но функция умеет работать и со 127 диапазонами.
Работаем с функцией ДЛСТР
Теперь давайте рассмотрим ситуацию, когда не всё так просто и упорядоченно, когда информация сбита в одну ячейку, к примеру, «Нагаев Гаврош Каропачёв Козубенко Нагаев Гаврош Козубенко Нагаев Нагаев». В этом случае статистические функции нам не помогут, необходимо считать символы и сверять повторы значений с указанным эталоном. Для этих целей есть много иных полезных функций, используя которые это можно провернуть достаточно просто:
=(ДЛСТР($B$2) -ДЛСТР(ПОДСТАВИТЬ($B$2;B5;»»)))/ДЛСТР(B5) Итак, используя функцию ДЛСТР, мы считаем, сколько же символов содержится в ячейке «$B$2» и «B5», результат будет «71». А потом с помощью функции ПОДСТАВИТЬ производим замену текущего значения на «пусто», получаем результат «47». Следующим действием отнимаем от общего количества символов наш остаток «71-47=24» и делим на количество символов в одном значении «24/6=4», как результат получаем сколько раз в строке, встречается необходимый результат… Ответ: 4. (Это результат рассматривая только первую строку поиска).
С помощью функций VBA
Последний рассматриваемый вариант, это подсчёт количества повторений с помощью, созданной в VBA функции. Функции я не писал, а просто предлагаю вам найденный ранее вариант, чтобы упростить вашу работу.
Для начала вам нужно запустить редактор макросов VBA и вставить новый модуль с помощью команд «Insert» — «Module». В созданное окно модуля вы вставляете код функции:
Подсчет количества уникальных значений среди повторяющихся
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Допустим, вам нужно узнать, сколько уникальных значений есть в диапазоне, содержащем повторяющиеся значения. Например, если столбец включает в себя следующее:
Значения 5, 6, 7 и 6 выводятся в виде трех уникальных значений: 5, 6 и 7.
Значения «Кирилл», «Сергей», «Сергей», «Сергей», результат — это два уникальных значения — «Кирилл» и «Сергей».
Существует несколько способов подсчета уникальных значений среди повторяющихся.
С помощью диалогового окна » Расширенный фильтр » можно извлекать уникальные значения из столбца данных и вставлять их в новое место. Затем с помощью функции ЧСТРОК можно подсчитать количество элементов в новом диапазоне.
Выделите диапазон ячеек или убедитесь в том, что активная ячейка находится в таблице.
Убедитесь, что диапазон ячеек содержит заголовок столбца.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Откроется диалоговое окно » Расширенный фильтр «.
Выберите команду скопировать в другое место.
В поле Копировать в введите ссылку на ячейку.
Вы также можете нажать кнопку Свернуть диалоговОе окно , чтобы временно скрыть диалоговое окно, выделить ячейку на листе и нажать кнопку Развернуть диалоговое окно
.
Установите флажок только уникальные записи и нажмите кнопку ОК.
Уникальные значения из выделенного диапазона копируются в новое место, начиная с ячейки, указанной в поле Копировать в .
В пустой ячейке, расположенной под последней ячейкой диапазона, введите функцию строки . Используйте диапазон уникальных значений, которые вы только что скопировали в качестве аргумента, исключая заголовки столбцов. Например, если диапазон уникальных значений — B2: B45, вы вводите = Rows (B2: B45).
Для выполнения этой задачи используйте сочетание функций Если, сумм, Частота, ПОИСКПОЗи ДЛСТР .
Назначьте значение 1 каждому из истинных условий с помощью функции ЕСЛИ.
Добавьте итог с помощью функции сумм .
ПодСчитайте число уникальных значений с помощью функции Частота . Функция FREQUENCY не обрабатывает текстовые и нулевые значения. Для первого вхождения определенного значения эта функция возвращает число, равное количеству вхождений этого значения. Для каждого вхождения того же значения, которое находится после первой, эта функция возвращает нуль.
Возвращает расположение текстового значения в диапазоне с помощью функции ПОИСКПОЗ . Возвращаемое значение затем используется в качестве аргумента функции FREQUENCY , чтобы можно было оценивать соответствующие текстовые значения.
Поиск пустых ячеек с помощью функции Len . Длина пустых ячеек равна 0.
Формулы, приведенные в этом примере, должны быть введены как формулы массива. Если у вас установлена текущая версия Office 365, можно просто ввести формулу в верхней левой ячейке диапазона вывода и нажать клавишу ВВОД, чтобы подтвердить использование формулы динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Чтобы просмотреть Пошаговое вычисление функции, выделите ячейку с формулой, а затем на вкладке формулы в группе Зависимости формул нажмите кнопку Вычисление формулы.
Функция Частота Вычисляет частоту возникновения значений в диапазоне значений и возвращает вертикальный массив чисел. Например, используйте функцию Частота для подсчета количества результатов теста, которые попадают в диапазоны оценок. Так как эта функция возвращает массив, она должна быть введена как формула массива.
Функция ПОИСКПОЗ осуществляет поиск определенного элемента в диапазоне ячеек и возвращает относительное расположение этого элемента в диапазоне. Например, если в диапазоне a1: A3 содержатся значения 5, 25 и 38, функция формула = Match (25; a1: A3; 0) возвращает число 2, так как значение 25 является вторым элементом диапазона.
Функция ДЛСТР возвращает число символов в текстовой строке.
Функция СУММ вычисляет сумму всех чисел, указанных в качестве аргументов. Каждый аргумент может быть диапазоном, ссылкой на ячейку, массивом, константой, формулой или результатом другой функции. Например, функция сумм (a1: A5) складывает все числа, содержащиеся в ячейкАх от a1 до A5.
Функция Если возвращает одно значение, если указанное условие имеет значение true, и другое, если условие имеет значение false.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Как подсчитать количество повторений
В этой статье я хочу рассказать, как можно подсчитать количество повторений какого-либо значения в таблице или в ячейке. Начнем по порядку. Имеется таблица:
И необходимо подсчитать количество повторений каждого наименования:
Как ни странно, но сделать это весьма просто: в Excel имеется функция — СЧЁТЕСЛИ, при помощи которой все это сделать можно буквально за секунды. Если количество повторений каждого наименования необходимо вывести в столбец В таблицы, а сами наименования расположены в столбце А:
=СЧЁТЕСЛИ( $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 ;»<>«)
Как видно из второго рисунка — там наименования не повторяются, хотя в таблице они все записаны вперемешку. Я не буду заострять на этом внимание — я уже описывал это в статье Как получить список уникальных(не повторяющихся) значений? и при необходимости можно воспользоваться любым описанным в ней методом.
Но. Бывают случаи, когда список расположен вовсе не в таблице, а в одной ячейке( $D$1 ):
Дыня Киви Груша Яблоко Дыня Груша Груша Арбуз Яблоко Банан Яблоко Яблоко Банан Яблоко Яблоко Дыня Дыня Киви Банан Дыня Арбуз Дыня Киви Яблоко Дыня Груша Яблоко Киви Арбуз
Здесь СЧЁТЕСЛИ точно не поможет. Но в Excel полно других функций и все можно сделать так же достаточно просто:
=(ДЛСТР( $D$1 )-ДЛСТР(ПОДСТАВИТЬ( $D$1 ; D3 ;»»)))/ДЛСТР( D3 )
ДЛСТР — подсчитывает количество символов в указанной ячейке/строке( $D$1 , D3 )
ПОДСТАВИТЬ (текст; старый_текст; новый_текст) — заменяет в указанном тексте заданный символ на любое другое заданное значение. По умолчанию заменяет все повторы указанного символа. Именно это и положено в основу алгоритма. На примере значения Банан( D3 ) пошаговый разбор формулы:
- при помощи функции ДЛСТР получаем количество символов в строке с исходным текстом( $D$1 ) =(170-ДЛСТР(ПОДСТАВИТЬ( $D$1 ; D3 ;»»)))/ДЛСТР( D3 ) ;
- при помощи функции ПОДСТАВИТЬ заменяем в строке с исходным текстом( $D$1 ) все значения Банан( D3 ) на пусто и при помощи ДЛСТР получаем количество символов строки после этой замены =(170-155)/ДЛСТР( D3 ) ;
- вычитаем из общего количества символов количество символов в строке после замены и делим результат на количество символов в критерии =(170-155)/5 .
Получаем число 3. Что нам и требовалось.
И простая функция пользователя, которая так же подсчитывает повторения внутри ячейки:
Function GetRepeat(sTxt As String, sCntWord As String) GetRepeat = (Len(sTxt) — Len(Replace(sTxt, sCntWord, «»))) / Len(sCntWord) End Function
Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA( Alt + F11 ) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Ctrl + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .
Синтаксис функции:
=GetRepeat( $D$1 ; D3 )
sTxt — текст, в котором подсчитываем кол-во вхождения.
sCntWord — текст для подсчета. Может быть символом или словом.
Tips_All_Count_Duplicate.xls (39,0 KiB, 9 457 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Добрый день.
Можете ли вы мне помочь?
Нужно посчитать количество повторений по столбцу рейс только в одной строке.
Рейс. Объем. Колич
повтор
1аб. 2 2
1ав. 3. 1
1 аб. 0.3. 2 (2нужно посчитать как 0)
2аг. 9. 2
2аг. 3. 2 (2нужно посчитать как 0)
2ав. 0.4. 1
Убрать дубликаты не могу, т.к удаляет всю строку, а значения в поле объем нужны для дальнейшего расчета. Упорядочить значения в столбце рейс тоже нельзя, т.к во всей исходной таблице есть объединенные ячейки, которые нельзя разбить.
Попробуйте задать вопрос в форуме , приложив пример файла с данными. По одному описанию у меня не получается понять задачу.
Количество слов в ячейке в Excel
Рассмотрим простой способ подсчета количества слов в ячейке в Excel.
Стандартной формулы подсчета слов в ячейке в Excel нет, поэтому итоговая формула будет состоять из нескольких формул.
Итоговая формула выглядит следующим образом:
=ЕСЛИ(ЕПУСТО( A2 );0;ДЛСТР(СЖПРОБЕЛЫ( A2 ))-ДЛСТР(ПОДСТАВИТЬ( A2 ;» «;»»))+1)
Краткое описание используемых функций (с подробным описанием можно ознакомиться в конце статьи):
- СЖПРОБЕЛЫ — удаляет из текста лишние пробелы;
- ПОДСТАВИТЬ — производит замену старого текста на новый в текстовой строке;
- ДЛСТР — рассчитывает количество знаков в строке;
- ЕПУСТО — проверяет является ли ячейка пустой.
Алгоритм подсчета
Алгоритм строится на том факте, что количество слов в любой фразе всегда на 1 больше, чем количество пробелов.
Однако фраза может начинаться с пробела или по ошибке могут встречать двойные пробелы, поэтому в первую очередь удалим лишние проблемы из исходной фразы с помощью функции СЖПРОБЕЛЫ и подсчитаем длину фразы функцией ДЛСТР:
Теперь рассчитаем длину фразы без учета пробелов, для этого воспользуемся функций ПОДСТАВИТЬ, которая удалит символ пробела (если быть точнее, то заменит » » на «»):
Рассчитываем разницу между двумя данными значениями, прибавляем 1 и получаем итоговое количество слов в ячейке:
=ДЛСТР(СЖПРОБЕЛЫ( A2 ))-ДЛСТР(ПОДСТАВИТЬ( A2 ;» «;»»))+1
Однако в случае, если ячейка пустая, то данная формула вернет значение 1, поэтому добавим в функцию проверку на непустую ячейку (если ячейка пустая, то вернется значение 0):
=ЕСЛИ(ЕПУСТО( A2 );0;ДЛСТР(СЖПРОБЕЛЫ( A2 ))-ДЛСТР(ПОДСТАВИТЬ( A2 ;» «;»»))+1)
Описание используемых функций
Функция СЖПРОБЕЛЫ:
СЖПРОБЕЛЫ(текст)
Удаляет из текста лишние пробелы (кроме одиночных пробелов между словами).
- Текст(обязательный аргумент) — текст, из которого удаляются лишние пробелы.
Функция ПОДСТАВИТЬ:
ПОДСТАВИТЬ(текст; стар_текст; нов_текст; [номер_вхождения])
Заменяет новым текстом старый текст в текстовой строке.
- Текст(обязательный аргумент) — текст, в котором происходит подстановка;
- Старый текст(обязательный аргумент) — заменяемый текст;
- Новый текст(обязательный аргумент) — текст, на который меняется старый текст;
- Номер вхождения(необязательный аргумент) — номер вхождения заменяемого фрагмента старый текст.
Функция ДЛСТР:
ДЛСТР(текст)
Возвращает количество знаков в текстовой строке.
- Текст(обязательный аргумент) — измеряемый текст.
Функция ЕПУСТО:
ЕПУСТО(значение)
Проверяет, ссылается ли данная ссылка на пустую ячейку, и возвращает значение ИСТИНА или ЛОЖЬ.