Макрос excel считает количество

I am developing a dashboard in excel. And I am looking for calculating row count. (How many records are present) ..

Since there are some blank cells I thought to go from bottom to up. I use the following

   Range("A1048576").Select
Selection.End(xlUp).Select

After this execution the active cell is at A113 which means the row count is 113.

My question is how to get this number 113 from the active cell?

Community's user avatar

asked Feb 4, 2014 at 13:37

Alwyn Miranda's user avatar

You can use this:

Dim lastrow as Long
lastrow = Cells(Rows.Count,"A").End(xlUp).Row

lastrow will contain number of last empty row in column A, in your case 113

answered Feb 4, 2014 at 13:38

Dmitry Pavliv's user avatar

Dmitry PavlivDmitry Pavliv

35.2k13 gold badges79 silver badges80 bronze badges

1

Here is what I usually use for that:

lastrow = WorksheetFunction.CountA(Columns("A:A"))

This will return the number of non-empty cells in Column «A» which is what I think you’re after. Hope this helps.

answered Feb 4, 2014 at 13:49

Jim Simson's user avatar

Jim SimsonJim Simson

2,7663 gold badges21 silver badges30 bronze badges

2

The best way to get the count of rows/records (in most cases) is to use .UsedRange.Rows.Count. You can assign the return value to a variable like this:

lastRow = Sheets(1).UsedRange.Rows.Count

If you use a function that includes a column (such as column A) as shown in other examples, that will only get you the count of rows in that column, which may or may not be what you’re going for. One caveat: if you have formatted rows below your last row with a value then it will return that row number.

answered Mar 3, 2021 at 0:28

SendETHToThisAddress's user avatar

If there is a slight chance that the last row of the worksheet is not empty, you should add an IsEmpty() check to @simoco ‘s solution. Therefore; following is a function that returns the last used row and check if the last row of the worksheet is empty:

Function lastRow(WS As Worksheet, iColumn As String) As Long

    If Not IsEmpty(WS.Range(iColumn & WS.Rows.Count)) Then
        lastRow = WS.Rows.Count
    Else
        lastRow = WS.Range(iColumn & WS.Rows.Count).End(xlUp).Row
    End If

End Function

answered Feb 4, 2014 at 14:22

simpLE MAn's user avatar

simpLE MAnsimpLE MAn

1,56213 silver badges22 bronze badges

Содержание

  1. VBA Excel. Методы CountIf и CountIfs
  2. Metod WorksheetFunction.CountIf
  3. Определение
  4. Синтаксис
  5. Параметры
  6. Примечания
  7. Metod WorksheetFunction.CountIfs
  8. Определение
  9. Синтаксис
  10. Макрос для подсчета ячеек в выделенном диапазоне
  11. Макрос подсчета количества ячеек в выделенном диапазоне выглядит следующим образом:
  12. Добавить комментарий Отменить ответ
  13. Подсчет количества ячеек с определенным цветом ячеек с помощью VBA
  14. Аннотация
  15. Дополнительные сведения
  16. Создание определяемой пользователем функции
  17. Отказ от ответственности за содержимое общедоступных решений
  18. Excel макрос посчитать количество ячеек
  19. Как посчитать количество ячеек содержащих определенное значение в Exel
  20. Определенный текст
  21. X или Y
  22. Ошибки
  23. Пять символов
  24. Положительные числа
  25. Отрицательные числа
  26. Нечетные числа
  27. Текст

VBA Excel. Методы CountIf и CountIfs

Подсчет количества ячеек в диапазоне, соответствующих заданным критериям, методами CountIf и CountIfs объекта WorksheetFunction из кода VBA Excel.

Metod WorksheetFunction.CountIf

Определение

Определение метода CountIf объекта WorksheetFunction в VBA Excel:

Синтаксис

Синтаксис метода CountIf объекта WorksheetFunction:

Параметры

Параметры метода CountIf объекта WorksheetFunction:

Параметр Описание
Arg1 Диапазон, в котором необходимо подсчитать количество ячеек, соответствующих заданному критерию. Тип данных — Range.
Arg2 Критерий в виде числа, текста, выражения или ссылки на ячейку, определяющий, какие ячейки будут засчитываться. Тип данных — Variant.

Примечания

  • Метод WorksheetFunction.CountIf позволяет получить количество ячеек, соответствующих заданному критерию, в указанном диапазоне.
  • Примеры критериев (условий): 25 , «25» , «>50″ , » , «береза» или D5 .
  • В критериях можно использовать знаки подстановки (спецсимволы): знак вопроса (?) и звездочку (*). Знак вопроса заменяет один любой символ, а звездочка соответствует любой последовательности символов. Чтобы знак вопроса (?) и звездочка (*) обозначали сами себя, перед ними указывается тильда (

Metod WorksheetFunction.CountIfs

Должен отметить, что у меня в VBA Excel 2016 метод WorksheetFunction.CountIfs не работает. При попытке применить данный метод, генерируется ошибка:

Run-time error ‘1004’:
Невозможно получить свойство CountIfs класса WorksheetFunction

Очевидно, метод WorksheetFunction.CountIfs предусмотрен для более новых версий VBA Excel. Статья на сайте разработчиков датирована 2021 годом.

Определение

Определение метода CountIfs объекта WorksheetFunction в VBA Excel:

Синтаксис

Синтаксис метода CountIfs объекта WorksheetFunction:

Источник

Макрос для подсчета ячеек в выделенном диапазоне

Предположим ситуацию, что у вас есть план объекта, выполненный на координатной сетке, расчерченной в программе Excel.

Известен масштаб: Сторона клетки равна 10 см.

Необходимо посчитать площадь объекта или его отдельной части (комнаты).

подсчет площади объекта в Эксель

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

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

Для упрощения работы по подсчету ячеек в выделенном диапазоне, можно написать следующий макрос, который будет считать количество ячеек (клеток) во всём выделение и выводить значения в виде появляющегося окна (MsgBox).

Площадь объекта при помощи макроса

Макрос подсчета количества ячеек в выделенном диапазоне выглядит следующим образом:

Sub Счет_ячеек() ‘название макроса

Dim b as integer ‘ вводим переменную b

b=0 ‘присваиваем переменной значение «0»

for each cell in selection ‘записываем цикл подсчета

b=b+1

next

MsgBox «количество ячеек » & b ‘ выводим сообщение с количеством ячеек

End sub ‘конец макроса

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

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

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Подсчет количества ячеек с определенным цветом ячеек с помощью VBA

Аннотация

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

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

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

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

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

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

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

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

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

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

В аргументе «range_data» выберите ячейку C2 –C51.

В аргументе criteria выберите ячейку F1.

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

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

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

Шаг 1. Сохранение книги

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

Б. Выберите формат Add-In Excel (XLAM) и присвойте файлу имя, например CountCcolor.

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

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

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

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

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

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

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

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

Отказ от ответственности за содержимое общедоступных решений

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

Источник

Excel макрос посчитать количество ячеек

Здравствуйте! Я не программист и не студент, задачки придумываю себе сам по мере возникновения идеи или надобности и для самообразования.
Вот возникла надобность в быстром отчете — есть таблица (прилагается), хочу сделать быстрый отчет по подсчету ячеек по нескольким условиям — например: Посчитать количество 725 по полю «модель»; за период от «01.01.2018» до «10.02.2018»; для «Попов». Или Посчитать за определенный период «от» и «до» количество «фб» по полю «Работа» (причем не «замена фб», а именно «фб» — из всего текста надо вычленить «фб», так как может быть «замена впз», а может быть и то и другое, и т.д.).
Вот логику действий понимаю, с помощью формул делаю (при этом торможение Excel наблюдаю), но вот с кодом ВБА у меня огромная проблема. По этому прошу помощи у Вас — знающих и понимающих.
Переключение поля поиска думаю сделать OptionBootton, но если считаете это неудобным, то — форму можно менять на свое усмотрение

Буду очень признателен и заранее благодарю!

Здравствуйте! Я не программист и не студент, задачки придумываю себе сам по мере возникновения идеи или надобности и для самообразования.
Вот возникла надобность в быстром отчете — есть таблица (прилагается), хочу сделать быстрый отчет по подсчету ячеек по нескольким условиям — например: Посчитать количество 725 по полю «модель»; за период от «01.01.2018» до «10.02.2018»; для «Попов». Или Посчитать за определенный период «от» и «до» количество «фб» по полю «Работа» (причем не «замена фб», а именно «фб» — из всего текста надо вычленить «фб», так как может быть «замена впз», а может быть и то и другое, и т.д.).
Вот логику действий понимаю, с помощью формул делаю (при этом торможение Excel наблюдаю), но вот с кодом ВБА у меня огромная проблема. По этому прошу помощи у Вас — знающих и понимающих.
Переключение поля поиска думаю сделать OptionBootton, но если считаете это неудобным, то — форму можно менять на свое усмотрение

Буду очень признателен и заранее благодарю!

Сообщение Здравствуйте! Я не программист и не студент, задачки придумываю себе сам по мере возникновения идеи или надобности и для самообразования.
Вот возникла надобность в быстром отчете — есть таблица (прилагается), хочу сделать быстрый отчет по подсчету ячеек по нескольким условиям — например: Посчитать количество 725 по полю «модель»; за период от «01.01.2018» до «10.02.2018»; для «Попов». Или Посчитать за определенный период «от» и «до» количество «фб» по полю «Работа» (причем не «замена фб», а именно «фб» — из всего текста надо вычленить «фб», так как может быть «замена впз», а может быть и то и другое, и т.д.).
Вот логику действий понимаю, с помощью формул делаю (при этом торможение Excel наблюдаю), но вот с кодом ВБА у меня огромная проблема. По этому прошу помощи у Вас — знающих и понимающих.
Переключение поля поиска думаю сделать OptionBootton, но если считаете это неудобным, то — форму можно менять на свое усмотрение

Буду очень признателен и заранее благодарю!

срочности нет Автор — urlchik
Дата добавления — 19.02.2018 в 12:15

Источник

Как посчитать количество ячеек содержащих определенное значение в Exel

Определенный текст

Для подсчета количества ячеек, содержащих определенный текст, вы можете использовать функцию СЧЁТЕСЛИ. В общей форме формулы (выше), RNG является диапазон ячеек, TXT представляет собой текст, который должны содержать ячейки, и «*» является подстановочным символом, соответствующим любому количеству символов.

В примере, активная ячейка содержит следующую формулу:

СЧЁТЕСЛИ подсчитывает количество ячеек в диапазоне, которые содержат «а» путем сопоставления содержимого каждой ячейки с шаблоном «*a*», который поставляется в качестве критериев. Символ «*» (звездочка) является подстановочным в Excel, что означает «совпадают с любым количеством символов», так что эта модель будет считать любую ячейку, которая содержит «а» в любом положении. Количество ячеек, которые соответствуют этому шаблону рассчитывается как число.

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

X или Y

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

Когда вы подсчитывать ячейки с критерием «или», вы должны быть осторожны, чтобы не удвоить счет. Например, если вы подсчитываете ячейки, которые содержат «abc» или «def», вы не можете просто сложить вместе две функции СЧЁТЕСЛИ, потому что вы можете удвоить подсчет ячеек, которые содержат и «abc» и «def».

Решение одной формулой

Для решения одной формулойц, вы можете использовать комбинацию СУММПРОИЗВ с ЕЧИСЛО + НАЙТИ. Формула в ячейке E4 будет:

Эта формула основана на формуле, которая находит текст внутри ячейки:

При заданном диапазоне ячеек, этот фрагмент будет возвращать массив значений Истина или Ложь, одно значение для каждой ячейки диапазона. Поскольку мы используем это дважды (один раз для «abc» и еще для «def»), мы получим два массива.

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

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

И, наконец, СУММПРОИЗВ суммирует полученные числа.

Вспомогательный столбец решений

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

СЧЁТЕСЛИ возвращает массив, который содержит два пункта: подсчет для «abc» и подсчет на «def». Чтобы избежать двойного счета, мы складываем элементы, а потом возвращаем результат «истина/ложь» с «>0». Наконец, мы преобразуем значения Истина или Ложь в 1 и 0 с двойным минусом (—).

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

Ошибки

Для подсчета количества ячеек, содержащих ошибки, вы можете использовать функцию ЕОШ, завернутую в функцию СУММПРОИЗВ. В общей форме формулы (выше) rng представляет собой диапазон ячеек, в которых вы хотели бы рассчитывать ошибки.

В примере, активная ячейка содержит следующую формулу:

СУММПРОИЗВ принимает один или несколько массивов и вычисляет сумму произведений соответствующих чисел. Если только один массив , он просто суммирует элементы в массиве.

Функция ЕОШ вычисляется для каждой ячейки в rng. Результатом является массив со значениями истина / ложь:

(—) — Оператор (называемый двойной одинарный) приводит истинные/ложные значения в 0 и 1. Результирующий массив выглядит так:

СУММПРОИЗВ затем суммирует элементы в этом массиве и возвращает общую сумму, которая, в данном примере, это число 2.

Примечание: ЕОШ подсчитывает все ошибки, кроме # N / A. Если вы хотите, чтобы также рассчитывалось # N / A, используйте функцию ЕОШИБКА вместо ЕОШ.

Вы можете также использовать функцию СУММ для подсчета ошибок. Структура формулы такая же, но она должна быть введена как формула массива (нажмите Ctrl + Shift + Enter, а не просто Enter). После ввода формула будет выглядеть следующим образом:

Пять символов

Для подсчета количества ячеек, содержащих определенное количество символов текста, вы можете использовать функцию СЧЁТЕСЛИ. В общей форме формулы (выше), RNG является диапазон ячеек, а «?» соответствует любому одному символу.

В примере, активная ячейка содержит следующую формулу:

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

Положительные числа

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

В примере, активная ячейка содержит следующую формулу:

СЧЁТЕСЛИ подсчитывает количество ячеек в диапазоне, которые соответствуют критериям. В этом случае критерии поставляются в виде «> 0», которые оцениваются как «значения больше нуля». Общее количество всех ячеек в диапазоне, которые удовлетворяют этому критерию рассчитывается функцией.

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

Отрицательные числа

=СЧЁТЕСЛИ(rng;»

В примере, активная ячейка содержит следующую формулу:

=СЧЁТЕСЛИ(B5:B10;»

В примере, активная ячейка содержит следующую формулу:

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

Нечетные числа

Для подсчета ячеек, которые содержат только нечетные числа, вы можете использовать формулу, основанную на функции СУММПРОИЗВ вместе с функцией ОСТАТ.

В примере, формула в ячейке E4 является:

Эта формула рассчитала 4, так как есть 4 нечетных числа в диапазоне В5: В10 (который назван «rng» в формуле).

Функция СУММПРОИЗВ непосредственно работает с массивами.

Одна вещь, которую вы можете сделать довольно легко с СУММПРОИЗВ это выполнить тест на массив, используя один или несколько критериев, затем подсчитать результаты.

В этом случае, мы проводим тест на нечетное число, который использует функцию ОСТАТ:

ОСТАТ рассчитывает остаток от деления. В этом случае делитель равен 2, поэтому ОСТАТ рассчитывает остаток 1 для любого нечетного числа, а остаток 0 для четных чисел.

В функции СУММПРОИЗВ, этот тест выполняется в каждой ячейке B5: B10, результат представляет собой массив значений истина / ложь:

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

СУММПРОИЗВ затем просто суммирует эти числа и рассчитывает 4.

Текст

Для подсчета количества ячеек, содержащих текст (т.е. не цифры, не ошибки и не пустые), можете использовать функцию СЧЁТЕСЛИ и подстановочные знаки. В общей форме формулы (выше), rng является диапазон ячеек, а «*» является подстановочным знаком, который соответствует любому количеству символов.

В примере, активная ячейка содержит следующую формулу:

СЧЁТЕСЛИ подсчитывает количество ячеек, которые соответствуют критериям. В этом случае критерий поставляется в качестве шаблонного символа «*», который совпадает с любым количеством символов текста.

  • Логические значения истина и ложь не учитываются, как текст
  • Числа не подсчитываются «*», если они не будут введены в виде текста
  • Пустая клетка, которая начинается с апострофа ( ‘) будут учитываться.

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

Двойной дефис принуждает результат ЕТЕКСТ от логического значения ИСТИНА или ЛОЖЬ перейти к 1 и 0. СУММПРОИЗВ затем суммирует эти значения вместе, чтобы получить результат.

Чувствительная к регистру версия

Если вам нужна чувствительная к регистру версия, вы не можете использовать СЧЁТЕСЛИ. Вместо этого вы можете проверить каждую ячейку в диапазоне, используя формулу, основанную на функции НАЙТИ и функции ЕЧИСЛО.

НАЙТИ чувствительна к регистру, и вы должны дать ему диапазон ячеек, а затем использовать СУММПРОИЗВ для подсчета результатов. Формула выглядит следующим образом:

Там, где текст является текстом, который вы ищете, и rng диапазон ячеек, которые вы хотите подсчитать. Там нет необходимости использовать групповые символы, так как НАЙТИ возвратит число, если текст найден в любом месте в ячейке.

Источник

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

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

 

hk1209

Пользователь

Сообщений: 271
Регистрация: 01.01.1970

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Set wb2 = Workbooks.Open(«C:UsersU_M06TTDesktopExcelКачествоМарт 2014.xls», 0, 1)   ‘открыл книгу
Далее необходимо посчитать кол-во заполненных ячеек в файле Март 2014.xls   sheets(«данные»).range(«A:A»)

Скажите что еще написать, я в этом не оч силен.

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

#4

15.05.2014 20:31:10

Нашел решение, всем спасибо!

Код
ThisWorkbook.Worksheets("данные".Activate 
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate 
k = ActiveCell.Row    'номер последней заполненной строки
 

Scripter

Пользователь

Сообщений: 255
Регистрация: 06.02.2014

#5

16.05.2014 01:48:48

так кол-во заполненных

Код
Msgbox "Кол-во заполненных ячеек в столбце А: " & Worksheetfunction.CountA(Columns(1)) 

так номер последней строки

Код
Msgbox "Номер последней заполненной строки: " & Cells(Rows.Count,1).end(xlup).row 

Изменено: Scripter16.05.2014 08:58:46

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

А если необходимо открыв книгу, посчитать Кол-во заполненных ячеек, предварительно выбрав лист, как использовать Worksheetfunction.CountA(Columns(1))

 

Scripter

Пользователь

Сообщений: 255
Регистрация: 06.02.2014

#7

16.05.2014 17:44:27

Если нужно чтоб при открытии книги срабатывал код, то нужно поместить код в «Эта книга»

Если вам нужно посчитать ВСЕ заполненные (не найти последнюю строку) ячейки на листе:

Скрытый текст

В определенном столбце

Скрытый текст

или

Скрытый текст

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

Скрытый текст

Найти последнюю строку на листе по определенному полю

Скрытый текст

Изменено: Scripter16.05.2014 17:48:46

Подсчет количества ячеек в диапазоне в зависимости от их содержимого методами Count, CountA и CountBlank объекта WorksheetFunction из кода VBA Excel.

Метод WorksheetFunction.Count

Определение

Определение метода Count объекта WorksheetFunction в VBA Excel:

Метод WorksheetFunction.Count подсчитывает в заданном диапазоне (массиве) количество ячеек (элементов массива), содержащих числа, и возвращает значение типа Double.

Синтаксис

Синтаксис метода Count объекта WorksheetFunction:

WorksheetFunction.Count(Arg1, Arg2, ..., Arg30)

Параметры

Параметры метода Count объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.Count позволяет получить количество числовых значений в диапазоне ячеек или в массиве.
  • При подсчете учитываются аргументы, которые являются числами, датами или текстовым представлением чисел.
  • Логические значения учитываются при подсчете только в том случае, если они введены непосредственно в список аргументов.

Метод WorksheetFunction.CountA

Определение

Определение метода CountA объекта WorksheetFunction в VBA Excel:

WorksheetFunction.CountA — это метод, который подсчитывает в заданном диапазоне количество непустых ячеек, и возвращает значение типа Double.

Синтаксис

Синтаксис метода CountA объекта WorksheetFunction:

WorksheetFunction.CountA(Arg1, Arg2, ..., Arg30)

Параметры

Параметры метода CountA объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.CountA позволяет получить количество непустых ячеек в заданном диапазоне.
  • Непустыми являются ячейки, которые содержат любые данные, включая значения ошибок и пустые строки ("").
  • Тесты показывают, что метод WorksheetFunction.CountA в массиве, созданном путем присвоения ему значений диапазона, содержащего пустые ячейки, все равно считает все элементы массива, как содержащие значения.

Метод WorksheetFunction.CountBlank

Определение

Определение метода CountBlank объекта WorksheetFunction в VBA Excel:

WorksheetFunction.CountBlank — это метод, который подсчитывает в заданном диапазоне количество пустых ячеек, и возвращает значение типа Double.

Синтаксис

Синтаксис метода CountBlank объекта WorksheetFunction:

WorksheetFunction.CountBlank(Arg1)

Параметры

Параметры метода CountBlank объекта WorksheetFunction:

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

Примечания

  • Метод WorksheetFunction.CountBlank позволяет получить количество пустых ячеек в заданном диапазоне.
  • Пустыми являются ячейки, которые не содержат никаких данных.
  • Также подсчитываются, как пустые, ячейки с формулами, которые возвращают пустые строки ("").
  • Ячейки с нулевыми значениями в подсчете не участвуют.

Примеры

Таблица для строк кода VBA Excel со ссылками на диапазон "A1:C5", а также с массивом его значений в качестве аргументов:

Примеры с WorksheetFunction.Count

Sub Primer1()

Dim n As Double, a() As Variant

    n = WorksheetFunction.Count(Range(«A1:C5»))

MsgBox n  ‘Результат: 8

    a = Range(«A1:C5»)

    n = WorksheetFunction.Count(a)

MsgBox n  ‘Результат: 8

    n = WorksheetFunction.Count(«раз», «два», «три», 1, 2, 3)

MsgBox n  ‘Результат: 3

    n = WorksheetFunction.Count(«раз», «два», «три», «1», «2», «3», 1, 2, 3)

MsgBox n  ‘Результат: 6

    n = WorksheetFunction.Count(Empty, Empty, 0, 0, «», «»)

MsgBox n  ‘Результат: 4

    n = WorksheetFunction.Count(True, False, «True», «False»)

MsgBox n  ‘Результат: 2

End Sub

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

Примеры с WorksheetFunction.CountA

Sub Primer2()

Dim n As Double, a() As Variant

    n = WorksheetFunction.CountA(Range(«A1:C5»))

MsgBox n  ‘Результат: 13

    a = Range(«A1:C5»)

    n = WorksheetFunction.CountA(a)

MsgBox n  ‘Результат: 15

    n = WorksheetFunction.CountA(«раз», «два», «три», 1, 2, 3)

MsgBox n  ‘Результат: 6

    n = WorksheetFunction.CountA(Empty, Empty, 0, 0, «», «»)

MsgBox n ‘Результат: 6

End Sub

Примеры с WorksheetFunction.CountBlank

Sub Primer3()

Dim n As Double, a As Range

    n = WorksheetFunction.CountBlank(Range(«A1:C5»))

MsgBox n  ‘Результат: 2

    Set a = Range(«A1:C5»)

    n = WorksheetFunction.CountBlank(a)

MsgBox n  ‘Результат: 2

End Sub

Следующая статья по этой теме: VBA Excel. Методы CountIf и CountIfs.


Студворк — интернет-сервис помощи студентам

Доброго дня!
http://rusfolder.com/32188976 — файл.
В табличке есть 4-ый столбик, в котором сайты. Задача в том, чтобы макрос посчитал в этом столбике кол-во заполненных строк, начиная с 10. Причём, если он видит две незаполненных строки подряд или надпись в строке «adserving» — считать перестаёт. Как это можно реализовать?
И ещё вопрос в продолжение. Скажем насчитал он 7 строк заполненных. Как сделать, чтобы после этого, на другом листе он бы написал что-то (скажем слово «да») в ячейке R2C2, а потом в ячейке R2C5, R2C8 и так далее (т.е. через каждые два столбика) 7 раз (т.е. столько же раз, сколько он насчитал строк на прошлом листе?

Безумно благодарен за любую помощь и вообще всем откликнувшимся! Спасибо.

Понравилась статья? Поделить с друзьями:
  • Макрос excel сумма прописью с копейками в excel
  • Макрос excel сумма по строкам
  • Макрос excel столбец в строку в excel
  • Макрос excel создать документ
  • Макрос excel создает таблицу