Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Подсчет дубликатов.
 
Добрый день.

По сабжу в сети нашел вот такую формулу:
Код
=СУММПРОИЗВ(--(СЧЁТЕСЛИ(A2:A11;A2:A11)>1))
Объясните по подробнее, как она работает?
 
Вот эта часть:
Код
СЧЁТЕСЛИ(A2:A11;A2:A11)
просчитывает для каждой ячейки в названном диапазоне кол-во совпадений.
Суммпроизв, во-первых позволяет избавиться от применения формулы массива, а, во-вторых, суммирует все значения, где количество совпадений из предыдущей формулы больше 1.
Итого: формула просчитывает не количество дубликатов, а именно количество ячеек из диапазона, у которых есть дубликаты.
Изменено: Все_просто - 3 Мар 2015 17:47:24
С уважением,
Федор/Все_просто
 
СЧЁТЕСЛИ(A2:A11;A2:A11) - массив значений (последовательный счет значений в диапазоне)
Проверяем массив на наличие значений больше 1, получаем массив логических ЛОЖЬ/ИСТИНА
Бинарное отрицание переводит логику в число.
Окончательно функция суммирует, но, т.к. значения в массиве только 0 и 1 - фактически считает количество единиц.
 
Спасибо за ответ, стало немного понятнее :) Но хотелось бы еще подробнее:
Почему формула:
Код
=СЧЁТЕСЛИ(G12:J12;G12:J12)
  • возвращает результат 1, если массив [qq,ww,ee,rr]. Повторов же нет.
  • возвращает результат 1, если массив [11,ee,ww,11]. Один повтор.
  • возвращает результат 2, если массив[11,22,ee,ee]. Один повтор.
  • возвращает результат 2, если массив[11,11,ee,ee]. Два повтора.
Изменено: dimm - 3 Мар 2015 18:33:19
 
Цитата
dimm написал:
возвращает результат 1, если массив [qq,ww,ee,rr]. Повторов же нет
Как нет? СЧЁТЕСЛИ подсчитывает кол-во повторов. Допустим условие СЧЁТЕСЛИ("А";"А"). Ищем среди указанных значений("А") значение "А" и подсчитываем кол-во повторов. В данном случае - 1 повтор. С Вашими значениями также.
Вы хоть справку по функции потрудитесь прочесть.
А вот когда добавляете к функции логическое условие: ">1" - то уже другая картина.
Будет массив: {1;1;1;1}>1 => {ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ} => бинарное отрицание преобразует ЛОЖЬ в 0 {0;0;0;0}
И этот последний массив нулей СУММПРОИЗВ и подсчитывает...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
В строке формул выделите эту часть формулы и нажмите F9.
Увидите массив.
 
Цитата
The_Prist написал: Вы хоть справку по функции потрудитесь прочесть.
на всякий случай снова перечитал справку Excel.. прикол в том, что там нет примера похожего на СЧЁТЕСЛИ(G12:J12;G12:J12) [массив];[массив], а [массив];"значение" - есть. Может вы про другую справку?

Всем большое спасибо за объяснения, стало намного понятнее :)
 
Цитата
dimm написал: Может вы про другую справку
Нет. Дело в том, что в любом случае функция подсчитывает сколько раз указанный критерий встречается в указанном диапазоне.
Другой вопрос в том, что Вы явно не в курсе о формулах массива, отсюда и считаете, что у нас справки разные.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему (гостей: 1)