Как найти равные числа в экселе
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как подсчитать количество повторений
В этой статье я хочу рассказать, как можно подсчитать количество повторений какого-либо значения в таблице или в ячейке.
Количество повторений каждой ячейки
Имеется таблица:
И необходимо подсчитать количество повторений каждого наименования:
Самый простой способ — создать сводную таблицу, поместив в область строк и в область значений данные столбца А. Сводная сделает все сама. Подробнее про создание и использование сводных таблиц можно узнать в этой статье с видеоуроком: Общие сведения о сводных таблицах
Но если по каким-то причинам сводная не Ваш вариант — в 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-ти символов и могут иметь ведущие нули:
000 34889913131323455
00 34889913131323455
000 34889913131323477
как видно, первые два числа почти одинаковые, но у первого числа три ведущих нуля спереди, а второго — два. И это разные счета. А третий счет вообще отличается на последние цифры. Но СЧЁТЕСЛИ после преобразования все три этих значения будет считать как число 348899131313234 00 и если записать функцию так: =СЧЁТЕСЛИ( $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
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 — текст для подсчета. Может быть символом или словом.
Пример Подсчета повторений.xls (70,5 KiB, 13 600 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
MS Excel
В Excel можно не только выделять и удалять дублирующие данные, но и работать с ними – посчитать дубли перед удалением, обозначить дубли словами, числами, знаками, найти повторяющиеся строки, состоящие из нескольких ячеек, т.д.
Дублирующие данные подкрасили условным форматированием.
Есть два варианта выделять ячейки с одинаковыми данными. Первый вариант, когда выделяются все ячейки с одинаковыми данными. Второй вариант – выделяем вторую и следующие ячейки в одинаковыми данными .
Первый способ.
Как выделить повторяющиеся значения в Excel .
Нам нужно в соседнем столбце напротив данных ячеек написать слово «Да», если есть дубль, у ячеек с уникальными данными написать слово «Нет».
В столбце А устанавливаем фильтр. В ячейке B2 пишем слово «Нет».

Слово скопируется вниз по столбцу до последней заполненной ячейки таблицы.
Теперь в столбце A отфильтруем данные – «Фильтр по цвету ячейки». Можно по цвету шрифта, зависит от того, как выделены дубли в таблице.

В таблице остались две строки с дублями. В верхней ячейке отфильтрованного столбца B пишем слово «Да». Копируем по столбцу.

Возвращаем фильтром все строки в таблице.

Мы подсветили ячейки со словом «Да» условным форматированием .
Этот способ подходит, если данные в столбце A не меняются.
Второй способ.
Как выделить повторяющиеся ячейки в Excel .
Установим формулу в столбце D, чтобы автоматически писались слова. =ЕСЛИ(СЧЁТЕСЛИ(A$5:A5;A5)>1;»Да»;»Нет»)
Копируем формулу по столбцу.

Т акое выделение дублей, выделяет словом «Да» следующие повторы в ячейках, кроме первой ячейки.
Слова в этой формуле можно писать любые или числа, знаки. =ЕСЛИ(СЧЁТЕСЛИ(A$5:A5;A5)>1;»Повторно»;»Впервые»)
В столбце F написали формулу. =ЕСЛИ(СЧЁТЕСЛИ(A$5:A5;A5)>1 ;»+»;»-«)
Можно в таблице использовать формулу из столбца E или F, чтобы при заполнении соседнего столбца было сразу видно, есть дубли в столбце или нет . =ЕСЛИ(СЧЁТЕСЛИ(A$5:A5;A5)>1;»+»;»-«) Если в столбце В стоит «+», значит такую фамилию уже написали .
Третий способ.
Посчитать количество одинаковых значений Excel .
Нам нужно не только выделить повторы, но и вести их подсчет, написать в ячейке их количество.
В ячейке G5 пишем такую формулу. =ЕСЛИ(СЧЁТЕСЛИ(A$5:A$10;A5)>1;СЧЁТЕСЛИ(A$5:A5;A5);1) Копируем по столбцу .
Изменим данные в столбце А для проверки.

Четвертый способ.
Формула для поиска одинаковых значений в Excel .
Нам нужно выделить дубли формулой в условном форматировании. Выделяем ячейки. Вызываем диалоговое окно условного форматирования. Выбираем функцию «Использовать формулу для определения форматируемых ячеек».
В строке «Форматировать формулу для определения форматируемых ячеек» пишем такую формулу. =СЧЁТЕСЛИ($A:$A;A5)>1 Устанавливаем формат, если нужно выбрать другой цвет ячеек или шрифта.

Нажимаем «ОК». Все ячейки с повторяющимися данными окрасились.
Можно в условном форматировании установить белый цвет заливки и шрифта.

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

В столбцах A, B, C стоят фамилии, имена и отчества. Чтобы сравнить сразу по трем столбцам, нужно соединить данные трех столбцов в одной ячейке. В ячейке D15 пишем формулу, используя функцию «СЦЕПИТЬ» в Excel . =СЦЕПИТЬ(A15;» «;B15;» «;C15)
Как найти равные числа в экселе
Всем доброго дня! Обращаюсь к вам, умные люди, за помощью. В силу работы, мне ежедневно приходится отсматривать большие объемы информации. В целях облегчения, у меня появилась идея, но вот с ее реализацией, к сожалению проблема. Вобщем кратко — суть: Есть ли возможность написать такую формулу, чтобы в двух открытых файлах ексель отсмотрел два столбца. Цель: найти одинаковые номера из одного файла и выделить их в другом файле если таковые имеются в указанном столбце. Не уверена что понятно объяснила. в указанном столбце располагается номер закупки (работа связана с госзакупками) — значок номера и 9 цифр. Ежедневно я скачиваю обновленную базу, и за какое — либо число этих номеров может увеличиться. К примеру вчера на эту дату было 352 строки (отслеживаю именно по строкам чтобы увидеть изменения в числе), а сегодня на эту же дату — 388 строк. и чтобы вычислить эти добавленные 30 с лишним строк, мне необходимо просмотреть их все. А хотелось бы — чтобы супер формула сказала мне — добавлены вот эти. я их отсмотрела и пошла дальше смотреть другие. Возможно так.
Прикрепляю файлы, столбец В выделен цветом, его и нужно подвергнуть анализу.
Всем доброго дня! Обращаюсь к вам, умные люди, за помощью. В силу работы, мне ежедневно приходится отсматривать большие объемы информации. В целях облегчения, у меня появилась идея, но вот с ее реализацией, к сожалению проблема. Вобщем кратко — суть: Есть ли возможность написать такую формулу, чтобы в двух открытых файлах ексель отсмотрел два столбца. Цель: найти одинаковые номера из одного файла и выделить их в другом файле если таковые имеются в указанном столбце. Не уверена что понятно объяснила. в указанном столбце располагается номер закупки (работа связана с госзакупками) — значок номера и 9 цифр. Ежедневно я скачиваю обновленную базу, и за какое — либо число этих номеров может увеличиться. К примеру вчера на эту дату было 352 строки (отслеживаю именно по строкам чтобы увидеть изменения в числе), а сегодня на эту же дату — 388 строк. и чтобы вычислить эти добавленные 30 с лишним строк, мне необходимо просмотреть их все. А хотелось бы — чтобы супер формула сказала мне — добавлены вот эти. я их отсмотрела и пошла дальше смотреть другие. Возможно так.
Прикрепляю файлы, столбец В выделен цветом, его и нужно подвергнуть анализу. Gremina
К сообщению приложен файл: 20-03.xls (55.5 Kb) · 19-03.xls (43.0 Kb)
Сообщение Всем доброго дня! Обращаюсь к вам, умные люди, за помощью. В силу работы, мне ежедневно приходится отсматривать большие объемы информации. В целях облегчения, у меня появилась идея, но вот с ее реализацией, к сожалению проблема. Вобщем кратко — суть: Есть ли возможность написать такую формулу, чтобы в двух открытых файлах ексель отсмотрел два столбца. Цель: найти одинаковые номера из одного файла и выделить их в другом файле если таковые имеются в указанном столбце. Не уверена что понятно объяснила. в указанном столбце располагается номер закупки (работа связана с госзакупками) — значок номера и 9 цифр. Ежедневно я скачиваю обновленную базу, и за какое — либо число этих номеров может увеличиться. К примеру вчера на эту дату было 352 строки (отслеживаю именно по строкам чтобы увидеть изменения в числе), а сегодня на эту же дату — 388 строк. и чтобы вычислить эти добавленные 30 с лишним строк, мне необходимо просмотреть их все. А хотелось бы — чтобы супер формула сказала мне — добавлены вот эти. я их отсмотрела и пошла дальше смотреть другие. Возможно так.
Прикрепляю файлы, столбец В выделен цветом, его и нужно подвергнуть анализу. Автор — Gremina
Дата добавления — 01.04.2015 в 09:25