Excel vba посчитать количество ячеек со значением

Обновлено: 06.07.2024

На вкладке формулы Microsoft Excel мы знаем, чтов категории " Дополнительные функции > " существует функция СЧЁТЕСЛИ, которая подсчитывает количество ячеек в диапазоне, соответствующих заданному условию. Условия для этой функции ограничены текстом или числами. Однако с помощью VBA можно создать функцию для подсчета количества ячеек с другими критериями, такими как цвет ячейки.

Дополнительные сведения

С помощью VBA пользовательская функция (UDF) может быть создана и сохранена в файле надстройки, чтобы ее можно было использовать в других книгах и переносить на другие компьютеры.

Создание пользовательской функции

Ниже приведены действия по созданию функции UDF для подсчета цвета ячеек.

Откройте Microsoft Excel, а затем нажмите клавиши ALT + F11, чтобы открыть окно редактора Visual Basic (VBE).

В меню Вставка выберите модуль , чтобы создать модуль. Затем введите следующий скрипт:

Закройте окно VBE, чтобы вернуться в Excel.

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

В ячейке D3 Запишите функцию:

В аргументе "range_data" выберите ячейку C2 для C51.

В аргументе "критерии" выберите элемент F1.

Нажмите клавишу ВВОД. Результат в ячейке F2 — 6. Это означает, что число ячеек, затененных синим цветом, равно 6.

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

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

Шаг 1: сохранение книги

а. Выберите файл, а затем Сохранить как. (При необходимости нажмите кнопку Обзор ).

б. Выберите надстройку Excel (. xlam) в виде формата и присвойте файлу имя, например каунткколор.

Вы можете сохранить файл надстройки в любом месте. Но для того чтобы она была указана в качестве надстройки в программе Excel, сохраните ее в расположении по умолчанию. В Windows 7 расположением по умолчанию для любой версии Microsoft Excel является: К:\усерс\раддини\аппдата\роаминг\микрософт\аддинс

Шаг 2: Установка надстройки

а. Откройте Microsoft Excel на компьютере, на котором необходимо установить надстройку.

б. Откройте диалоговое окно надстройки, выбрав надстройки Excel для Excel 2013 и более поздних версий на вкладке разработчик . (надстройки в Excel 2010.)

в. В диалоговом окне надстройки нажмите кнопку Обзор.

г. Перейдите к расположению файла, в котором сохраняется файл надстройки (например, на USB-диске или в облачной папке). Выберите файл и нажмите кнопку Открыть.

д. В диалоговом окне надстройки убедитесь, что флажок Надстройка снят. После этого нажмите кнопку ОК.

Набор UDF Color Cell Color установлен и готов к использованию. Вы сможете получить доступ к этой функции в любое время, поместив курсор в любую ячейку листа и введя текст:

Заявление об отказе от контента решений сообщества

КОРПОРАЦИЯ МАЙКРОСОФТ И/ИЛИ ЕЕ ПОСТАВЩИКИ НЕ СОДЕРЖАТ НИКАКИХ ПРЕДСТАВЛЕНИЙ О ПРИГОДНОСТИ, НАДЕЖНОСТИ ИЛИ ТОЧНОСТИ ИНФОРМАЦИИ И СВЯЗАННОЙ С НЕЙ ГРАФИКИ. ВСЯ ТАКАЯ ИНФОРМАЦИЯ И СВЯЗАННАЯ С НЕЙ ГРАФИКА ПРЕДОСТАВЛЯЮТСЯ БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. КОРПОРАЦИЯ МАЙКРОСОФТ И/ИЛИ ЕЕ ПОСТАВЩИКИ НАСТОЯЩИМ СНИМАТЬИ ВСЕ ГАРАНТИИ И УСЛОВИЯ, ОТНОСЯЩИЕСЯ К ЭТОЙ ИНФОРМАЦИИ И СВЯЗАННЫМ ГРАФИЧЕСКИМ ГРАФИКАМ, ВКЛЮЧАЯ ВСЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ И УСЛОВИЯ ДЛЯ ОБЕСПЕЧЕНИЯ СООТВЕТСТВИЯ ТРЕБОВАНИЯМ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ, ВОРКМАНЛИКЕ УСИЛИЯ, ДОЛЖНОСТИ И НЕНАРУШЕНИЯ ПРАВ. ВЫ ЯВНО СОГЛАСНЫ, ЧТО В СЛУЧАЕ ОТСУТСТВИЯ У КОРПОРАЦИИ МАЙКРОСОФТ И/ИЛИ ЕЕ ПОСТАВЩИКОВ НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, НЕПРЯМЫЕ, ПУНИТИВЕ, СЛУЧАЙНЫЙ, ОСОБЫЙ, КОСВЕННЫЙ УЩЕРБ ИЛИ ЛЮБОЙ УЩЕРБ, ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЙ, УЩЕРБ ОТ ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ, КОТОРЫЕ СВЯЗАНЫ С ИСПОЛЬЗОВАНИЕМ ИЛИ НЕВОЗМОЖНОСТЬЮ ИСПОЛЬЗОВАТЬ ИНФОРМАЦИЮ И СВЯЗАННУЮ С НИМИ ГРАФИКУ, В ЗАВИСИМОСТИ ОТ ДОГОВОРА, НАРУШЕНИЯМ, НЕБРЕЖНОСТЬЮ, ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТИ ИЛИ ИНЫМ СПОСОБОМ, ДАЖЕ ЕСЛИ У КОРПОРАЦИИ МАЙКРОСОФТ ИЛИ ЕЕ ПОСТАВЩИКА БЫЛО РЕКОМЕНДОВАНО ВЕРОЯТНОСТЬ УЩЕРБА.


Возможно, вы часто использовали функции COUNT и COUNTA в Microsoft Excel. При этом COUNT захватывает все числовые значения в ячейке, COUNTA захватывает все непустые ячейки (включая строки). Можно ли каким-либо образом использовать функцию COUNTA через VBA? Абсолютно да! Вы можете использовать функцию COUNTA через VBA в качестве функции рабочего листа (так как она является частью семейства WorksheetFunction внутри VBA) для подсчета непустых ячеек через заданный диапазон рабочего листа. Преимущество функции COUNTA над COUNT заключается в том, что она может считать все (числа, строки, специальные символы, значения ошибок и т. Д.), Кроме пустых ячеек в данном диапазоне, тогда как COUNT может считать только количество ячеек, состоящих из числовых значений.,

Синтаксис VBA COUNTA:

Синтаксис функции VBA COUNTA показан ниже:


Эта функция может принимать до 30 аргументов за один вызов. Аргумент может состоять из диапазона ячеек или одного значения, которое вводится вручную.

Как использовать функцию COUNTA в Excel VBA?

Ниже приведены различные примеры использования функции COUNTA в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA COUNTA Excel здесь - Шаблон VBA COUNTA Excel

Пример № 1 - VBA COUNTA с ручными аргументами в качестве входных данных

Мы увидим, как работает функция COUNTA, когда мы предоставим ей ручные аргументы в VBA. Выполните следующие шаги:

Шаг 1. Вставьте новый модуль в редактор Visual Basic (VBE). Нажмите на вкладку Вставка > выберите модуль.


Шаг 2: Определите новую подпроцедуру во вновь вставленном модуле, которая может содержать ваш макрос.

Код:


Шаг 3: Решите, где мы хотим сохранить выходные данные для функции COUNTA. Я хочу сохранить его в ячейке A2 листа с именем « Пример 1 ». Для этого нам нужно использовать метод Sheets.Range в VBA. Смотрите следующий скриншот для справки:

Код:


Этот фрагмент кода выбирает ячейку A2 в качестве диапазона из листа с именем Пример 1.

Шаг 4: Используйте оператор присваивания, чтобы мы могли присвоить значение ячейке, к которой будет осуществляться доступ, с помощью кода выше. Добавьте объект с именем WorksheetFunction, чтобы мы могли получить доступ к функции COUNTA под ним.

Код:


Шаг 5: Поставьте точку (.) После указанного объекта, и вы увидите список функций, доступных для использования под ним. Выберите COUNTA из списка нескольких доступных функций, который позволяет подсчитывать непустые ячейки или значения.


Код:


Шаг 7: Запустите этот фрагмент кода, нажав F5 или кнопку Run, и просмотрите результат под ячейкой A2 листа « Пример 1 » в активной рабочей книге.

В этом коде мы хотим, чтобы система посчитала входные аргументы и сохранила счет под ячейкой A2 в примере 1.

Пример № 2 - VBA COUNTA для подсчета непустых ячеек в заданном диапазоне

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


Выполните следующие шаги:

Шаг 1: Определите новую подпроцедуру, которая может содержать ваш макрос.

Код:


Шаг 2: Определите две новые переменные в этой подпроцедуре как Range, используя Dim . Одна переменная будет полезна для хранения диапазона столбца входного аргумента, а другие переменные будут полезны для хранения ячейки, в которой мы хотим получить результат в виде подсчитанного числа.

Код:


Здесь rng_1 сохранит диапазон ввода для функции COUNTA. Вывод COUNTA будет сохранен в переменной op_cell .

Шаг 3: Теперь установите диапазон для обеих переменных, используя свойство VBA Set. Это должно быть сделано, потому что мы не можем напрямую присвоить значение переменной, определенной как объект диапазона.

Код:


Здесь переменная rng_1 была установлена ​​в диапазон всего столбца с именем A. op_cell установлена ​​в ячейку B1, поскольку это будет ячейка, которая содержит выходные данные COUNTA.

Шаг 4: Теперь используйте общий оператор присваивания для переменной op_cell, чтобы мы могли сохранить выходные данные в ячейке, для которой установлена ​​эта переменная. Это может рассматриваться как выходная инициализация.

Код:


Шаг 5: Используйте объект WorksheetFunction в правой части оператора присваивания (это будет выражение, которое будет оценено, и значение будет сохранено в ячейке с переменной op_cell), чтобы инициализировать класс, к которому мы можем обращаться, а также использовать Функция COUNTA.

Код:


Шаг 6: Как только вы нажмете точку (.) После объекта WorksheetFunction, вы сможете получить доступ ко всем функциям, доступным в этом классе. Перейдите к функции COUNTA и дважды щелкните по ней, чтобы выбрать.


Шаг 7: Используйте переменную rng_1 в качестве входного аргумента в COUNTA. Следовательно, эта функция в классе объектов функций рабочего листа может подсчитывать непустые ячейки, присутствующие во всем столбце A.

Код:


Шаг 8: Запустите этот код, нажав F5 или кнопку Run, и вы увидите результат, как показано ниже, в ячейке B1 активного листа из рабочей книги.

В ячейке B1 мы можем видеть число как 17. Это означает, что у нас есть 17 непустых ячеек в столбце A рабочего листа. Вы можете вообще не видеть 17 на этом скриншоте, так как он является частичным. Вы могли бы лучше видеть рабочий лист и перемещаться по столбцу А.

То, что нужно запомнить

  • Вы можете использовать функцию VBA COUNTA, когда вам нужно посчитать количество непустых ячеек, присутствующих в данном диапазоне.
  • COUNTA рассматривает все значения, такие как числа, строки, значения ошибок, логические значения, пустой текст («»). Однако он не учитывает пустую ячейку.
  • Пустые ячейки не будут учитываться с помощью функции COUNTA и будут игнорироваться.
  • Вы можете использовать аргументы вручную в функции VBA COUNTA, и она все еще работает.

Рекомендуемые статьи

Это руководство к функции VBA COUNTA. Здесь мы обсудим, как использовать функцию COUNTA в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -


Существуют различные способы подсчета в MS Excel. Мы можем использовать встроенные функции, такие как Count, CountIf, CountA, CountBlank, которые есть в Excel. Но эти функции не будут работать должным образом в VBA и также имеют ограничения. Чтобы преодолеть это, у нас есть много функций и команд, а также процесс, с помощью которого мы можем выполнить VBA Counter. Счетчик VBA используется для подсчета ячеек, подсчета содержимого ячеек, а также используется в качестве таймера обратного отсчета, когда мы можем реализовать расписание для измерения любой задачи.

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

Как создать счетчик в Excel VBA?

Ниже приведены различные примеры создания счетчика в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA Counter Excel здесь - Шаблон VBA Counter Excel

Счетчик VBA - Пример № 1

У нас есть некоторые данные случайных чисел в столбце А. Все упомянутые значения являются случайными и не имеют связи, такой как в последовательности или серии. Теперь с помощью процесса счетчика VBA мы посчитаем верхнее и нижнее значения и получим выходные данные в ячейках D2 и D3.


Мы посчитаем число и одновременно раскрасим их согласно цвету текста в ячейках C2 и C3.

Для этого выполните следующие шаги:

Шаг 1. Создайте кнопку «Command», которая доступна на вкладке « Разработчик » в Active X Control меню «Вставка», как показано ниже.


Шаг 2: Теперь создайте кнопку, как показано ниже.


Шаг 3: Щелкните правой кнопкой мыши на созданной кнопке и перейдите к опции Свойства .


Шаг 4: Измените заголовок кнопки, которая по умолчанию называется CommandButton2, на любое желаемое имя. Здесь мы изменили это на « Подсчет клеток по значению ».


Шаг 5: Сделав это, щелкните правой кнопкой мыши на созданной кнопке и выберите опцию View Code, чтобы открыть окно VBA.


Редактор Visual Basic открыт сейчас, и по умолчанию подпрограмма для командной кнопки уже создана.

Код:


Шаг 6: Теперь нам нужно объявить 3 переменные. Объявите первую переменную, в которой мы будем хранить числа, и вторую переменную, в которой мы будем использовать счетчик в качестве целых чисел, как показано ниже. И 3- я переменная будет длинной, чтобы сосчитать числа, хранящиеся в каждой строке.

Код:


Шаг 7: Теперь мы выберем первую ячейку листа, которая является A1 в качестве нашего диапазона. Отсюда мы будем выбирать ячейки, пока в них не появятся номера.

Код:


Шаг 8: Теперь мы откроем и запишем условие в цикле For, если ячейка имеет значение больше 10, тогда цвет шрифта ячейки будет изменен на Желтый, а для значения меньше 10 цвет шрифта ячейки будет изменен на Синий с индексами цвета 44 и 55 соответственно.

Код:


Шаг 9: Теперь, чтобы увидеть вывод значений из ячейки A1 до конца, мы выберем ячейки, как описано выше с помощью приведенного ниже кода.

Код:


Шаг 10: Теперь запустите код, нажав кнопку.

Мы увидим, что ячейки с номерами меньше 10 выделены синим цветом. И тот, что больше 10, выделен желтым цветом.

Счетчик VBA - Пример № 2

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

Для этого выполните следующие шаги:

Шаг 1: Создайте 2 вкладки любой фигуры в меню «Вставка» «Фигуры», как показано ниже. Мы выбираем Rectangle: Rounder Corners .


Шаг 2: Создайте 2 кнопки и назовите их «Пуск» и «Сброс», с помощью которых мы запустим таймер и очистим время.


Шаг 3: Теперь перейдите в VBA и откройте модуль из меню «Вставка».


Шаг 4: В этом напишите подкатегорию «Таймер запуска», как показано ниже.

Код:


Шаг 5: Рассмотрим слово для строки Next, например NextRow, где мы выберем рабочий лист, в котором мы хотим реализовать код. Здесь наш лист Sheet2 . И здесь мы посчитаем строки из ячейки +1, которая является ячейкой A2, пока у нас не будет курсора значение файла.

Код:


Шаг 6: Теперь, чтобы перейти к следующей строке, мы будем использовать формат вершины, где 1 в скобках для оси Y.

Код:


Шаг 7: Напишите код для сброса ниже того же кода запуска.

Код:


Шаг 8: Теперь для сброса мы сохраним тот же код, что и Start, но ключевое слово будет изменено на LastRow, и мы удалим +1 только для того, чтобы нам не пришлось попадать в другую строку.

Код:


Шаг 9: Теперь, чтобы очистить данные в последней ячейке столбца A до первой, сначала выберите диапазон ячеек с функцией ClearContents .

Код:


Теперь закройте окно VBA.

Шаг 10: Щелкните правой кнопкой мыши на вкладке « Пуск » и выберите « Назначить макрос» .


Шаг 11: Выберите Начальное субкодирование, которое мы делали выше.


Шаг 12: То же самое можно сделать и для кнопки сброса. Присвойте субкод « Сброс» кнопке « Сброс», нажмите «ОК» и выйдите из режима разработки, чтобы выполнить код.


Шаг 13: Теперь сначала нажмите кнопку « Пуск» . Время начала мы получим как 3:51:33.

Шаг 14: Теперь снова нажмите кнопку «Пуск» 2-3 раза, чтобы получить многократный промежуток времени. Мы увидим, что в каждой итерации есть промежуток в несколько секунд.

Шаг 15: Теперь после этого мы протестируем кнопку « Сброс» . Нажмите на Сброс. Мы увидим, что данные очищены и готовы к следующему кругу отсчета времени.

Плюсы Excel VBA Counter

  • Реализовать счетчик отрезков времени очень просто, как мы видели в примере 2.
  • VBA Counter имеет много типов реализации, это не ограничивается только примерами, которые мы видели.

То, что нужно запомнить

  • Всегда лучше назначать код для любой кнопки, когда мы выполнили 2 или более типов кода в одном процессе.
  • Выйдите из режима разработки после назначения и выполнения кода на вкладке «Разработчик».
  • Мы также можем создать счетчик времени в реальном времени, где мы сможем увидеть обратный отсчет времени или посмотреть время в реальном времени.
  • Сохраните макрос в Macro, включите формат файла Excel, чтобы мы не потеряли наш код.

Рекомендуемые статьи

Это руководство к VBA Counter. Здесь мы обсудим, как создать счетчик VBA в Excel, используя код VBA, а также приведем практические примеры и загружаемый шаблон Excel. Вы также можете посмотреть следующую статью, чтобы узнать больше -

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

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

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

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

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

count-unique2.jpg

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

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

count-unique4.jpg

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

count-unique5.jpg

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

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

count-unique3.jpg

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

Доброго времени суток, могли бы вы, для новичка, разобрать данную формулу, начиная со знака крышки.
=СУММПРОИЗВ(СЧЁТЕСЛИ(A2:A10;A2:A10)^(2*ЕПУСТО(A2:A10)-1))


Спасибо, Ваш пример =СУММПРОИЗВ. работает даже при вводе вручную в пустую ячейку

Для полного диапазона:

Для диапазона с пустыми ячейками:


Неудобство в том, что диапазон должен обязательно содержать пустые значения, чтобы "-1" было в тему. Всё-таки метод от MCH наиболее универсален, не говоря уже о красоте. Всем доброго времени суток! Можно ли усовершенствовать формулу так, чтобы считать количество уникальных элементов в отфильтрованных строках (при использовании автофильтра)? Что-то вроде ПромежуточныхИтогов, где будут считаться количество уникальных. Не уверен, что это можно реализовать формулой. Я бы писал макрофункцию на VBA в таком случае.


Я сделал так.
1) В отдельной колонке вывел результат 1/Число вхождений, как на последней картинке в Способ 1
2) На эту колонку наложил функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109; колонка )
В результате, когда применяю фильтр, получаю суммарное количество уникальных значений.

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


Огромное спасибо. Ваш способ именно то, что мне пригодилось!


Как посчитать уникальных значений из списка деталей по длине и ширине,когда длина и ширина в разных ячейках. Склеить длину и ширину в один столбец с помощью функции СЦЕПИТЬ (CONCATENATE) и дальше подсчитать уникальные, как описано в статье выше. А мне еще нужно посчитать кол-во уникальных значений не просто в одном столбце, а ещё по двум критериям в таблице. Это реально? Можно ли как-то соединить с СЧЁТЕСЛИМН? См. выше. Я бы склеил все критерии в отдельный столбец с помощью функции СЦЕПИТЬ и искал уникальные потом по этой колонке. Хотя не видя примера детально ответить сложно.


:)

Буквально вчера бился с этой задачей, но вроде бы победил Допустим, что в указанном примере в столбце "B" стоит требуемый нам дополнительный параметр, например "цвет". Тогда формула будет выглядеть следующим образом:


У меня данная формула выдает неправильный результат.
Вот что нашел на соседнем сайте. Эта формула у меня работет.



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

Например Таблица содержит наименования продуктов и даты их выпуска )) Подскажите.. )8)


Добрый день. А есть ли возможность вставить подсчет уникальных данных в сводную таблицу? Например в вычисляемое поле? Вычисляемые поля в сводных таблицах весьма ограничены по возможностям - формулу массива или сложную функцию туда точно не вставить. В новом Excel 2013 подсчет уникальных значений добавлен в стандартный набор вычислений по полю, кстати.


Здравствуйте! Просьба помочь с решением такой задачи: нужно по каждой дате подсчитать количество машин (по гос. номеру). №№ ТТН пренебречь.
Дат в 2014 году было много, машин - тоже.
Заранее спасибо!
Гос.№ авто № ТТН Дата
Т 240РВ 403826/12 01.03.2014
Т 240РВ 403826/12 01.03.2014
Т 240РВ 403826/12 01.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
С 215ВН 403825/14 04.03.2014
Т 118ЕЕ 14/2-2 06.03.2014
Т 118ЕЕ 14/2-2 06.03.2014
Андрей, если у вас Excel 2013, то можно использовать сводную таблицу - она в 2013 версии умеет подсчитывать количество уникальных элементов.
Если версия более древняя, то прогнать список сначала через удаление дубликатов ( Данные - Удалить дубликаты ) с галочками Гос.№ и Дата, а потом построить сводную (Даты закинуть в строки, а Гос№ в значения).


Николай, спасибо за ответ!
Остался момент: в сводной таблице не получается найти кнопку "Уникальные значения". У меня 2013 эксель. Андрей, когда строите сводную, то обязательно установите флажок Добавить в модель данных .
Потом в сводной щелкаете правой по полю значений - Параметры поля - Операции - Число различных элементов.


Флажок ставлю. А "Кол-ва уникальных" не вижу в настройках поля данных. Оно там на вкладке Операции - правильно называется Число различных элементов (Distinct Values)


Гос. № машины заменил на число - и заработало! а смешанный формат Гос.№ не дает появиться пункту "Число различных элементов". Есть рецепт как решить эту проблему? В смысле - без выборки 3 цифр гос. номера. В случае их уникальности.


либо. формула?

Гос.№ авто Дата Кол-во дат Кол-во машин
Т 240РВ 01.03.2014 1
Т 240РВ 01.03.2014
Т 240РВ 01.03.2014
Т 240РВ 01.03.2014 1
С 215ВН 04.03.2014 2
С 215ВН 04.03.2014
С 215ВН 04.03.2014
С 215ВН 04.03.2014
С 2155ВН 04.03.2014
С 215ВН 04.03.2014
С 215ВН 04.03.2014
С 215ВН 04.03.2014
С 215ВН 04.03.2014
С 215ВН 04.03.2014 1
Т 118ЕЕ 06.03.2014 3
Т 118ЕЕ 06.03.2014
Т 118ЕЕ 06.03.2014
О 754ТМ 06.03.2014
О 754ТМ 06.03.2014
О 754ТМ 06.03.2014
О 754ТМ 06.03.2014 1
В 093ЕЕ 07.03.2014 4
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014
В 093ЕЕ 07.03.2014 1
<=ЕСЛИ(G4<>"";СЧЁТЕСЛИ(ИНДЕКС(A1:A$2;ПОИСКПОЗ("ххх";G1:G$2)):A1;"<>"&A1:A$2);"";)
>
Кол-во дат считает верно, а кол-во машин в день - неверно.



Андрей, я бы сделала так: делаем из этой таблицы сводную. В строки ставим поле " Дата " - получаем список всех возможных дат, копируем его на отдельный лист. Добавляем в сводной в строки поле " Гос.№ авто " , обязательно в "макете отчета" - "Повторять все подписи элементов" (работает с 2010-го). И с помощью СЧЁТЕСЛИ подтягиваем к списку дат количество машин. Это вариант без дополнительных условий. Если нужно учесть еще критерии (например, количество машин с отгрузкой не менее определенной суммы) - СЧЁТЕСЛИМН меня всегда выручает.



Подскажите пожалуйста, как решить задачку. У меня к сожалению не получается самостоятельно.
Есть несколько строк из 10 чисел.
Нужно посчитать сколько раз одновременно в строку входят 2 или 3 других числа.

:(

Здравствуйте, подскажите, есть ли какие-либо ограничения по кол-ву строк или версии Офиса?
У меня на 35 тыс. строк (Офис 2013) не работает, выдает "0". При этом, ограничив в этом же массиве до 1500 строк, считает корректно


Ребят, а как просчитать значения которые повторяются, чтобы указывалось не общее количество, а порядочное, нп:

Имя Подсчет
Груша 1
Груша 2
Груша 3
Груша 4

Вместо такого, что выдает формула "счетесли"

Имя Подсчет
Груша 4
Груша 4
Груша 4
Груша 4

Нужно у аргумета "диапазон" функции СЧЁТЕСЛИ строку нижней границу указать без доллара. И будет тебе счастье…

Есть ещё один замечательный способ, как можно посчитать уникальные значения. С помощью функции ЧАСТОТА:

И что ещё интереснее, так можно считать уникальные значения при наличии условия. Например, если в столбце B были бы названия магазинов (где, например, есть в наличии эти фрукты), можно написать формулу, считающую количество уникальных фруктов в данном магазине:

  • Функция ЧАСТОТА пропускает пустые ячейки и текст.

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

Сначала сортируем диапазон A1:A10 по возрастанию (или по убыванию, не важно). Потом вводим такую формулу массива:

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

С пропуском пустых ячеек и в немассивной форме:
=СУММПРОИЗВ((A2:A10<>A1:A9)*(A2:A10<>"")



Всем привет! Подскажите как посчитать уникальные(повторяющиеся) значения в столбце таблицы, при использовании промежуточных итогов?


Округ отпр.Город отпр. Округ приб.Город приб. Число рейсов
ЦентральныйМосква< --- >ЦентральныйРязань 0
ЦентральныйМосква< --- >ЦентральныйТверь 0
ЦентральныйМосква< --- >ЦентральныйБалашиха 1
ЦентральныйМосква< --- >ЮжныйКраснодар 3
ЦентральныйМосква< --- >УральскийТюмень 1
ЦентральныйРязань< --- >СибирскийНовосибирск 22
СибирскийНовосибирск< --- >ЮжныйКраснодар 1
УральскийТюмень< --- >СибирскийНовосибирск 12
УральскийТюмень< --- >ЮжныйКраснодар 2
УральскийТюмень< --- >ЮжныйСочи 11
СибирскийНовосибирск< --- >ЦентральныйТверь 2
ЮжныйКраснодар< --- >ЦентральныйРязань 11

Должно получиться что-то типа такого:

ОкругЧисло узлов
Центральный5
Сибирский1
Уральский1
Южный2
Какие-то города могут быть только в части "отправление", какие-то - в "прибытии", а какие-то в обоих частях, и у некоторых могут быть нулевое число рейсов (если у найденного города везде ноль в числе рейсов - то он не считается, а если хоть в одном месте не ноль - то считается).

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

Читайте также: