Как в excel суммировать уникальные значения

Подсчет количества уникальных значений

Постановка задачи

Есть диапазон с данными, в котором некоторые значения повторяются больше одного раза:

count-unique1.png

Задача — подсчитать количество уникальных (неповторяющихся) значений в диапазоне. В приведенном выше примере, как легко заметить, на самом деле упоминаются всего четыре варианта.

Рассмотрим несколько способов ее решения.

Способ 1. Если нет пустых ячеек

Если вы уверены, что в исходном диапазоне данных нет пустых ячеек, то можно использовать короткую и элегантную формулу массива:

count-unique2.png

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

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

count-unique4.png

Потом вычисляются дроби 1/Число вхождений для каждого элемента и все они суммируются, что и даст нам количество уникальных элементов:

count-unique5.png

Способ 2. Если есть пустые ячейки

Если в диапазоне встречаются пустые ячейки, то придется немного усовершенствовать формулу, добавив проверку на пустые ячейки (иначе получим ошибку деления на 0 в дроби):

count-unique3.png

Вот и все дела.

Ссылки по теме

  • Как извлечь из диапазона уникальные элементы и удалить дубликаты
  • Как подсветить дубликаты в списке цветом
  • Как сравнить два диапазона на наличие в них дубликатов
  • Извлечение уникальных записей из таблицы по заданному столбцу с помощью надстройки PLEX

Как сложить и удалить дубли в Excel.

​Смотрите также​​ Step -1​Name_Wb_I = Workbooks.Item(Int(InputBox(s,​​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​ понял.​ я бы применил​Option Explicit​ $F3 , а​: А сводная, промежду​ так, чтобы количество​5​ помощью функции​
​Формулы​. Используйте диапазон​ приводим ссылку на​ сводную таблицу, читайте​
​ на другом листе,​
​Рассмотрим,​If Arr_I(0, i)​ «Выбрать номер книги»))).Name​​Next i​​Я решил свою​ штатное средство «удалить​​Function Ran(i As​
​ ведь их необходимо​ прочим, у ТС​ просуммировалось.​1 и т.д.​ЧАСТОТА​в группе​ уникальных значений, которые​ оригинал (на английском​ в статье «Сводные​ то в диалоговом​как сложить и удалить​ = «1» Then​Workbooks.Item(Name_Wb_I).Activate​
​MisterYu​ задач своим путем,​ дубликаты» и потом​ Integer, j As​ сначала туда вывести(((​ уже есть -​Например, в таблице​мне нужна сумма​можно, например, подсчитать​Зависимости формул​ были скопированы в​ языке) .​​ таблицы Excel».​
​ окне консолидации в​ дубли в Excel​Rows(i).Delete​Range(Cells(1, 1), Cells(1,​
​: Полный код если​ которым мне понятнее​ подсчет суммы для​ Integer) As String​Михаил С.​ на Лист 2​ 3 раза встречается​ по Ане, Мане,​ количество результатов тестирования,​
​нажмите кнопку​ качестве аргумента, за​Предположим, что требуется определить​Но мы сделаем​ строке «создавать связи​
​. Как выделить дубли​End If​
​ 1)).Select​ кому нужно​ и скорость работы​
​ каждого из источника​If Range(Cells(i, j),​: Сводная здесь лучше​ …​ товар Y000001 (1​
​ Тане и т.д.​ попадающих в определенные​
Сложить и удалить дубли в Excel.​Показывать формулы​ исключением заголовок столбца.​ количество уникальных значений​ проще и быстрее.​
​ с исходными данными»​ в Excel, читайте​Sh = Sh​Col_I = Cells(Rows.Count,​Option Explicit​ меня устраивает.​and_evg​ Cells(i, j)).Text =​ всего справится.​Юрий М​ шт., 2 шт.​Длина столбца огромная,​ интервалы. Поскольку данная​.​ Например если диапазон​ в диапазоне, содержащем​ Выделяем таблицу, нажимаем​​ поставили галочку. Теперь,​ в статье «Как​ + 1​ 2).End(xlUp).Row​Dim Col As​Если кому интересно,​: Или воспользоваться сводной​
​ «» Then​
​Serge 007, я​: Я и не​ и 3 шт.).​
​ повторяющиеся значения вразнобой​ функция возвращает массив,​1​ уникальных значений B2:B45,​ повторяющиеся значения. Например,​ сочетание клавиш Ctrl​ если в столбце​ выделить повторяющиеся значения​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​
​Nomer_Str_I = Int(InputBox(«Введите​ Integer​ то напишу как​ таблицей​Ran = 0​ правильно понял? :)​ посмотрел )) Вот​ Нужно сделать так,​
​ и разные по​ ее необходимо вводить​2​
​ введите​ если столбец содержит:​ + T (английская​
​ В изменятся цифры,​ в Excel» тут.​Next i​ номер строки по​
​Dim s As​ решил.​MisterYu​Else​Юрий М​ файл с макросом​ чтобы дубли удалились​ количеству (может быть​ как формулу массива.​​3​=ROWS(B2:B45)​числа 5, 6, 7​
​ на любой раскладке).​ то и в​ Как удалить повторяющиеся​Application.Calculation = xlCalculationAutomatic​ которому будет идти​
​ String​1 этап​: Прилагаю.​Ran = Range(Cells(i,​: Пока Prist добирается​
​ и диаграммой.​ и осталась только​ две Ани и​
​Функция​
​4​.​ и 6, будут​ Получилась такая сводная​ этой таблице данные​ значения, смотрите в​Application.ScreenUpdating = True​ сверка», «Окно ввода​
​Dim wb As​Загоняем данную таблицу​Упс файл 1,1​ j), Cells(i, j)).Value​ домой.​Arkadius​ 1 строка с​ пять Саш…)​ПОИСКПОЗ​5​
​К началу страницы​ найдены три уникальных​

​ таблица с фильтрами.​ пересчитаются автоматически. Проверяем​ статье «Как удалить​Application.EnableEvents = True​ по реєстру для​

excel-office.ru

Подсчет повторяющихся значений (Дубликатов) в MS EXCEL

​ Workbook​ в массив:​ мб. а тут​End If​ot kaz​

​: спасибо, покурил немного​ товаром Y000001. Но​​на выходе мне​​выполняет поиск указанного​6​Для выполнения этой задачи​ значения — 5, 6​ Внизу столбца В​ – изменим цифру​ дубли в Excel».​​Application.DisplayStatusBar = True​​ книги » +​

​Dim Name_Wb As​For i =​​ ограничение​​End Function​: The_Prist, браво!!!​ разных тем и​ чтобы его количество​

​ в идеале, чтобы​ элемента в диапазоне​7​ используйте комбинацию функций​ и 7;​ установили автосумму.​

​ 12 в ячейке​

​Итак, нам нужно​End Sub​ Name_Wb_I))​ String​ Nomer_Str_I To Col_I​

​Максимальный размер файла​
​Sub Base()​Только коректировка нужна,​ действительно через сводную​ было 6 шт.​ было​ ячеек и возвращает​8​ЕСЛИ​строки «Руслан», «Сергей», «Сергей»,​

excel2.ru

Подсчет количества уникальных значений среди повторяющихся

​Выберем фильтром дубли 1.​​ В2 основной таблицы​ перед удалением дублей,​Sub Макрос6()​Nomer_Col_I = Int(InputBox(«Введите​Public Stop_Pr As​If Stop_Pr Then​ 100 Kb​Dim Name_Wb_I, Name_Wb_J​ а именно с​ таблицу вывел сколько​ (суммой всех строк​Аня 46​ относительную позицию этого​9​,​ «Сергей», будут найдены​ Получилось так.​ на цифру 2.​ их сложить. Рассмотрим​Call Wb_Books​ номер колонки по​

​ Boolean​Exit For​Обрежу таблицу.​ As String​ СУММА ЧИСЕЛ.. то​

  • ​ раз повторяется та​ этого товара).​Маня 32​ элемента в диапазоне.​10​

  • ​СУММ​ два уникальных значения —​Как написать данные одновременно​ Получилось так.​

​ несколько способов.​UserForm1.Show​ которому будет идти​

В этой статье

​Function Ran(i As​End If​

​П.С. Добавил​Dim Col_I, Col_J​

Подсчет количества уникальных значений с помощью фильтра

​ есть в Вашем​​ или иная дата.​​И совсем в​Ксюша 15 и​ Например, если диапазон​A​,​ «Руслан» и «Сергей».​​ в нескольких ячейках,​​Как работать с таблицей​Первый способ.​Call Base​

  1. ​ сверка», «Окно ввода​ Integer, j As​Arr_I(1, i) =​Hugo​

    ​ As Integer​ решении.. лист Result​ Теперь вот вопрос.​

  2. ​ идеале, чтобы оставалась​​ т.д.​​ A1:A3 содержит значения​​B​​ЧАСТОТА​​Существует несколько способов подсчета​​ смотрите в статье​

    ​ консолидации, как объединить​​Самый простой способ​​End Sub​

  3. ​ по реєстру для​​ Integer) As String​ i​​: Покажите рабочий код.​

  4. ​Dim Nomer_Str_I, Nomer_Col_I,​​Столбец Часы1 Строка​​ К примеру у​ строка с наименьшей​

    ​т.е. первый столбец​​ 5, 25 и​ Изображение кнопки​Данные​,​ количества уникальных значений​ «Как заполнить ячейки​​ несколько таблиц в​ Изображение кнопки​ – это использовать​

  5. ​MisterYu​​ книги » +​​If Range(Cells(i, j),​​Arr_I(2, i) =​​Может он был​

    ​ Nomer_I_X, Nomer_Str_J, Nomer_Col_J,​ Физика не 1,​ меня 3 раза​ ценой.​ — идентификационный номер,​​ 38, то формула​​Данные​

  6. ​ПОИСКПОЗ​ среди повторяющихся.​ в Excel одновременно».​​ одну консолидацией, читайте​​ функцию​: Кстати название темы​ Name_Wb_I))​ Cells(i, j)).Text =​ Ran(CInt(i), CInt(Nomer_Col_I))​ в файле, не​ Nomer_J_X, Nomer_J_X1 As​ 5, 8, а​​ повторилось 07.02.13, 4​​На примере того​

​ второй столбец сумма​

Подсчет количества уникальных значений с помощью функций

​=ПОИСКПОЗ(25,A1:A3,0)​986​​и​​Подсчет количества уникальных значений​​Произведем подсчет всех повторяющихся​​ в статье «Как​​«Консолидация» в Excel​​ не соответствует задаче.​​Nomer_I_X = Int(InputBox(«Введите​​ «» Then​​Arr_I(3, i) =​​ знаю — у​

  • ​ Integer​ нужна СУММА этих​ раза 08.02.13 и​​ же товара Y000001.​​ повторяющихся значений.​

  • ​возвращает значение 2,​​Руслан​​ДЛСТР​

  • ​ с помощью фильтра​ значений в списке,​​ объединить таблицы в​​. У нас такая​​Суть задачи такова:​​ номер колонки начала​Ran = 0​ CDbl(Ran(CInt(i), CInt(Nomer_I_X)))​ меня админы код​Dim i, j​ чисел то есть​ другие даты разное​ У него разные​jakim​ поскольку элемент 25​

  • ​Дмитрий​.​Подсчет количества уникальных значений​​ содержащем повторы. Диапазон​​ Excel».​ таблица​ поиск в столбце​​ записи данных», «Окно​​Else​Arr_I(4, i) =​ режут. Но тот,​

  • ​ As Integer​ 14!​​ кол-во раз. Как​​ цены 10 грн,​: Консолидацией, сводной таблицей.​

Пример

​ является вторым в​563​Назначьте значение 1 каждому​ с помощью функций​

​ может содержать текстовые​

  1. ​Второй способ.​.​

  2. ​ одинаковых значений, при​ ввода по реєстру»))​

    ​Ran = Range(Cells(i,​​ Ran(CInt(i), CInt(Nomer_Col_I) +​ что в теме​

    Выделение примера в справке

    ​Dim Num, S1,​

  3. ​ot kaz​

  4. ​ это свести в​ 11 грн и​KuklP​

  5. ​ диапазоне.​67​ из истинных условий​С помощью диалогового окна​ значения и числа.​Сложить все дубли​​Нам нужно сложить все​​ нахождении которых удалить​​Application.ScreenUpdating = False​​ j), Cells(i, j)).Value​​ 2)​​ — не работает.​

​ S2 As String​

​: Да! То что​

​ график?​

​ 12 грн. Чтобы​

​: Как раз она-то​

​Функция​

​789​

​ с помощью функции​

​Расширенный фильтр​

​Если исходный список содержит:​

​ с помощью формул.​

​ числа в столбце​

​ одинаковые строки при​

​Application.Calculation = xlCalculationManual​

​End If​

​Sh = Sh​

​И вообще зачем​

​Dim Arr_I(3, 17000)​

​ нужно, буду тестить​

​Z​

​ оставалась минимальная цена​

​ лучше всего и​

​ДЛСТР​

​235​

​ЕСЛИ​

​можно извлечь уникальные​

​ {​

​ Таблица та же.​

​ В по каждому​

​ этом просуммировать значение​

​Application.EnableEvents = False​

​End Function​

​ + 1​

​ в файле 1000​

​ As String​ завтра отпишусь ;)​: См.​ 10 грн. Но​ подходит. Или объясните​

​возвращает число символов​

​Руслан​.​ значения из столбца​11212​Принцип такой. Создаем​ дублю из столбца​

​ соседнего столбца.​

​Application.DisplayStatusBar = False​Private Sub Wb_Books()​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​ строк? Достаточно и​Dim Check As​Serge​

​ot kaz​​ это уже совсем​

  • ​ почему.​ в текстовой строке.​Дмитрий​Вычислите сумму, используя функцию​ данных и вставить​}. Тогда количество значений,​ дополнительный столбец, в​

  • ​ А – отдельно​Пример​Workbooks.Item(Name_Wb_I).Activate​Col = 0​Next i​​ десяти.​​ Boolean​​: Естественно:-)​​: Господа,помогите решить проблему.​​ в идеале -​​tamriko11​

Описание функций

  • ​Функция​​689​​СУММ​ их в новое​ которые повторяются будет​ ячейках которого будем​ все ячейки с​​11 10,0​​Sh_Ob = Col_I​s = «»​2 этап​А так да,​Dim SumAs Double​ot kaz​Имею таблицу в​

  • ​ если это сильно​​: сводная таблица не​​СУММ​789​.​ местоположение. С помощью​ равно 5, т.е.​ писать название дубля,​ цифрой 1, отдельно​11 15,0​ — (Nomer_Col_I -​​For Each wb​​Ищу одинаковые значение​ сводная, или удалить​Application.ScreenUpdating = False​: 2The_Prist. Donate на​

  • ​ три столбца (№)​​ сложно, то не​​ подходит, потому что​вычисляет сумму всех​

  • ​Дмитрий​​Подсчитайте количество уникальных значений​​ функции​ {1, 1, 2,​ который нужно сложить.​ все ячейки с​22 20,0​ 1)​ In Workbooks​ в массиве по​ на копии дубликаты​​Application.Calculation = xlCalculationManual​​ ЯД.​ (Вид) (Часы)​ обязательно.​ сумму «итого» по​

  • ​ чисел, указанных в​​143​​ с помощью функции​ЧСТРОК​ 1, 2} (значения​ Мы будем писать​ цифрой 2, т.д.​11 5,0​Sh = 0​

​Col = Col​

support.office.com

Суммирование повторяющихся значений

​ Arr_I(2, i).​​ и просуммировать формулой.​Application.EnableEvents = False​По делу..​1. Как решить​Чего-то подобного на​
​ идентификационному номеру мне​
​ качестве аргументов. Каждый​
​56​
​ЧАСТОТА​
​можно подсчитать количество​
​ в исходном массиве​
​ дубли в ячейках​
​ Мы не знаем,​
​22 5,0​
​For i =​
​ + 1​
​После нахождению суммирую​
​Или как вариант:​
​Application.DisplayStatusBar = False​
​Все в принципе​
​ задачу суммирования значений​
​ форуме не нашёл,​
​ надо подставить в​
​ аргумент может быть​
​237​
​. Функция​
​ элементов в новом​
​ выделены​
​ С2, С3, С4,​
​ сколько и какие​
​Результат​
​ Nomer_Str_I To Col_I​If wb.Name =​ значение соответственно Arr_I(3,​
​Sub tt()​Check = False​ работает замечательно. Вот​ (Часы) по одинаковым​ поэтому обращаюсь к​ другую таблицу с​
​ диапазоном, ссылкой на​67​ЧАСТОТА​
​ диапазоне.​
​жирным​
​ С5.​ у нас дубли​
​11 30,0​If Stop_Pr Then​ «» Then​ i) и записываю​

​Dim a, i&,​​Sum = 0​

​ только заполнил 100​​ значениям (Вид)?​ Вам.​ помощью ВРП​ ячейку, массивом, константой,​

​235​​пропускает текстовые и​Выделите диапазон ячеек или​).​А в следующем​ в большой таблице.​22 25,0​Exit For​
​wb.Close True​ признак повторения (​ ii&, s$​Stop_Pr = False​

​ строк значениями из​​2. Можно ли​buchlotnik​
​а как из​
​ формулой или результатом​Формула​

​ нулевые значения. Для​​ убедитесь в том,​Если исходный список значений​ столбце напишем формулу,​

​На новом листе​​sboy​End If​

​Else​​ у меня «1»)​

​With [c1].CurrentRegion​​Nomer_Col_I=3​ другой таблицы(копировать-вставить-специальная вставка-значения)​ дополнительно при суммировании​: сводная устроит?​
​ сводной таблицы потом​ выполнения другой функции.​Описание (результат)​

​ первого вхождения заданного​​ что активная ячейка​ находится в диапазоне​ которая будет искать​ делаем активной ячейку.​: Добрый день.​Arr_I(1, i) =​:)

planetaexcel.ru

Удаление дубликатов строк с суммированием значений (Формулы/Formulas)

​Name_Wb = wb.Name​​ в массив Arr_I(0,​a = .Value:​For i =​
​ в итоге при​ в столбце (№)​frion​ воспользоваться ВРП я​ Например, функция​=СУММ(ЕСЛИ(ЧАСТОТА(A2:A10,A2:A10)>0,1))​ значения эта функция​ находится в таблице.​
​А7:А16 ​ дублирующие данные в​ Мы, в нашем​Вам конечно с​
​ i​s = s​ j) = «1»​ .Clear​ Nomer_Str_I To Col_I​ нажатии на «создать​ вывести номера строк​: Спасибо большое! Результат​ не знаю​СУММ(A1:A5)​Подсчет количества уникальных числовых​ возвращает число, равное​Убедитесь в том, что​(см. файл примера), то​
​ первом столбце и​ примере, сделаем активной​ этим работать, но​Arr_I(2, i) =​
​ + Name_Wb +​Код​End With​If Stop_Pr Then​ отчет» процесс обсчета​ которые сумировались.​ мне подходит. Всё​Lyco​вычисляет сумму всех​ значений в диапазоне​ общему количеству его​ диапазон ячеек содержит​ число повторяющихся значений​
​ складывать цифры по​ ячейку Е2 на​ на мой взгляд​ Ran(CInt(i), CInt(Nomer_Col_I))​

​ » =» +​​For i =​

​With GetObject(«New:{EE09B103-97E0-11CF-978F-00A02463E06F}»)​​Exit For​ занимает примерно 2​Пример прикреплен.​ просто, а такая​

​: 1. Данные -​​ чисел в ячейках​

​ A2:A10 без учета​​ вхождений. Для каждого​ заголовок столбца.​

excelworld.ru

сумма повторяющихся значений

​ можно вычислить с​​ дублям из второго​ этом же листе.​ очень не оптимально​
​Arr_I(3, i) =​ Str(Col) + vbCrLf​ Nomer_Str_I To Col_I​For i =​End If​ мин.​В какую сторону​ большая экономия времени!​ Удалить дубликаты.​ от A1 до​ пустых ячеек и​ последующего вхождения того​На вкладке​ помощью формулы =СУММПРОИЗВ(—(СЧЁТЕСЛИ(A7:A16;A7:A16)>1))​ столбца.​ На закладке «Данные»​Вот как я​ CDbl(Ran(CInt(i), CInt(Nomer_I_X)))​End If​For j =​ 1 To UBound(a)​

​For j =​​Это нормально? Или​ хоть копать, подскажите?​;)
​Stics​

​2. СУММЕСЛИ.​​ A5.​ текстовых значений (4)​ же значения функция​Данные​Формула хороша тем, что​

​В ячейке D2​​ в разделе «Работа​ предлагал в сообщении№2,​Arr_I(4, i) =​Next wb​ i + 1​;)

​s = a(i,​​ i + 1​ с форматами у​Заранее спасибо за​: можно и формулами​

​Или я чего-то​​Функция​=СУММ(ЕСЛИ(ЧАСТОТА(ПОИСКПОЗ(B2:B10,B2:B10,0),ПОИСКПОЗ(B2:B10,B2:B10,0))>0,1))​ возвращает ноль.​в группе​ производит подсчет и​ пишем такую формулу.​ с данными» нажимаем​ тоже не оптимизировал,​ Ran(CInt(i), CInt(Nomer_Col_I) +​End Sub​ To Col_I​ 1)​ To Col_I​ меня че не​ помощь.​

​frion​​ не понимаю?​

planetaexcel.ru

Суммирование одинаковых значений в списке?

​ЕСЛИ​​Подсчет количества уникальных текстовых​
​Узнайте номер позиции текстового​Сортировка и фильтр​ текстовых и числовых​
​ =СУММЕСЛИ(A2:A9;C2;B2:B9)​ на кнопку функции​ но на большом​ 2)​
​Sub Toolbar(k As​If Arr_I(2, i)​If .exists(s) Then​If Ran(CInt(i), CInt(Nomer_Col_I))​ так?​
​ot kaz​
​: Спасибо! С формулами​The_Prist​
​возвращает одно значение,​ и числовых значений​

​ значения в диапазоне​​нажмите кнопку​ значений, кроме того,​
​В ячейку D3​ «Консолидация». Выйдет диалоговое​ объеме информации скорость​Sh = Sh​

​ Integer, Full As​ = Arr_I(2, j)​a(.Item(s), 2) =​
​ = Ran(j, CInt(Nomer_Col_I))​Попробуйте. Файл прилагаю.​: The_Prist, спасибо за​ тоже ОЧЕНЬ удобно!​: ВРП — это​
​ если указанное условие​ в диапазоне B2:B10,​ с помощью функции​Дополнительно​

​ она игнорирует пустые​​ пишем такую формулу.​ окно.​

​ ощутите в разы​​ + 1​ Integer)​ And Arr_I(2, i)​ a(.Item(s), 2) +​ Then​Юрий М​
​ скорую помощь!​Arkadius​ что-то новое. Наверное,​ дает в результате​ который не должен​ПОИСКПОЗ​.​ ячейки.​ =СУММЕСЛИ(A3:A9;C3;B3:B9)​Заполнили его так:​Sub Макрос2()​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​

​With UserForm1​​ <> «0» Then​ a(i, 2)​
​Sum = Sum​: У меня практически​

​Тоже бился с​​: Здравствуйте, уважаемые знатоки.​ ВПР?​

​ значение ИСТИНА, и​​ содержать пустые ячейки​
​. Возвращенное значение затем​Появится диалоговое окно​ ​По такому принципу​В строке «Функция»​
​Application.ScreenUpdating = False​Next i​.Frame1.Caption = «Процесс​Sum = Sum​Else​ + CDbl(Ran(j, CInt(Nomer_I_X)))​

​ мгновенно.​​ СУММЕСЛИ, но видимо​ Помогите решить несложную​jakim​

​ другое, если условие​​ (7)​

​ используется в качестве​​Расширенный фильтр​Повторяющиеся значения на рисунке​

​ написать формулы в​
​ выбрали функцию «Сумма».​Application.DisplayAlerts = False​Check = False​ » + Str(k)​ + CDbl(Arr_I(3, j))​ii = ii​Range(Cells(j, 1), Cells(j,​ot kaz​ была ошибка в​ задачку в EXCEL.​
​: Высылаю Ваш пример​ дает в результате​=СУММ(ЕСЛИ(ЧАСТОТА(ЕСЛИ(ДЛСТР(A2:A10)>0,ПОИСКПОЗ(A2:A10,A2:A10,0),»»),ЕСЛИ(ДЛСТР(A2:A10)>0,ПОИСКПОЗ(A2:A10,A2:A10,0),»»))>0,1))​ аргумента функции​
​.​

​ выделены с помощью​​ других ячейках столбца​ Можно выбрать другие​

​’t = Timer​​Sum = 0​ + » /»​
​Arr_I(0, j) =​ + 1: .Item(s)​

​ 10)).Delete Shift:=xlUp​: Действительно была открыта​ формуле.​Есть столбец с​ с применение консолидации.​ значение ЛОЖЬ.​Подсчет количества уникальных текстовых​

planetaexcel.ru

Просуммировать ячейки для повторяющихся значений (Макросы/Sub)

​ЧАСТОТА​​Установите переключатель​
​ Условного форматирования (см. статью​ D. Получилось так.​ действия.​
​Set r1 =​Stop_Pr = False​ + Str(Full)​ «1»​ = ii​j = j — 1​ книга.​
​Строк в таблице​ повторяющимися датами. Необходимо​Nic70y​
​К началу страницы​ и числовых значений​
​, что позволяет определить​скопировать результат в другое​ Выделение повторяющихся значений​Эту же формулу можно​

​В строке «Ссылка»​
​ Range(Cells(1, 3), Cells(1,​Sh = 0​.Label2.Caption = Str(100​
​Check = True​a(ii, 1) =​Col_I = Col_I​
​Если она закрыта​
​ может быть до​
​ подсчитать сколько раз​: формулы:​
​tamriko11​
​ в диапазоне A2:A10​
​ количество вхождений текстовых​
​ место​ в MS EXCEL).​
​ написать, вызвав диалоговое​ поставили диапазон нашей​
​ 3).End(xlDown))​For i =​ * Round(k /​End If​
​ a(i, 1): a(ii,​ - 1​
​ то считает моментально!​ 200.​
​ повторяется каждая уникальная​tamriko11​
​: Добрый день, подскажите,​ без учета пустых​
​ значений.​
​.​
​СОВЕТ:​
​ окно функции «СУММЕСЛИ».​
​ таблицы. У нас​
​Set r2 =​
​ Nomer_Str_I To Col_I​
​ Full, 2)) +​
​Next j​
​ 2) = a(i,​Check = True​
​А вот этой​
​Против макроса ничего​
​ дата. Проблема заключается​
​: Jakim спасибо большое,​ пожалуйста, как в​ ячеек и текстовых​
​Найдите пустые ячейки с​В поле​Решение обратной задачи​
​ Она расположена на​ указан фиксированный размер​
​ r1.Offset(0, 1)​For j =​
​ "%"​
​If Check Then​ 2)​
​End If​
​ вариант работает прекрасно​
​ не имею, главное​
​ в том, что​
​ А скажите, пожалуйста,​ Экселе просуммировать повторяющиеся​ значений (6)​
​ помощью функции​
​Копировать​
​ по подсчету неповторяющихся​
​ закладке «Формулы» в​
​ диапазона с абсолютными​
​shn = ActiveSheet.Name​
​ i + 1​
​.Label2.Width = Int(200​
​Range(Cells(i, CInt(Nomer_I_X)), Cells(i,​
​End If​

​Next j​​ и при открытой​
​ наглядно отобразить под​ в ячейке с​ как вы создали​
​ значения. Сводная таблица​Примечания​
​ДЛСТР​введите ссылку на​ значений можно найти​
​ разделе «Библиотека функций»​ ссылками и названием​adr2 = «‘»​ To Col_I​ * (k /​ CInt(Nomer_I_X))).Value = CDbl(Arr_I(3,​

​Next​​If Check Then​ книге! А чем​

​ какими номерами строки​​ датой есть еще​
​ этот файл.​ не подходит.​    ​
​. Пустые ячейки имеют​ ячейку.​
​ здесь:  Подсчет неповторяющихся​
​ нажимаем функцию «Математические»,​

​ столбцов. Можно написать​​ & shn &​
​If Arr_I(2, i)​ Full))​ i)) + Sum​End With​Range(Cells(i, Nomer_I_X), Cells(i,​ он хуже первого?​ суммировались. Поможите?​
​ и время. Время​выделяете таблицу -​пример​Формулы в этом примере​
​ нулевую длину.​Кроме того нажмите кнопку​ значений. Вообще, если​ выбираем «СУММЕСЛИ». Заполним​
​ диапазон с относительными​
​ "'!" & r2.Address(ReferenceStyle:=xlR1C1)​
​ = Arr_I(2, j)​End With​
​Check = False​
​[c1].Resize(ii, 2) =​ Nomer_I_X)).Value = CDbl(Ran(CInt(i),​
​ Проблемы какие могут​
​p.s.Действительно считаю, что​
​ меня не интересует,​ консолидация - а​
​Столбец А​ должны быть введены​
​Чтобы этот пример проще​
​Свернуть диалоговое окно​ от общего количества​ диалоговое окно так.​
​ ссылками.​
​Sheets.Add.Activate​ And Arr_I(2, i)​DoEvents​
​Sum = 0​ a​ CInt(Nomer_I_X))) + Sum​ быть?​
​ в данном случае​
​ нужно подсчитать только​
​ дальше что?​
​Аня​ как формулы массива.​
​ было понять, скопируйте​

​временно скрыть диалоговое​​ значений отнять число​

​В строке «Диапазон» указываем​​Подробнее о видах​With Range(«C1»).Resize(r1.Count, 1)​ <> «0» Then​End Sub​End If​End Sub​Check = False​MisterYu​ СПАСИБО мало будет​
​ количество повторений каждой​tamriko11​

​Маня​​ Выделите все ячейки,​ его на пустой​
​ окно, выберите ячейку​ повторяющихся, то получим​ диапазон столбца А​ ссылок читайте в​
​.Value = r1.Value​Sum = Sum​Sub Base()​Sh = Sh​MisterYu​
​Sum = 0​: Доброго времени суток.​ )))​
​ из дат. В​
​: — спасибо большое,​Таня​

​ содержащие формулу, нажмите​ лист.​
​ на листе и​
​ количество неповторяющихся значений.​
​ с дублями.​
​ статье «Относительные и​.RemoveDuplicates Columns:=1, Header:=xlNo​
​ + CDbl(Arr_I(3, j))​Dim Name_Wb_I, Name_Wb_J​
​ + 1​: Как бы вот.​
​End If​Есть таблица размерностью​Serge​
​ идеале получить еще​ я такое конечно​
​Маня​
​ клавишу F2, а​

​Копирование примера​
​ затем нажмите кнопку​Примечание:​В строке «Критерий»​
​ абсолютные ссылки в​End With​Arr_I(0, j) =​ As String​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​Hugo​Call Toolbar(CInt(i), CInt(Col_I))​
​ 15000 строк и​
​: Ну, тогда не​ и диаграмму которая​
​ бы никогда не​Аня​ затем — клавиши CTRL+SHIFT+ВВОД.​
​Создайте пустую книгу или​Развернуть диалоговое окно​Мы стараемся как​ указываем ячейку столбца​
​ Excel» здесь.​With Range(Cells(1, 3),​
​ «1»​Dim Col_I, Col_J​
​Next i​
​: Ну я ведь​
​Next i​
​ 6 колонок.​
​ лезу :-)​ по одной оси​ составила, но, когда​
​Ксюша​
​Чтобы просмотреть процесс вычисления​
​ лист.​
​.​ можно оперативнее обеспечивать​
​ С, в которой​
​Поставили галочки у​
​ Cells(1, 3).End(xlDown)).Offset(0, 1)​
​Check = True​ As Integer​3 этап​ писал — такое​Application.Calculation = xlCalculationAutomatic​
​Суть макроса в​
​ot kaz​ будет показывать дату​ уже сделано, формулы​
​Аня​ функции по шагам,​
​Выделите пример в разделе​
​Установите флажок​
​ вас актуальными справочными​ будем писать название​
​ слов:​
​adr1 = .Offset(0,​

​End If​​Dim Nomer_Str_I, Nomer_Col_I,​Прохожу обратным циклом​

​ "вот" мне без​
​Application.ScreenUpdating = True​ том что бы​
​: Во вложении полная​ а по другой​
​ понятны​Маня​
​ выделите ячейку с​ справки.​
​Только уникальные записи​ материалами на вашем​
​ дубля.​«подписи верхней строки»​ -1).Address(ReferenceStyle:=xlR1C1)​
​Next j​ Nomer_I_X, Nomer_Str_J, Nomer_Col_J,​ и удаляю строки​
​ толку... Ну да​
​Application.EnableEvents = True​
​ по 3 столбцу​ структура таблицы, сумируются​
​ число повторений этой​
​frion​
​Саша​
​ формулой, а затем​
​Примечание:​
​и нажмите кнопку​ языке. Эта страница​
​В строке «Диапазон​ – это название​
​.FormulaR1C1 = "=SUMIF("​If Check Then​
​ Nomer_J_X, Nomer_J_X1 As​
​ соответствующие признаку в​
​ ладно, выше добавил​
​Application.DisplayStatusBar = True​ искать повторяющиеся значение,​ значения из столбцов​ даты в указанном​
​: Здравствуйте уважаемые знатоки.​
​Паша​
​ на вкладке​
​ Не выделяйте заголовки строк​ОК​ переведена автоматически, поэтому​
​ суммирования» указываем диапазон​
​ столбцов;​ & adr1 &​Range(Cells(i, CInt(Nomer_I_X)), Cells(i,​ Integer​
​ массиве Arr_I(0, j)​ макрос. Если нужно​End Sub​ при найденном просуммировать​
​ Часы1 и Часы2.​ диапазоне. Пример прикладываю​ Столкнулся с такой​
​Глаша​
​Формулы​
​ или столбцов.​
​.​
​ ее текст может​ столбца В, числа​
​«значения левого столбца»​ ",RC[-1]," & adr2​
​ CInt(Nomer_I_X))).Value = CDbl(Arr_I(3,​Dim i, j​ = "1"​ сохранить формат -​
​sboy​ значение 4 столбца​
​ Таблица неизменна только​Z​
​ ситуацией:​Паша​
​в группе​Выделение примера в справке​
​Уникальные значения из выделенного​ содержать неточности и​
​ из ячеек которого​ - это значит,​
​ & ")"​ i)) + Sum​
​ As Integer​
​Код​ можно добавить апостроф​
​: Добрый день.​ для найденных.​
​ таких строк 200.​: Сводная диаграмма с​Есть таблица с​Саша​Зависимости формул​Нажмите клавиши CTRL+C.​ диапазона будут скопированы​
​ грамматические ошибки. Для​ нужно сложить.​ что искать дубли​.Value = .Value​Check = False​Dim Num, S1,​For i =​
​ в строке​Думаю, что нужно​После удалить повторяющиеся​И еще, я​
​ группировкой по ДНЯМ...​
​ перечнем товаров. У​
​Аня​
​нажмите кнопку​
​Выделите на листе ячейку​
​ в новое место,​ нас важно, чтобы​В строке формул​
​ в левом первом​
​End With​Sum = 0​
​ S2 As String​
​ Col_I To Nomer_Str_I​
​a(ii, 1) = "'"​
​ переименовать тему (в​ строки и поставить​
​ как то сразу​см. -​
​ каждого товара есть​Столбец В​
​Вычисление формулы​ A1 и нажмите​ начиная с ячейки,​
​ эта статья была​ сразу видна получившаяся​
​ столбце.​
​'Sheets(shn).Delete​
​End If​
​Dim Arr_I(4, 17000)​
​ Step -1​
​ & a(i, 1)​
​ суть макроса)​ общую сумму.​
​ недопонял, в Вашем​Юрий М​ своя цена и​
​1​.​ клавиши CTRL+V.​ указанной в поле​
​ вам полезна. Просим​ формула.​
​Нажимаем «ОК». Поучилось​'ActiveSheet.Name = shn​
​Sh = Sh​
​ As String​
​If Arr_I(0, i)​
​MisterYu​
​и приложите файл-пример​Данный код не​ решении в итоговой​
​: Получаем к-во по​
​ количество. Но в​
​4​
​Функция​Чтобы переключиться между просмотром​
​Копировать​
​ вас уделить пару​
​Третий способ.​
​ так.​Application.ScreenUpdating = True​ + 1​
​Dim Check As​ = "1" Then​
​: Спасибо Вам за​
​ с данными.​
​ оптимизирован.​ таблице в столбцеF​
​ датам, а уже​
​ табличке есть товары,​
​2​
​ЧАСТОТА​
​ результатов и просмотром​
​.​
​ секунд и сообщить,​
​Создать таблицу с​
​Если таблицу консолидации делаем​
​Application.DisplayAlerts = True​
​Call Toolbar(CInt(Sh), CInt(Sh_Ob))​
​ Boolean​

​Rows(i).Delete​​ помощь.​Чтобы ускорить код,​
​Прошу Вас мне​ значения ведь уже​ по этим данным​ которые дублируются. (пример​4​вычисляет частоту появления​ формул, возвращающих эти​
​В пустую ячейку под​
​ помогла ли она​
​ фильтром. Внизу столбца​
​ на другом листе,​
​’MsgBox Format(Timer -​
​Next i​
​Dim Sum, Sum1​
​End If​
​Я не настолько​

​ нужно написать новый​​ подсказать на мои​
​ стоят и в​ построить диаграмму не​ таблички я прикрепил).​6​
​ значений в диапазоне​ результаты, нажмите клавиши​ последней ячейки в​ вам, с помощью​ В установить автосумму.​ то получится такая​
​ t, "0.00000") &​
​Sh = 0​
​ As Double​
​Sh = Sh​
​ силен в программированию.​ =)​ ошибки по данному​
​ формуле Вы на​ проблема.​
​Нужно удалить дубли​
​3​ и возвращает вертикальный​ CTRL+` (знак ударения)​
​ диапазоне введите функцию​
​ кнопок внизу страницы.​
​ Выбирать фильтром нужные​
​ таблица.​
​ "sec"​
​For i =​Dim Sh, Sh_Ob​
​ + 1​ Ваш код частично​
​Судя по описанию,​ коду.​ них ссылаетесь напр.​Z​
​ из таблицы, но​
​2​
​ массив чисел. С​
​ или на вкладке​
​СТРОК​
​ Для удобства также​
​ дубли. Как сделать​Когда мы делали консолидацию​End Sub​
​ Col_I To Nomer_Str_I​

excelworld.ru

​ As Integer​


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

Разовьем идеи, изложенные в статье

Отбор уникальных значений (убираем повторы)

.

Пусть исходная таблица содержит 2 столбца: текстовый –

Список регионов

и числовой —

Объем продаж

. Столбец

Список регионов

содержит повторяющиеся значения (см.

файл примера

). Уникальные значения выделены цветом с помощью

Условного форматирования

.

Задача

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

уникальные

названия регионов (т.е. без повторов), а соответствующие продажи будут просуммированы.

Решение

Создадим

Динамические диапазоны

:

Регионы

(названия регионов из столбца

А

) и

Продажи

(объемы продаж из столбца

B

).

Если в исходный список будет добавлено новое значение, то оно будет автоматически включено в

Динамический диапазон

и нижеследующие формулы не придется модифицировать.

Для создания списка уникальных значений введем в ячейку

D2

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

:

=ЕСЛИОШИБКА(ИНДЕКС(Регионы; ПОИСКПОЗ(0;СЧЁТЕСЛИ($D$1:D1;Регионы);0));»»)

Не забудьте при вводе вышеуказанной формулы нажать

CTRL+SHIFT+ENTER

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

Для подсчета суммарных продаж в столбце

E

используем мощную функцию

СУММПРОИЗВ()

:

=СУММПРОИЗВ((Регионы=D2)*Продажи)

Отображение нулей в строках, в которых нет регионов, уберем

пользовательским форматом

# ##0;-# ##0; (см. статью

Скрытие значений равных 0

).

Тестируем

1. Введите в ячейку

А11

новый регион —

Китай

2. Введите объем продаж —

100

3. Введите в

А12



Китай

4. Введите объем продаж —

500

5. В соседней таблице справа в ячейке

D7

будет выведено название региона

Китай

с суммарным объемом продаж

600


СОВЕТ:

Другим подходом к решению этой задачи является использование

Сводных таблиц

(см.

файл примера

).

Skip to content

Подсчет уникальных значений в Excel

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

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

И вот о чем мы сейчас поговорим:

  • Как посчитать уникальные значения в столбце.
  • Считаем уникальные текстовые значения.
  • Подсчет уникальных чисел.
  • Как посчитать уникальные с учётом регистра.
  • Формулы для подсчета различных значений.
  • Как не учитывать пустые ячейки?
  • Сколько встречается различных чисел?
  • Считаем различные текстовые значения.
  • Как сосчитать различные текстовые значения с учетом условий?
  • Считаем количество различных чисел с ограничениями.
  • Как учесть регистр при подсчёте?
  • Как посчитать уникальные строки?
  • Используем сводную таблицу.

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

  • Уникальные значения – те, которые появляются в списке только один раз.
  • Различные – это все, которые имеются в списке без учета повторов, то есть уникальные плюс первое вхождение повторяющихся.

Следующий рисунок иллюстрирует эту разницу:

А теперь давайте посмотрим, как можно их посчитать с помощью формул и функций сводной таблицы.

Далее вы найдете несколько примеров для подсчета уникальных данных разных типов.

Считаем уникальные значения в столбце.

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

=СУММ(ЕСЛИ(СЧЁТЕСЛИ(диапазон ; диапазон ) = 1,1,0))

Примечание. Это формула массива, поэтому обязательно нажмите Ctrl + Shift + Enter, чтобы корректно ввести её. Как только вы это сделаете, Excel автоматически заключит всё выражение в {фигурные скобки}, как показано на скриншоте ниже. Ни в коем случае нельзя вводить фигурные скобки вручную, это не сработает.

В этом примере мы считаем уникальные имена в диапазоне A2: A10, поэтому наше выражение выглядит так:

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

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

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

Как работает формула подсчета уникальных значений?

Как видите, здесь используются 3 разные функции – СУММ, ЕСЛИ и СЧЁТЕСЛИ. Посмотрим, что делает каждая из них:

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

В этом примере СЧЁТЕСЛИ(A2:A10;A2:A10)возвращает массив {3:2:2:1:1:2:3:2:3}.

  • Функция ЕСЛИ оценивает каждый элемент в этом массиве, сохраняет все единицы (то есть, уникальные) и заменяет все остальные цифры нулями.

Итак, функция ЕСЛИ(СЧЁТЕСЛИ(A2:A10;A2:A10)=1;1;0) преобразуется в  ЕСЛИ({3:2:2:1:1:2:3:2:3}) = 1,1,0).

И далее она превращается в массив чисел  {0:0:0:1:1:0:0:0:0}. Здесь 1 означает уникальное значение, а 0 – появляющееся более 1 раза.

  • Наконец, функция СУММ складывает числа в этом итоговом массиве и выводит общее количество уникальных значений. Что нам и нужно.

Подсчет уникальных текстовых значений.

Если ваш список содержит как числа так и текст, и вы хотите посчитать только уникальные текстовые строки, добавьте функцию ЕТЕКСТ() в формулу массива, описанную выше:

{=СУММ(ЕСЛИ(ЕТЕКСТ(A2:A10)*СЧЁТЕСЛИ(A2:A10;A2:A10)=1;1;0))}

Функция ЕТЕКСТ возвращает ИСТИНА, если исследуемое содержимое ячейки является текстом, и ЛОЖЬ в противоположном случае. Поскольку звездочка (*) в формулах массива работает как оператор И, то функция ЕСЛИ возвращает 1, только если рассматриваемое одновременно текстовое и уникальное, в противном случае получаем 0. И после того, как функция СУММ сложит все числа, вы получите количество уникальных текстовых значений в указанном диапазоне.

Не забывайте нажимать Ctrl + Shift + Enter, чтобы правильно ввести формулу массива, и вы получите результат, подобный этому:

Рис3

Как вы можете видеть на скриншоте выше, мы получили общее количество уникальных текстовых значений, исключая пустые ячейки, числа, логические выражения ИСТИНА и ЛОЖЬ, а также ошибки.

Как сосчитать уникальные числовые значения.

Чтобы посчитать уникальные числа в списке данных, используйте формулу массива точно так же, как мы только что делали при подсчете текстовых данных. Отличие заключается в том, что вы используете ЕЧИСЛО вместо ЕТЕКСТ:

{=СУММ(ЕСЛИ(ЕЧИСЛО(A2:A10)*СЧЁТЕСЛИ(A2:A10;A2:A10)=1;1;0))}

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

Уникальные значения с учетом регистра.

Если для вас принципиально различие в заглавных и прописных буквах, то самым простым способом подсчета будет создание вспомогательного столбца со следующей формулой массива для идентификации повторяющихся и уникальных элементов:

{=ЕСЛИ(СУММ((—СОВПАД($A$2:$A$10;A2)))=1;»Уникальный»;»Дубль»)}

А затем используйте простую функцию СЧЁТЕСЛИ для подсчета уникальных значений:

=СЧЁТЕСЛИ(B2:B10; «Уникальный»)

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

Подсчет различных значений.

Используйте следующую универсальное выражение:

{=СУММ(1 / СЧЁТЕСЛИ( диапазон ; диапазон ))}

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

Кроме того, вы можете использовать функцию СУММПРОИЗВ и записать формулу обычным способом:

=СУММПРОИЗВ(1 / СЧЁТЕСЛИ( диапазон ; диапазон ))

Например, чтобы сосчитать различные значения в диапазоне A2: A10, вы можете использовать выражение:

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

или же

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

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

{=СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:B10;A2:B10))}

Этот метод подходит для текста, чисел, дат.

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

Если в вашем диапазоне данных есть пустые ячейки, то можно изменить:

{=СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A10; A2:A10&»»))}

Тогда в расчёт попадёт и будет засчитана и пустая ячейка.

Как это работает?

Как вы уже знаете, мы используем функцию СЧЁТЕСЛИ, чтобы узнать, сколько раз каждый отдельный элемент встречается в указанном диапазоне. В приведенном выше примере, результат работы функции СЧЕТЕСЛИ представляет собой числовой массив:   {3:2:2:1:3:2:1:2:3}.

После этого выполняется ряд операций деления, где единица делится на каждую цифру из этого массива. Это превращает все неуникальные значения в дробные числа, соответствующие количеству повторов. Например, если число или текст появляется в списке 2 раза, в массиве создаются 2 элемента равные 0,5 (1/2 = 0,5). А если появляется 3 раза, в массиве создаются 3 элемента 0,333333. 

В нашем примере результатом вычисления выражения  1/СЧЁТЕСЛИ(A2:A10;A2:A10) является массив {0.333333333333333:0.5:0.5:1:0.333333333333333:0.5:1:0.5:0.333333333333333}.

Пока не слишком понятно? Это потому, что мы еще не применили функцию СУММ / СУММПРОИЗВ. Когда одна из этих функций складывает числа в массиве, сумма всех дробных чисел для каждого отдельного элемента всегда дает 1, независимо от того, сколько раз он появлялся. И поскольку все уникальные элементы отображаются в массиве как единицы (1/1 = 1), окончательный результат представляет собой общее количество всех встречающихся значений.

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

Помните, что все приведенные ниже выражения являются формулами массива и требуют нажатия Ctrl + Shift + Enter.

Подсчет различных значений без учета пустых ячеек

Если столбец, в котором вы хотите совершить подсчет, может содержать пустые ячейки, вам следует в уже знакомую нам формулу массива добавить функцию ЕСЛИ. Она будет проверять ячейки на наличие пустот (основная формула Excel, описанная выше, в этом случае вернет ошибку #ДЕЛ/0):

=СУММ(ЕСЛИ( диапазон <> «»; 1 / СЧЁТЕСЛИ( диапазон ; диапазон ); 0))

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

Используем:

{=СУММ(ЕСЛИ(A2:A10<>»»;1/СЧЁТЕСЛИ(A2:A10; A2:A10); 0))}

Как видите, наш список состоит из трёх имён.

Подсчет различных чисел.

Чтобы посчитать различные числовые значения (числа, даты и время), используйте функцию ЕЧИСЛО:

= СУММ(ЕСЛИ(ЕЧИСЛО( диапазон ); 1 / СЧЁТЕСЛИ( диапазон ; диапазон ); «»))

Считаем, сколько имеется различных чисел в диапазоне A2: A10:

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

Результат вы можете посмотреть ниже.

Это достаточно простое и элегантное решение, но работает оно гораздо медленнее, чем выражения, которые используют функцию ЧАСТОТА для подсчета уникальных значений. Если у вас большие наборы данных, то целесообразно переключиться на формулу, основанную на расчёте частот.

И вот еще один способ подсчета чисел:

=СУММ(—(ЧАСТОТА(диапазон; диапазон)>0))

Применительно к примеру ниже:

=СУММ(—(ЧАСТОТА(A2:A10; A2:A10)>0))

Как видите, здесь игнорируются записи, в которых имеются буквы.

Пошагово разберём, как это работает.

Функция ЧАСТОТА возвращает массив цифр, которые соответствуют интервалам, заданным имеющимися числами. В этом случае мы сравниваем один и тот же набор чисел для массива данных и для массива интервалов.

Результатом является то, что ЧАСТОТА() возвращает массив, который представляет собой счетчик для каждого числового значения в массиве данных.

Это работает, потому что ЧАСТОТА() возвращает ноль для любых чисел, которые ранее уже появились в списке. Ноль возвращается и для текстовых данных. Поэтому полученный массив выглядит следующим образом: 

{3:0:0:2:0:0}

Как видите, обрабатываются только числа. Ячейки A7:A10 игнорируются, потому что там текст. А функция ЧАСТОТА() работает только с числами.

Теперь каждое из этих чисел проверяем на условие «больше нуля».

Получаем:

{ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ}

Теперь превращаем ИСТИНА и ЛОЖЬ в 1 и 0 соответственно. Делаем это при помощи двойного отрицания. Проще говоря, это двойной минус, который не меняет величину числа, но позволяет получить реальные числа, когда это вообще возможно:

{1:0:0:1:0:0}

А теперь функция СУММ складывает всё и получаем результат: 2.

Различные текстовые значения.

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

Как вы можете легко догадаться, мы просто добавим функцию ЕТЕКСТ и проверку условия:

=СУММ(ЕСЛИ(ЕТЕКСТ( диапазон ); 1 / СЧЁТЕСЛИ( диапазон ; диапазон ); «»))

Количество индивидуальных символьных значений посчитаем так:

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

Не забываем, что это формула массива.

Если в вашей таблице нет пустых ячеек и ошибок, то вы можете применить формулу, которая использует несколько функций: ЧАСТОТА, ПОИСКПОЗ, СТРОКА и СУММПРОИЗВ.

В общем виде это выглядит так:

=СУММПРОИЗВ(—(ЧАСТОТА(ПОИСКПОЗ (диапазон; диапазон;0); СТРОКА (диапазон)- СТРОКА (диапазон_первая_ячейка)+1)>0))

Предположим, у вас есть список имен сотрудников вместе с часами работы над проектом, и вы хотите знать, сколько человек в этом участвовали. Глядя на данные, вы можете увидеть, что имена повторяются. А вы хотите пересчитать всех, кто хотя бы раз появился в этом списке.

Применяем формулу массива:

{=СУММПРОИЗВ(— (ЧАСТОТА(ПОИСКПОЗ(A2:A10; A2:A10;0); СТРОКА(A2:A10) -СТРОКА(A2) +1)> 0))}

Она является более сложной, чем аналогичная, которая использует функцию ЧАСТОТА() для подсчета различных чисел. Это потому, что ЧАСТОТА() не работает с текстом. Поэтому ПОИСКПОЗ преобразует имена в номера позиций, которые может обрабатывать ЧАСТОТА().

Если какая-либо из ячеек в диапазоне пустая, вам необходимо использовать более сложную формулу массива, которая включает в себя функцию ЕСЛИ:

{= СУММ(ЕСЛИ(ЧАСТОТА(ЕСЛИ(данные <> «»;ПОИСКПОЗ(данные; данные; 0));СТРОКА(данные) -СТРОКА(данные_первая_ячейка) +1); 1))}

Примечание: поскольку логическая проверка в операторе ЕСЛИ содержит массив, то наше выражение сразу становится формулой массива, которая требует ввода через Ctrl+Shift+Enter. Поэтому же СУММПРОИЗВ была заменена на СУММ.
Применительно к нашему примеру это выглядит так:

{=СУММ(ЕСЛИ(ЧАСТОТА(ЕСЛИ(A2:A10 <> «»;ПОИСКПОЗ(A2:A10; A2:A10; 0));СТРОКА(A2:A10) -СТРОКА(A2) +1); 1))}

Теперь «сломать» этот расчет может только наличие ячеек с ошибками в исследуемом диапазоне.

Различные текстовые значения с условием.

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

Чтобы решить эту проблему, вам может помочь этот вариант:

{=СУММПРОИЗВ((($A$2:$A$18=E2)) / СЧЁТЕСЛИМН($A$2:$A$18;$A$2:$A$18&»»; $B$2:$B$18;$B$2:$B$18&»»))}

Введите это в пустую ячейку, куда вы хотите поместить результат, F2, например. А затем нажмите Shift + Ctrl + Enter вместе, чтобы получить правильный результат.

Поясним: здесь A2:A18 это список покупателей, с учётом которого вы ограничиваете область расчётов, B2: B18 — перечень товаров, в котором вы хотите посчитать уникальные значения, Е2 содержит критерий, на основании которого подсчет ограничивается только конкретным покупателем.

Второй способ.

Для уникальных значений в диапазоне с критериями, вы можете использовать формулу массива, основанную на функции ЧАСТОТА.

{=СУММ(—(ЧАСТОТА(ЕСЛИ(критерий; ПОИСКПОЗ(диапазон; диапазон;0)); СТРОКА(диапазон) -СТРОКА(диапазон_первая_ячейкаl)+1)>0))}

Применительно к нашему примеру:

{=СУММ(—(ЧАСТОТА(ЕСЛИ(A2:A10 = E2; ПОИСКПОЗ(B2:B10; B2:B10;0)); СТРОКА(B2:B10) — СТРОКА(B2)+1) > 0))}

С учетом ограничений ЕСЛИ() функция ПОИСКПОЗ определяет порядковый номер только для строк, которые соответствуют критериям.

Если какая-либо из ячеек в диапазоне критериев пустая, вам необходимо скорректировать расчёт, добавив дополнительно ЕСЛИ для обработки пустых ячеек.  Иначе они будут переданы в функцию ПОИСКПОЗ, которая в ответ сгенерирует сообщение об ошибке.

Вот что получилось после корректировки:

 {=СУММ(— (ЧАСТОТА(ЕСЛИ(B2:B10 <> «»; ЕСЛИ(A2:A10 = E2; ПОИСКПОЗ(B2:B10; B2:B10;0))); СТРОКА(B2:B10) -СТРОКА(B2) +1)> 0))}

То есть все действия и расчёты мы производим, если в столбце B нам встретилась непустая ячейка: ЕСЛИ(B2:B10 <> «»….

Если у вас есть два критерия, вы можете расширить логику формулы путем добавления другого вложенного ЕСЛИ.

Поясним. Определим, сколько наименований товара находилось в первой партии первого покупателя.

Критерии запишем в G2 и G3.

В общем виде это выглядит так:

{=СУММ(—(ЧАСТОТА(ЕСЛИ(критерий1; ЕСЛИ(критерий2; ПОИСКПОЗ (диапазон; диапазон;0))); СТРОКА (диапазон) — СТРОКА (диапазон_первая_позиция) +1)> 0))}

Подставляем сюда реальные данные  и получаем результат:

{=СУММ(—(ЧАСТОТА(ЕСЛИ(A2:A10=G2; ЕСЛИ(C2:C10=G3;ПОИСКПОЗ(B2:B10;B2:B10;0)));СТРОКА(B2:B10)-СТРОКА(B2)+1)>0))}

В первой партии 2 наименования товара, хотя и 3 позиции.

Различные числа с условием.

Если вам нужно пересчитать уникальные (с учётом первого вхождения) числа в диапазоне с учетом каких-то ограничений, можно использовать формулу, основанную на СУММ и ЧАСТОТА, и вместе с этим применять критерии.

{=СУММ(— (ЧАСТОТА(ЕСЛИ(критерий; диапазон); диапазон)> 0))}

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

Вот наша формула массива:

{=СУММ(— (ЧАСТОТА(ЕСЛИ(B2:B10 < 8; A2:A10); A2:A10)> 0))}

Как видите, таких случаев 3, но связаны они с двумя работниками.

Различные значения с учетом регистра.

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

Подход в основном такой же, как и тот, который мы использовали для подсчета уникальных значений с учетом регистра, с одним небольшим изменением:

{=ЕСЛИ(СУММ((—СОВПАД($A$2:$A2;$A2)))=1;»Уникальный»;»»)}

Как вы помните, все формулы массива в Excel требуют нажатия Ctrl + Shift + Enter.

После того, как это выражение будет записано, вы можете посчитать «различные» значения с помощью обычной функции СЧЁТЕСЛИ, например:

=СЧЁТЕСЛИ(B2:B10; «Уникальный»)

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

{=СУММ(ЕСЛИОШИБКА(1/ЕСЛИ($A$2:$A$10<>»»; ЧАСТОТА(ЕСЛИ(СОВПАД($A$2:$A$10; ТРАНСП($A$2:$A$10)); ПОИСКПОЗ(СТРОКА($A$2:$A$10); СТРОКА($A$2:$A$10)); «»); ПОИСКПОЗ(СТРОКА($A$2:$A$10); СТРОКА($A$2:$A$10))); 0); 0))}

Как видите, обе формулы дают одинаковые результаты.

Подсчет уникальных строк в таблице.

Подсчет уникальных / различных строк в Excel сродни пересчёту уникальных и различных значений. С той лишь разницей, что вы используете функцию СЧЁТЕСЛИМН вместо СЧЁТЕСЛИ, что позволяет вам указать сразу несколько столбцов для проверки уникальности.

Например, чтобы подсчитать уникальные строки на основе столбцов A (Имя) и B (Фамилия), используйте один из следующих вариантов:

Для уникальных строк:

{=СУММ(ЕСЛИ(СЧЁТЕСЛИМН(A3:A11;A3:A11; B3:B11;B3:B11)=1;1;0))}

Для различных строк:

{=СУММ(1/СЧЁТЕСЛИМН(A3:A11;A3:A11;B3:B11;B3:B11))}

Естественно, вы не ограничены только двумя столбцами. Функция  СЧЁТЕСЛИМН может обрабатывать до 127 пар диапазон / критерий.

Как можно использовать сводную таблицу.

Вот обычная задача, которую все пользователи Excel должны время от времени выполнять. У вас есть список данных (к примеру, названий товаров), и нужно узнать количество уникальных позиций в этом списке. Как это сделать? Проще, чем вы думаете :)

В версиях Excel выше 2013  есть специальная функция, которая позволяет автоматически пересчитывать различные значения в сводной таблице. На следующем рисунке показано, как выглядит этот счетчик:

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

  1. Выберите данные для включения в сводную таблицу, перейдите на вкладку «Вставка» и нажмите кнопку «Сводная таблица» .
  2. В диалоговом окне «Создание сводной таблицы» выберите, следует ли разместить сводную таблицу на новом или существующем листе, и обязательно установите флажок «Добавить эти данные в модель данных» .

  1. Когда откроется сводная таблица, расположите области строк, столбцов и значений так, как вам нужно. Если у вас нет большого опыта работы со сводными таблицами Excel, могут оказаться полезными следующие подробные рекомендации: Создание сводной таблицы в Excel.
  2. Переместите поле, количество уникальных элементов которого вы хотите вычислить ( поле « Товар» в этом примере), в область « Значения» , щелкните его и выберите «Параметры значения поля…» из раскрывающегося меню.
  3. Откроется диалоговое окно , прокрутите вниз до операции «Число разных элементов» , которая является самым последним пунктом в списке, выберите ее и нажмите OK .

Вы также можете дать собственное имя своему счетчику, если хотите.

Готово! Вновь созданная сводная таблица будет отображать количество различных товаров, как показано на самом первом скриншоте в этом разделе.

Вот как можно подсчитать различные и уникальные значения в столбце и целиком в таблице Excel. 

Благодарю вас за чтение и надеюсь увидеть вас снова. Пожалуйста, не переключайтесь!

Как найти и выделить уникальные значения в столбце В статье описаны наиболее эффективные способы поиска, фильтрации и выделения уникальных значений в Excel. Ранее мы рассмотрели различные способы подсчета уникальных значений в Excel. Но иногда вам может понадобиться только просмотреть уникальные…
Как получить список уникальных значений В статье описано, как получить список уникальных значений в столбце с помощью формулы и как настроить эту формулу для различных наборов данных. Вы также узнаете, как быстро получить отдельный список с…
Как выделить цветом повторяющиеся значения в Excel? В этом руководстве вы узнаете, как отображать дубликаты в Excel. Мы рассмотрим различные методы затенения дублирующих ячеек, целых строк или последовательных повторений с использованием условного форматирования.  Ранее мы исследовали различные…
Как посчитать количество повторяющихся значений в Excel? Зачем считать дубликаты? Мы можем получить ответ на множество интересных вопросов. К примеру, сколько клиентов сделало покупки, сколько менеджеров занималось продажей, сколько раз работали с определённым поставщиком и т.д. Если…
Как убрать повторяющиеся значения в Excel? В этом руководстве объясняется, как удалять повторяющиеся значения в Excel. Вы изучите несколько различных методов поиска и удаления дубликатов, избавитесь от дублирующих строк, обнаружите точные повторы и частичные совпадения. Хотя…

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

Суммирование уникальных значений на основе одного или нескольких критериев с помощью формул массива


Суммирование уникальных значений на основе одного или нескольких критериев с помощью формул массива

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

1. Скопируйте или введите следующую формулу массива в пустую ячейку:

=SUM(IF(FREQUENCY(IF($A$2:$A$12=D2,MATCH($B$2:$B$12,$B$2:$B$12,0)),ROW($B$2:$B$12)-ROW($B$2)+1),$B$2:$B$12))

Внимание: В приведенной выше формуле A2: A12 содержит ли данные столбца значение условия, D2 это условие, по которому вы хотите суммировать значения, B2: B12 — столбец содержит значения, которые вы хотите просуммировать.

2, Затем нажмите Shift + Ctrl + Enter вместе, чтобы получить первый общий результат, а затем выберите эту ячейку формулы и перетащите маркер заполнения вниз к ячейкам, чтобы получить все общие значения для каждого элемента. Смотрите скриншот:

Tips: Если вам нужно просуммировать все уникальные значения на основе двух критериев, примените следующую формулу:

=SUM(IF(FREQUENCY(IF($A$2:$A$12=E2,IF($B$2:$B$12=F2,MATCH($C$2:$C$12,$C$2:$C$12,0))),ROW($C$2:$C$12)-ROW($C$2)+1),$C$2:$C$12))


Больше относительных статей:

  • Суммировать несколько столбцов на основе одного критерия в Excel
  • В Excel вам всегда может потребоваться суммировать несколько столбцов на основе одного критерия. Например, у меня есть ряд данных, как показано на следующем скриншоте. Теперь я хочу получить общие значения KTE за три месяца — январь, февраль и март.
  • Vlookup и сумма совпадений в строках или столбцах в Excel
  • Использование функции vlookup и sum поможет вам быстро найти указанные критерии и одновременно суммировать соответствующие значения. В этой статье мы собираемся показать вам два метода vlookup и суммирования первого или всех совпавших значений в строках или столбцах Excel.
  • Суммарные значения на основе месяца и года в Excel
  • Если у вас есть диапазон данных, столбец A содержит некоторые даты, а столбец B — количество заказов, теперь вам нужно просуммировать числа на основе месяца и года из другого столбца. В этом случае я хочу подсчитать общее количество заказов за январь 2016 года, чтобы получить следующий результат. В этой статье я расскажу о некоторых трюках, которые помогут решить эту задачу в Excel.
  • Сумма значений на основе критериев текста в Excel
  • Вы когда-нибудь пробовали суммировать значения на основе другого столбца текстовых критериев в Excel? Например, у меня есть диапазон данных на листе, как показано на следующем снимке экрана, теперь я хочу сложить все числа в столбце B, соответствующие текстовым значениям в столбце A, которые соответствуют определенному критерию, например суммировать числа, если ячейки в столбце A содержат KTE.
  • Сумма значений на основе выбора раскрывающегося списка в Excel
  • Как показано на скриншоте ниже, у вас есть таблица, содержащая столбец «Категория» и столбец «Сумма», и вы создали раскрывающийся список проверки данных, который содержит все категории. При выборе любой категории из раскрывающегося списка вы хотите просуммировать все соответствующие значения ячеек в столбце B и заполнить результат в указанной ячейке. Например, при выборе категории CC из раскрывающегося списка вам необходимо просуммировать значения в ячейках B5 и B8 и получить общее число 40 + 70 = 110. Как этого добиться? Метод, описанный в этой статье, может вам помочь.

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (9)


Оценок пока нет. Оцените первым!

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