Подсчет количества уникальных значений
Постановка задачи
Есть диапазон с данными, в котором некоторые значения повторяются больше одного раза:
Задача — подсчитать количество уникальных (неповторяющихся) значений в диапазоне. В приведенном выше примере, как легко заметить, на самом деле упоминаются всего четыре варианта.
Рассмотрим несколько способов ее решения.
Способ 1. Если нет пустых ячеек
Если вы уверены, что в исходном диапазоне данных нет пустых ячеек, то можно использовать короткую и элегантную формулу массива:
Не забудьте ввести ее как формулу массива, т.е. нажать после ввода формулы не Enter, а сочетание Ctrl+Shift+Enter.
Технически, эта формула пробегает по всем ячейкам массива и вычисляет для каждого элемента количество его вхождений в диапазон с помощью функции СЧЕТЕСЛИ (COUNTIF). Если представить это в виде дополнительного столбца, то выглядело бы оно так:
Потом вычисляются дроби 1/Число вхождений для каждого элемента и все они суммируются, что и даст нам количество уникальных элементов:
Способ 2. Если есть пустые ячейки
Если в диапазоне встречаются пустые ячейки, то придется немного усовершенствовать формулу, добавив проверку на пустые ячейки (иначе получим ошибку деления на 0 в дроби):
Вот и все дела.
Ссылки по теме
- Как извлечь из диапазона уникальные элементы и удалить дубликаты
- Как подсветить дубликаты в списке цветом
- Как сравнить два диапазона на наличие в них дубликатов
- Извлечение уникальных записей из таблицы по заданному столбцу с помощью надстройки PLEX
Как сложить и удалить дубли в Excel.
Смотрите также Step -1Name_Wb_I = Workbooks.Item(Int(InputBox(s,Call Toolbar(CInt(Sh), CInt(Sh_Ob)) понял. я бы применилOption Explicit $F3 , а: А сводная, промежду так, чтобы количество5 помощью функции
Формулы. Используйте диапазон приводим ссылку на сводную таблицу, читайте
на другом листе,
Рассмотрим,If Arr_I(0, i) «Выбрать номер книги»))).NameNext iЯ решил свою штатное средство «удалитьFunction Ran(i As
ведь их необходимо прочим, у ТС просуммировалось.1 и т.д.ЧАСТОТАв группе уникальных значений, которые оригинал (на английском в статье «Сводные то в диалоговомкак сложить и удалить = «1» ThenWorkbooks.Item(Name_Wb_I).Activate
MisterYu задач своим путем, дубликаты» и потом Integer, j As сначала туда вывести((( уже есть -Например, в таблицемне нужна суммаможно, например, подсчитатьЗависимости формул были скопированы в языке) . таблицы Excel».
окне консолидации в дубли в ExcelRows(i).DeleteRange(Cells(1, 1), Cells(1,
: Полный код если которым мне понятнее подсчет суммы для Integer) As StringМихаил С. на Лист 2 3 раза встречается по Ане, Мане, количество результатов тестирования,
нажмите кнопку качестве аргумента, заПредположим, что требуется определитьНо мы сделаем строке «создавать связи
. Как выделить дублиEnd If
1)).Select кому нужно и скорость работы
каждого из источникаIf Range(Cells(i, j),: Сводная здесь лучше … товар Y000001 (1
Тане и т.д. попадающих в определенные
Показывать формулы исключением заголовок столбца. количество уникальных значений проще и быстрее.
с исходными данными» в Excel, читайтеSh = ShCol_I = Cells(Rows.Count,Option Explicit меня устраивает.and_evg Cells(i, j)).Text = всего справится.Юрий М шт., 2 шт.Длина столбца огромная, интервалы. Поскольку данная. Например если диапазон в диапазоне, содержащем Выделяем таблицу, нажимаем поставили галочку. Теперь, в статье «Как + 1 2).End(xlUp).RowDim 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 решил.MisterYuElseЮрий М файл с макросом чтобы дубли удалились количеству (может быть как формулу массива.3=ROWS(B2:B45)числа 5, 6, 7
на любой раскладке). то и в Как удалить повторяющиесяApplication.Calculation = xlCalculationAutomatic которому будет идти
String1 этап: Прилагаю.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 Ifot kaz
: спасибо, покурил немного товаром Y000001. Нона выходе мневыполняет поиск указанного6Для выполнения этой задачи значения — 5, 6 Внизу столбца В – изменим цифру дубли в Excel».Application.DisplayStatusBar = True книги » +
Dim Name_Wb AsFor 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 AsIf Stop_Pr Then 100 KbDim Name_Wb_I, Name_Wb_J а именно с таблицу вывел сколько (суммой всех строкАня 46 относительную позицию этого9, «Сергей», будут найдены Получилось так. на цифру 2. их сложить. РассмотримCall Wb_Books номер колонки по
BooleanExit ForОбрежу таблицу. As String СУММА ЧИСЕЛ.. то
-
раз повторяется та этого товара).Маня 32 элемента в диапазоне.10
-
СУММ два уникальных значения —Как написать данные одновременно Получилось так.
несколько способов.UserForm1.Show которому будет идти
В этой статье
Function Ran(i AsEnd If
П.С. ДобавилDim Col_I, Col_J
Подсчет количества уникальных значений с помощью фильтра
есть в Вашем или иная дата.И совсем вКсюша 15 и Например, если диапазонA, «Руслан» и «Сергей». в нескольких ячейках,Как работать с таблицейПервый способ.Call Base
-
сверка», «Окно ввода Integer, j AsArr_I(1, i) =Hugo
As Integer решении.. лист Result Теперь вот вопрос.
-
идеале, чтобы оставалась т.д. A1:A3 содержит значенияBЧАСТОТАСуществует несколько способов подсчета смотрите в статье
консолидации, как объединитьСамый простой способEnd Sub
-
по реєстру для Integer) As String i: Покажите рабочий код.
-
Dim Nomer_Str_I, Nomer_Col_I,Столбец Часы1 Строка К примеру у строка с наименьшей
т.е. первый столбец 5, 25 и Данные, количества уникальных значений «Как заполнить ячейки несколько таблиц в – это использовать
-
MisterYu книги » +If Range(Cells(i, j),Arr_I(2, i) =Может он был
Nomer_I_X, Nomer_Str_J, Nomer_Col_J, Физика не 1, меня 3 раза ценой. — идентификационный номер, 38, то формулаДанные
-
ПОИСКПОЗ среди повторяющихся. в 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(«Введите «» ThenArr_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». таблица поиск в столбце записи данных», «ОкноElseArr_I(4, i) = режут. Но тот,
-
As Integer 14! кол-во раз. Как цены 10 грн,: Консолидацией, сводной таблицей.
Пример
является вторым в563Назначьте значение 1 каждому с помощью функций
может содержать текстовые
-
Второй способ..
-
одинаковых значений, при ввода по реєстру»))
Ran = Range(Cells(i, Ran(CInt(i), CInt(Nomer_Col_I) + что в теме
Dim Num, S1,
-
ot kaz
-
это свести в 11 грн иKuklP
-
диапазоне.67 из истинных условийС помощью диалогового окна значения и числа.Сложить все дублиНам нужно сложить все нахождении которых удалитьApplication.ScreenUpdating = False j), Cells(i, j)).Value 2) — не работает.
|
|
ot kaz это уже совсем
-
почему. в текстовой строке.ДмитрийВычислите сумму, используя функцию данных и вставить}. Тогда количество значений, дополнительный столбец, в
-
А – отдельноПримерWorkbooks.Item(Name_Wb_I).ActivateCol = 0Next i десяти. Boolean: Естественно:-): Господа,помогите решить проблему. в идеале -tamriko11
Описание функций
-
Функция689СУММ их в новое которые повторяются будет ячейках которого будем все ячейки с11 10,0Sh_Ob = Col_Is = «»2 этапА так да,Dim SumAs Doubleot 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,0Sh = 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_IIf wb.Name = значение соответственно Arr_I(3,
Sub tt()Check = False работает замечательно. Вот (Часы) по одинаковым поэтому обращаюсь к другую таблицу с
диапазоном, ссылкой на67ЧАСТОТА
диапазоне.
жирным
С5. у нас дубли
11 30,0If Stop_Pr Then «» Then i) и записываю
Dim a, i&,Sum = 0
только заполнил 100 значениям (Вид)? Вам. помощью ВРП ячейку, массивом, константой,
235пропускает текстовые иВыделите диапазон ячеек или).А в следующем в большой таблице.22 25,0Exit For
wb.Close True признак повторения ( ii&, s$Stop_Pr = False
строк значениями из2. Можно лиbuchlotnik
а как из
формулой или результатомФормула
нулевые значения. Для убедитесь в том,Если исходный список значений столбце напишем формулу,
На новом листеsboyEnd If
Else у меня «1»)
With [c1].CurrentRegionNomer_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 дублирующие данные в Мы, в нашемВам конечно с
is = s j) = «1» .Clear Nomer_Str_I To Col_I нажатии на «создать вывести номера строк: Спасибо большое! Результат не знаюСУММ(A1:A5)Подсчет количества уникальных числовых возвращает число, равноеУбедитесь в том, что(см. файл примера), то
первом столбце и примере, сделаем активной этим работать, ноArr_I(2, i) =
+ Name_Wb +КодEnd WithIf 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_IFor i =End If мин.В какую сторону большая экономия времени! Удалить дубликаты. от A1 до пустых ячеек и последующего вхождения тогоНа вкладке помощью формулы =СУММПРОИЗВ(—(СЧЁТЕСЛИ(A7:A16;A7:A16)>1)) столбца. На закладке «Данные»Вот как я CDbl(Ran(CInt(i), CInt(Nomer_I_X)))End IfFor 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 AsIf Arr_I(2, i)If .exists(s) ThenIf 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 = FalseNext i.Frame1.Caption = «ПроцессSum = SumElse + CDbl(Ran(j, CInt(Nomer_I_X)))
мгновенно. СУММЕСЛИ, но видимо Помогите решить несложнуюjakim
другое, если условие (7)
используется в качествеРасширенный фильтрПовторяющиеся значения на рисунке
написать формулы в
выбрали функцию «Сумма».Application.DisplayAlerts = FalseCheck = False » + Str(k) + CDbl(Arr_I(3, j))ii = iiRange(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 = TimerSum = 0 + » /»
Arr_I(0, j) = + 1: .Item(s)
10)).Delete Shift:=xlUp: Действительно была открыта формуле.Есть столбец с с применение консолидации. значение ЛОЖЬ.Подсчет количества уникальных текстовых
planetaexcel.ru
Просуммировать ячейки для повторяющихся значений (Макросы/Sub)
ЧАСТОТАУстановите переключатель
Условного форматирования (см. статью D. Получилось так. действия.
Set r1 =Stop_Pr = False + Str(Full) «1» = iij = j — 1 книга.
Строк в таблице повторяющимися датами. НеобходимоNic70y
К началу страницы и числовых значений
, что позволяет определитьскопировать результат в другое Выделение повторяющихся значенийЭту же формулу можно
В строке «Ссылка»
Range(Cells(1, 3), Cells(1,Sh = 0.Label2.Caption = Str(100
Check = Truea(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,
NextIf Check Then книге! А чем
какими номерами строки датой есть еще
этот файл. не подходит.
. Пустые ячейки имеют ячейку.
здесь: Подсчет неповторяющихся
нажимаем функцию «Математические»,
столбцов. Можно написать & shn &
If Arr_I(2, i) Full)) i)) + SumEnd WithRange(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» ThenEnd SubEnd IfEnd SubCheck = FalseMisterYu СПАСИБО мало будет
количество повторений каждойtamriko11
Маня Выделите все ячейки, его на пустой
окно, выберите ячейку повторяющихся, то получим диапазон столбца А ссылок читайте в
.Value = r1.ValueSum = SumSub Base()Sh = ShMisterYu
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 WithArr_I(0, j) = As StringCall Toolbar(CInt(Sh), CInt(Sh_Ob))HugoCall 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 Integer3 этап писал — такоеApplication.Calculation = xlCalculationAutomatic
Суть макроса в
ot kaz будет показывать дату уже сделано, формулы
Аня функции по шагам,
Выделите пример в разделе
Установите флажок
вас актуальными справочными будем писать название
слов:
adr1 = .Offset(0,
End IfDim 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 = .ValueCheck = FalseDim Num, S1,For i =
в строкеДумаю, что нужноПосле удалить повторяющиесяИ еще, я
группировкой по ДНЯМ...
перечнем товаров. У
Аня
нажмите кнопку
Выделите на листе ячейку
в новое место, нас важно, чтобыВ строке формул
в левом первом
End WithSum = 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, и вам нужно подсчитать, сколько там есть неповторяющихся. Самое простое решение состоит в том, чтобы использовать функцию СУММ в сочетании с ЕСЛИ и СЧЁТЕСЛИ :
=СУММ(ЕСЛИ(СЧЁТЕСЛИ(диапазон ; диапазон ) = 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 есть специальная функция, которая позволяет автоматически пересчитывать различные значения в сводной таблице. На следующем рисунке показано, как выглядит этот счетчик:
Чтобы создать сводную таблицу со счетчиком для определенного столбца, выполните следующие действия.
- Выберите данные для включения в сводную таблицу, перейдите на вкладку «Вставка» и нажмите кнопку «Сводная таблица» .
- В диалоговом окне «Создание сводной таблицы» выберите, следует ли разместить сводную таблицу на новом или существующем листе, и обязательно установите флажок «Добавить эти данные в модель данных» .
- Когда откроется сводная таблица, расположите области строк, столбцов и значений так, как вам нужно. Если у вас нет большого опыта работы со сводными таблицами Excel, могут оказаться полезными следующие подробные рекомендации: Создание сводной таблицы в Excel.
- Переместите поле, количество уникальных элементов которого вы хотите вычислить ( поле « Товар» в этом примере), в область « Значения» , щелкните его и выберите «Параметры значения поля…» из раскрывающегося меню.
- Откроется диалоговое окно , прокрутите вниз до операции «Число разных элементов» , которая является самым последним пунктом в списке, выберите ее и нажмите OK .
Вы также можете дать собственное имя своему счетчику, если хотите.
Готово! Вновь созданная сводная таблица будет отображать количество различных товаров, как показано на самом первом скриншоте в этом разделе.
Вот как можно подсчитать различные и уникальные значения в столбце и целиком в таблице 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…
- Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя…
Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (9)
Оценок пока нет. Оцените первым!