Как подсчитать в Excel ячейки, содержащие определённый текст и имеющие заданный цвет заливки или шрифта?
Подсчитать количество ячеек, соответствующих одному условию, например содержащих определённый текст или шрифт/Цвет заполнения, довольно просто. Однако знаете ли вы, как подсчитать ячейки по нескольким условиям? Например, подсчитать количество ячеек, содержащих одновременно определённый текст и шрифт/Цвет заполнения. В этой статье приведено решение.
Подсчёт ячеек с определённым текстом и Цвет заполнения с помощью кода VBA
Подсчёт ячеек с определённым текстом и Цвет шрифта с помощью кода VBA
Подсчёт ячеек с определённым текстом и Цвет заполнения с помощью кода VBA
Предположим, у вас есть таблица, подобная той, что показана на скриншоте ниже. Чтобы подсчитать ячейки в столбце B с учётом текста и цвета заливки ячейки E2, используйте приведённый ниже код VBA.

1. Нажмите клавиши Alt+F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. В окне Microsoft Visual Basic for Applications выберите Вставка > Модуль, затем скопируйте приведённый ниже код VBA в окно модуля.
Код VBA: Подсчёт ячеек с определённым текстом и Цвет заполнения
Sub CountFillColorValue()
'Update by Extendoffice 20180702
Dim I As Long
Dim xNum As Long
Dim Rows As Long
Dim xRgD As Range
Dim xRg, xRgS As Range
On Error Resume Next
Set xRg = Range("B2:B9")
Set xRgS = Range("E2")
Set xRgD = Application.InputBox("Please select a cell:", "KuTools for Excel", Selection.Address, , , , , 8)
If xRgD Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xNum = 0
For I = 1 To xRows
If xRg.Offset(I - 1, 0).Interior.ColorIndex = xRgS.Interior.ColorIndex Then
If xRg.Offset(I - 1, 0).Value = xRgS.Value Then
xNum = xNum + 1
End If
End If
Next
xRgD = xNum
End Sub Примечание: B2:B9 — это диапазон, в котором будет выполняться подсчёт ячеек, а ячейка E2 содержит текст и цвет заливки, по которым осуществляется подсчёт. Вы можете изменить их по своему усмотрению.
3. Нажмите клавишу F5, чтобы запустить код. После этого откроется диалоговое окно Kutools для Excel — выберите ячейку для размещения результата и нажмите кнопку ОК. См. скриншот:

Результат подсчёта сразу появится в выбранной ячейке.


Раскройте магию Excel с помощью KUTOOLS AI
- Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
- Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
- Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
- Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
- Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Подсчёт ячеек с определённым текстом и Цвет шрифта с помощью кода VBA
Чтобы подсчитать ячейки в диапазоне B2:B9, учитывая текст и цвет шрифта ячейки E2, выполните следующие действия.

1. Откройте окно Microsoft Visual Basic for Applications, нажав клавиши Alt+F11.
2. В окне Microsoft Visual Basic for Applications выберите Вставка > Модуль, а затем скопируйте приведённый ниже код VBA в окно модуля.
Код VBA: Подсчёт ячеек с определённым текстом и Цвет шрифта
Sub CountFontColorValue()
'Update by Extendoffice 20180702
Dim I As Long
Dim xNum As Long
Dim xRows As Long
Dim xRgD As Range
Dim xRg, xRgS As Range
On Error Resume Next
Set xRg = Range("B2:B9")
Set xRgS = Range("E2")
Set xRgD = Application.InputBox("Please select a cell:", "KuTools for Excel", Selection.Address, , , , , 8)
If xRgD Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xNum = 0
For I = 1 To xRows
If xRg.Offset(I - 1, 0).Font.ColorIndex = xRgS.Font.ColorIndex Then
If xRg.Offset(I - 1, 0).Value = xRgS.Value Then
xNum = xNum + 1
End If
End If
Next
xRgD = xNum
End Sub Примечание: B2:B9 — это диапазон, в котором будет выполняться подсчёт ячеек, а E2 — критерий, по которому он производится. Вы можете изменить их по своему усмотрению.
3. Нажмите клавишу F5, чтобы запустить код. Затем появится диалоговое окно Kutools для Excel, выберите ячейку для размещения результата и нажмите кнопку ОК. См. скриншот:

Вы получите результат, как показано на скриншоте ниже:

См. также:
- Как подсчитать количество ячеек между двумя заданными значениями или датами в Excel?
- Как подсчитать ячейки, содержащие определённый текст, в выделенном диапазоне Excel?
- Как подсчитать в Excel ячейки, содержащие текст или его часть?
- Как подсчитать количество определённых (конкретных) слов в ячейке или диапазоне ячеек Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек