Skip to content
В этой статье вы узнаете, как посчитать ячейки по цвету и получить сумму по цвету ячеек в Excel. Эти решения работают как для окрашенных вручную, так и с условным форматированием.
Если вы активно используете различные цвета заливки и шрифта на листах Excel, чтобы различать различные типы значений, вам может потребоваться узнать, сколько ячеек выделено определенным цветом. Если значения ваших ячеек являются числами, вы можете автоматически вычислить сумму ячеек, закрашенных одним цветом, например, сумму всех красных ячеек.
Как все мы знаем, Microsoft Excel предоставляет множество формул для разных целей, и было бы логично предположить, что для подсчета ячеек по цвету есть и такие. Но, к сожалению, нет стандартной функции, которая позволяла бы суммировать по цветам или считать по цветам в Excel.
Помимо использования сторонних надстроек, есть только одно возможное решение — использование пользовательских функций. Если вы очень мало знаете об этой технологии или никогда раньше не слышали этот термин, не пугайтесь, вам не придется писать код самостоятельно. Здесь вы найдете готовое решение, и все, что вам нужно сделать, это скопировать / вставить его в свою книгу.
Функции и макросы, которые мы рассмотрим в этой статье, помогут нам сделать следующее:
- Как посчитать по цвету и суммировать по цвету на листе Excel
- Как суммировать по цвету и сосчитать по цвету во всей рабочей книге
- Пользовательские функции для получения цвета ячейки, цвета шрифта и цветового кода
- Как считать по цвету и суммировать ячейки, окрашенные с использованием условного форматирования
- Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel
Как посчитать по цвету и суммировать по цвету на листе Excel
Предположим, у вас есть таблица со списком заказов, в которой ячейки в столбце «Количество» окрашены в зависимости от их значения в колонке «Выполнение» и даты: ячейки с выполняемыми заказами сроком до 30 дней от текущей даты — желтые, уже выполненные — зеленые, а просроченные заказы — красные.
Теперь нам нужно автоматически подсчитать ячейки определенного цвета, т.е. посчитать количество красных, зеленых и желтых ячеек в таблице. Как я объяснил выше, прямого решения этой задачи при помощи стандартных формул Excel не существует. Но, к счастью, есть код VBA для Excel. Выполните 5 быстрых шагов ниже, и вы узнаете число и сумму ваших цветных ячеек всего за несколько минут.
- Откройте книгу Excel и нажмите
Alt+F11
, чтобы открыть редактор Visual Basic (VBE). - Щелкните правой кнопкой мыши имя своей книги в разделе «Project–VBAProject» в правой части экрана, а затем выберите «Вставить» > «Модуль» в контекстном меню.
- Добавьте в вашу рабочую книгу следующий код:
Function GetCellColor(xlRange As Range)
Dim indRow, indColumn As Long
Dim arResults()
Dim colorVal As Variant
Application.Volatile
If xlRange Is Nothing Then
Set xlRange = Application.ThisCell
End If
If xlRange.Count > 1 Then
ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
For indRow = 1 To xlRange.Rows.Count
For indColumn = 1 To xlRange.Columns.Count
colorVal = xlRange(indRow, indColumn).Interior.Color
arResults(indRow, indColumn) = (colorVal Mod 256) & ", " & ((colorVal 256) Mod 256) & ", " & (colorVal 65536)
Next
Next
GetCellColor = arResults
Else
colorVal = xlRange.Cells(1, 1).Interior.Color
GetCellColor = (colorVal Mod 256) & ", " & ((colorVal 256) Mod 256) & ", " & (colorVal 65536)
End If
End Function
Function GetCellFontColor(xlRange As Range)
Dim indRow, indColumn As Long
Dim arResults()
Dim colorVal As Variant
Application.Volatile
If xlRange Is Nothing Then
Set xlRange = Application.ThisCell
End If
If xlRange.Count > 1 Then
ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
For indRow = 1 To xlRange.Rows.Count
For indColumn = 1 To xlRange.Columns.Count
colorVal = xlRange(indRow, indColumn).Font.Color
arResults(indRow, indColumn) = (colorVal Mod 256) & ", " & ((colorVal 256) Mod 256) & ", " & (colorVal 65536)
Next
Next
GetCellFontColor = arResults
Else
colorVal = xlRange.Cells(1, 1).Font.Color
GetCellFontColor = (colorVal Mod 256) & ", " & ((colorVal 256) Mod 256) & ", " & (colorVal 65536)
End If
End Function
Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Long
Application.Volatile
cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then
cntRes = cntRes + 1
End If
Next cellCurrent
CountCellsByColor = cntRes
End Function
Function SumCellsByColor(rData As Range, cellRefColor As Range)
Dim indRefColor As Long
Dim cellCurrent As Range
Dim sumRes
Application.Volatile
sumRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then
sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
End If
Next cellCurrent
SumCellsByColor = sumRes
End Function
Function CountCellsByFontColor(rData As Range, cellRefColor As Range) As Long
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Long
Application.Volatile
cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Font.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Font.Color Then
cntRes = cntRes + 1
End If
Next cellCurrent
CountCellsByFontColor = cntRes
End Function
Function SumCellsByFontColor(rData As Range, cellRefColor As Range)
Dim indRefColor As Long
Dim cellCurrent As Range
Dim sumRes
Application.Volatile
sumRes = 0
indRefColor = cellRefColor.Cells(1, 1).Font.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Font.Color Then
sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
End If
Next cellCurrent
SumCellsByFontColor = sumRes
End Function
- Сохраните свою книгу как «Книга Excel с поддержкой макросов (.xlsm)».
Если вы новичок и вам сложно работать с VBA, вы можете найти подробные пошаговые инструкции и несколько полезных советов в этом руководстве: Как вставить и запустить код VBA в Excel .
- Теперь, когда вся подготовительная работа сделана, выберите ячейку, в которой вы хотите получить результат, и введите в нее только что записанную нами пользовательскую функцию CountCellsByColor:
CountCellsByColor( диапазон ; код цвета )
здесь и далее эти аргументы означают:
диапазон – диапазон ячеек, в которых вы хотите произвести подсчеты по цвету,
код цвета – адрес ячейки-образца, цвет фона или шрифта которой соответствуют искомому цвету фона или шрифта.
В этом примере мы используем формулу, =CountCellsByColor(D2:D21;A24), где D2:D21— это диапазон, в котором вы хотите посчитать количество ячеек с цветом, а A24 — это ячейка, закрашенная нужным нам цветом, красным в нашем случае.
Аналогичным образом вы записываете формулы для других цветов, которые хотите посчитать, желтого и зеленого, в нашей таблице.
Если у вас есть числовые данные в цветных ячейках (например, столбец Количество в нашей таблице), вы можете сложить значения на основе определенного цвета, используя аналогичную функцию SumCellsByColor:
SumCellsByColor( диапазон ; код цвета)
Как показано на скриншоте выше, мы использовали формулу суммы по цвету, =SumCellsByColor(D2:D21;A24), где D2:D21 — это диапазон, а A24 — ячейка с образцом цвета.
Аналогичным образом вы можете посчитать выделенные цветом ячейки и суммировать значения таких ячеек по цвету шрифта, используя функции CountCellsByFontColor и SumCellsByFontColor соответственно.
На скриншоте ниже вы видите, как можно подсчитать количество значений, написанных красным цветом.
=CountCellsByFontColor(D2:D21;A24)
Аналогично подсчитываем сумму чисел, имеющих определённый цвет шрифта, при помощи формулы:
=SumCellsByFontColor(D2:D21;A24)
Примечание. Если после применения вышеупомянутого кода VBA вам потребуется раскрасить еще несколько ячеек вручную, то сумма и количество окрашенных ячеек не будут пересчитаны автоматически, чтобы отразить произошедшие изменения. Пожалуйста, не сердитесь на нас, это не ошибка кода
На самом деле, это нормальное поведение всех макросов Excel, скриптов VBA и пользовательских функций. Дело в том, что все подобные функции вызываются только при изменении данных рабочего листа. Но Excel не воспринимает изменение цвета шрифта или цвета ячейки как изменение данных.
Итак, после раскрашивания ячеек вручную, просто поместите курсор в любую ячейку и нажмите F2
, а затем Enter
. То есть, сделайте вид, что меняете содержимое какой-либо ячейки. Сумма и количество в пользовательской функции тут же будут обновлены. То же самое относится и к другим макросам, которые считают по цвету.
Как суммировать по цвету и сосчитать по цвету во всей рабочей книге
Приведенная ниже пользовательская функция подсчитывает и находит сумму ячеек по цвету заливки на всех листах рабочей книги. Итак, вот ее код:
Function WbkCountCellsByColor(cellRefColor As Range)
Dim vWbkRes
Dim wshCurrent As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
vWbkRes = 0
For Each wshCurrent In Worksheets
wshCurrent.Activate
vWbkRes = vWbkRes + CountCellsByColor(wshCurrent.UsedRange, cellRefColor)
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
WbkCountCellsByColor = vWbkRes
End Function
Function WbkSumCellsByColor(cellRefColor As Range)
Dim vWbkRes
Dim wshCurrent As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
vWbkRes = 0
For Each wshCurrent In Worksheets
wshCurrent.Activate
vWbkRes = vWbkRes + SumCellsByColor(wshCurrent.UsedRange, cellRefColor)
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
WbkSumCellsByColor = vWbkRes
End Function
Вы используете этот макрос так же, как и предыдущий код, и выводите количество и сумму цветных ячеек с помощью следующих формул =WbkCountCellsByColor() и =WbkSumCellsByColor() соответственно.
Единственный аргумент, который нужен этим функциям, это адрес ячейки с нужным цветом.
Просто введите любую из этих формул в любую пустую ячейку на любом листе без указания диапазона, используйте в скобках адрес ячейки нужного цвета, например
=WbkSumCellsByColor(A1)
Формула отобразит сумму всех ячеек, закрашенных тем же цветом, на всех листах в вашей рабочей книге.
Пользовательские функции для получения цвета ячейки, цвета шрифта и цветового кода
Здесь вы найдете перечень всех функций, которые мы использовали ранее, а также несколько новых, которые извлекают цветовые коды.
Зачем они нам? Но ведь если ваша таблица окрашена не совсем стандартными цветами (например, светло-зеленым), то подобрать образец цвета для функций, которые мы рассматривали выше, будет весьма затруднительно. Если же у вас будет код нужного цвета, вы сможете использовать его при форматировании ячейки-образца, чтобы получить точное соответствие цвета.
Если вы вдруг забыли, как можно вручную раскрасить ячейку в нужный цвет, то напомню. Жмем Ctrl+1
, затем Заливка – Другие цвета – Спектр – RGB формат. Вот туда и вставляем полученный код. Точное соответствие цвета будет обеспечено.
Примечание. Помните, что все эти формулы будут работать только в том случае, если вы добавили пользовательскую функцию в книгу Excel, как показано ранее в этой статье.
Функции для подсчета по цвету:
- CountCellsByColor(диапазон; код цвета) – считает ячейки с заданным цветом фона.
В приведенном выше примере мы использовали следующую формулу для подсчета ячеек по цвету
= CountCellsByColor (F2: F14, A17)
где F2: F14 — выбранный диапазон, а A17 — ячейка с нужным цветом фона. Вы можете использовать все остальные формулы, перечисленные ниже, аналогичным образом.
- CountCellsByFontColor(диапазон; код цвета) – подсчитывает ячейки с указанным цветом шрифта.
Формулы для суммирования по цветам:
- SumCellsByColor(диапазон; код цвета) – вычисляет сумму ячеек с определенным цветом фона.
- SumCellsByFontColor(диапазон; код цвета) – вычисляет сумму ячеек с определенным цветом шрифта.
Функции для получения кода цвета ячейки:
- GetCellFontColor(ячейка) – возвращает цветовой код цвета шрифта указанной ячейки.
- GetCellColor(ячейка) – возвращает цветовой код цвета фона указанной ячейки.
Вот примеры использования функции цвета ячейки:
А на этим скриншоте мы получаем цветовой RGB код шрифта.
Как считать по цвету и суммировать ячейки, окрашенные с использованием условного форматирования
Если вы применили условное форматирование к ячейкам на основе их значений и теперь хотите посчитать эти ячейки по цвету или просуммировать значения в закрашенных ячейках, то у меня плохие новости — не существует универсальной определяемой пользователем функции, которая бы суммировала по цвету или пересчитала закрашенные условным форматированием ячейки и вывела бы полученные числа прямо в указанные клетки таблицы. По крайней мере мне о такой функции не известно, увы
Конечно, вы можете найти в Интернете тонны кода VBA, который пытается это сделать, но все эти коды (по крайней мере, примеры, с которыми я сталкивался), не обрабатывают условное форматирование, такое как «Форматировать все ячейки на основе их значений», «Форматировать только наибольшие или наименьшие значения», «Форматировать только значения выше или ниже среднего», «Форматировать только уникальные или повторяющиеся значения». Кроме того, почти все эти коды VBA имеют ряд особенностей и ограничений, из-за которых они могут работать некорректно с определенными книгами или типами данных. В общем, вы можете испытать удачу и поискать в Google идеальное решение, и если вы его найдете, пожалуйста, вернитесь и опубликуйте свое открытие здесь!
Но если пользовательская функция не может выполнить эту задачу, то макрос VBA вполне может справиться. О различиях пользовательских функций и макросов VBA вы можете более подробно прочитать в этой статье.
Приведенный ниже макрос VBA преодолевает вышеупомянутые ограничения и работает в электронных таблицах Microsoft Excel со всеми типами условного форматирования. Он отображает количество выделенных определенным цветом ячеек и сумму значений в этих ячейках, независимо от того, какой тип условного форматирования используется на листе.
Sub SumCountByConditionalFormat()
Dim indRefColor As Long
Dim cellCurrent As Object
Dim cntRes As Long
Dim sumRes
Dim cntCells As Long
Dim indCurCell As Long
cntRes = 0
sumRes = 0
Set cellCurrent = Selection
adr = Mid(cellCurrent.Address, InStr(cellCurrent.Address, ",") + 1, 20)
adr1 = Left(adr, 4)
adr2 = Left(cellCurrent.Address, InStr(cellCurrent.Address, ",") - 1)
Range(adr2).Activate
indRefColor = ActiveCell.DisplayFormat.Interior.Color
Range(adr).Activate
cntCells = Selection.CountLarge
Range(adr).Select
Range(adr).Activate
Set cellCurrent = Selection
For indCurCell = 1 To (cntCells - 1)
If indRefColor = cellCurrent(indCurCell).DisplayFormat.Interior.Color Then
cntRes = cntRes + 1
sumRes = WorksheetFunction.Sum(cellCurrent(indCurCell), sumRes)
End If
Next
MsgBox "Count=" & cntRes & vbCrLf & "Sum= " & sumRes & vbCrLf & vbCrLf & _
"Color=" & Left("000000", 6 - Len(Hex(indRefColor))) & _
Hex(indRefColor) & vbCrLf, , "Count & Sum by Conditional Format color"
End Sub
Как использовать этот макрос для подсчета цветных ячеек и суммирования их значений.
Опишем процесс пошагово:
- Добавьте приведенный выше код на лист, как описано в первом параграфе статьи .
- Выберите ячейку с нужным цветом.
- Нажмите и удерживайте
Ctrl
. - Выберите диапазон, в котором вы хотите подсчитать цветные ячейки и/или суммировать по цвету, если у вас есть числовые данные.
- Отпустите клавишу
Ctrl
. - НажНажмите комбинацию
Alt+F8
, чтобы открыть список макросов в вашей книге. - Выберите макрос SumCountByConditionalFormat и нажмите «Выполнить» .
Покажем эти действия на скриншотах. Используем пример данных, с которыми мы уже работали в первых параграфах этой статьи. Только теперь они окрашены в столбце В при помощи условного форматирования.
Сначала выбираем ячейку D5, поскольку хотим подсчитать ячейки красного цвета с просроченными заказами.
Затем дополнительно, удерживая Ctrl
, выделяем диапазон ячеек в столбце D, по которым нужно выполнить подсчет ячеек определенного цвета.
Выполняем макрос, как показано на скриншоте ниже.
В результате вы увидите следующее сообщение с результатами:
Для этого примера мы выбрали столбец «Количество» и получили следующие цифры:
- Count — это количество ячеек определенного цвета, красного в нашем случае, который отмечает ячейки «Просрочен».
- Sum — это сумма значений всех красных ячеек в выбранной колонке, т.е. общее количество «Просроченных» заказов.
- Color — это шестнадцатеричный код цвета выбранной ячейки, в нашем случае D5.
Таким образом мы можем посчитать сумму и количество по цвету ячеек с условным форматированием.
Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel
Я могу рекомендовать вам надстройку для Excel, которая бы считала и суммировала ячейки по указанному вами цвету или по всем цветам в выбранном диапазоне.
При этом не имеет значения, как установлены эти цвета – прямым форматированием ячейки либо при помощи условного форматирования.
Позвольте представить вам наш совершенно новый инструмент — «Счет и сумма по цвету» для Excel. Он имеет два варианта подсчета — «Один цвет» и «Все цвета», как видно на скриншоте ниже.
Подсчет и суммирование по одному цвету.
Вы нажимаете кнопку « Один цвет » на ленте, и в левой части рабочего листа открывается панель « Подсчет и сумма по цвету» . На панели вы выбираете:
- Диапазон, в котором вы хотите подсчитать и суммировать ячейки
- Любую ячейку с нужным цветом как образец
- Вариант — цвет фона или шрифта
После этого нажмите « Рассчитать » и сразу же увидите результат в нижней части панели! Помимо подсчета и суммы, надстройка вычисляет среднее значение и находит максимальное и минимальное значения. Никаких макросов, никаких формул, никакой боли
Обратите внимание, что подсчет возможен как по цвету фона, так и по цвету шрифта.
Подсчет и суммирование ячеек по всем цветам в выбранном диапазоне
Опция «Все цвета» работает в основном так же, за исключением того, что вам не нужно выбирать цвет. В разделе «Result for ..» вы можете выбрать любой из параметров: Количество, Сумма, Среднее, Максимальное или Минимальное значение и другие.
Если вы хотите скопировать результаты на свой рабочий лист, нажмите кнопку «Paste All…» в нижней части панели .
В настоящее время надстройка доступна как часть Ultimate Suite for Excel . Это коллекция отличных инструментов, специально разработанных для решения самых утомительных, кропотливых и подверженных ошибкам задач в Excel.
В дополнение к надстройке «Подсчет и суммирование по цвету», Ultimate Suite включает более 70 инструментов, которые помогут вам объединить данные из разных листов, удалить дубликаты, сравнить листы на совпадения и различия и многое другое.
Надеюсь, теперь сумма по цвету и подсчет ячеек по цвету для вас не будут сложными. Если же будут вопросы – не стесняйтесь задавать их в комментариях.
Просуммируем значения ячеек в зависимости от цвета их заливки. Здесь же покажем, как подсчитать такие ячейки.
Функции для суммирования значений по цвету ячеек в EXCEL не существует (по крайней мере, в EXCEL 2016 и в более ранних версиях). Вероятно, подавляющему большинству пользователей это не требуется.
Пусть дан диапазон ячеек в столбце А. Пользователь выделил цветом ячейки, чтобы разбить значения по группам.
Необходимо сложить значения ячеек в зависимости от цвета фона. Основная задача: Как нам «объяснить» функции сложения, что нужно складывать значения, например, только зеленых ячеек?
Это можно сделать разными способами, приведем 3 из них: с помощью
Автофильтра
, Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ() и VBA.
С помощью Автофильтра (ручной метод)
-
Добавьте справа еще один столбец с заголовком
Код цвета
. -
Выделите заголовки и нажмите CTRL+SHIFT+L, т.е. вызовите
Автофильтр
(подробнее здесь
)
-
Вызовите меню
Автофильтра
, выберите зеленый цвет
- Будут отображены только строки с зелеными ячейками
- Введите напротив каждого «зеленого» значения число 1
- Сделайте тоже для всех цветов
Введите формулу
=СУММЕСЛИ(B7:B17;E7;A7:A17)
как показано в
файле примера (лист Фильтр)
.
Для
подсчета значений
используйте функцию
СЧЕТЕСЛИ()
.
С помощью Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ()
Сразу предупрежу, что начинающему пользователю EXCEL будет сложно разобраться с этим и следующим разделом.
Идея заключается в том, чтобы автоматически вывести в соседнем столбце числовой код фона ячейки (в MS EXCEL все цвета имеют соответствующий числовой код). Для этого нам потребуется функция, которая может вернуть этот код. Ни одна обычная функция этого не умеет. Используем макрофункцию ПОЛУЧИТЬ.ЯЧЕЙКУ(), которая возвращает код цвета заливки ячейки (она может много, но нам потребуется только это ее свойство).
Примечание:
Макрофункции — это набор функций к EXCEL 4-й версии, которые нельзя напрямую использовать на листе EXCEL современных версий, а можно использовать только в качестве
Именованной формулы
. Макрофункции — промежуточный вариант между обычными функциями и функциями VBA. Для работы с этими функциями требуется сохранить файл в формате с макросами *.xlsm
-
Сделайте активной ячейку
В7
(это важно, т.к. мы будем использоватьотносительную адресацию
в формуле)
-
В
Диспетчере имен
введите формулу =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;Макрофункция!A7)
- Назовите ее Цвет
- Закройте Диспетчер имен
-
Введите в ячейку
В7
формулу =Цвет и скопируйте ее вниз.
Сложение значений организовано так же как и в предыдущем разделе.
Макрофункция работает кривовато:
-
если вы измените цвет ячейки, то макрофункция не обновит значения кода (для этого нужно опять скопировать формулу из
В7
вниз или выделить ячейку, нажать клавишу
F2
и затем
ENTER
) -
функция возвращает только 56 цветов (так называемая палитра EXCEL), т.е. если цвета близки, например, зеленый и светло зеленый, то коды этих цветов могут совпасть. Подробнее об этом
см. лист файла примера Colors
. Как следствие, будут сложены значения из ячеек с разными цветами.
С помощью VBA
В
файле примера на листе VBA
приведено решение с помощью VBA. Решений может быть множество:
- можно создать кнопку, после нажатия она будет вводить код цвета в соседний столбец (реализован этот вариант).
- можно написать пользовательскую функцию, которая будет автоматически обновлять код цвета при изменении цвета ячейки (реализовать несколько сложнее);
- можно написать программу, которая будет анализировать диапазон цветных ячеек, определять количество различных цветов, вычислять в отдельном диапазоне суммы для каждого цвета (реализовать не сложно, но у каждого пользователя свои требования: ячейки с суммами должны быть в определенном месте, необходимо учесть возможность дополнения диапазона новыми значениями и пр.).
Количество и сумма ячеек по цвету в Excel
Разберем простые способы как посчитать количество, и как суммировать ячейки по цвету в Excel.
Мы часто при работе в Excel окрашиваем ячейки различными цветами для лучшей визуализации данных.
Однако, когда возникает необходимость произвести какие-либо расчеты с обработанными данными мы сталкиваемся с трудностями в связи с малыми возможностями стандартных средств Excel.
Рассмотрим две простые функции, которые дают возможность суммировать ячейки, и посчитать количество выделенных цветом ячеек.
Суммирование ячеек по цвету
Перейдем в редактор VBA, для этого в панели вкладок выбираем Разработчик -> Visual Basic (или нажимаем комбинацию клавиш Alt + F11).
Создаем новый модуль и добавляем в него следующий код (напротив каждой строчки дается пояснение к коду):
Функция СУММЦВЕТ содержит два аргумента:
- MyRange(обязательный аргумент) — диапазон ячеек для суммирования;
- MyCell(обязательный аргумент) — ячейка, по цвету заливки которой рассчитывается сумма.
Функция СУММЦВЕТ теперь будет определяться при вводе формулы в ячейку, переходим из редактора на лист Excel и воспользуемся новой функцией:
При этом, если выбранная ячейка не имеет заливки, то функция суммы ячеек по выбранному цвету также будет работать.
Подсчет количества ячеек по цвету
Чтобы посчитать ячейки одного цвета достаточно немного видоизменить функцию для подсчета суммы — вместо прибавления значения текущей ячейки (Sum = Sum + cell.Value) мы добавляем 1 (Sum = Sum + 1).
При работе с данными функциями обратите внимание на два важных момента:
- Если цвет выбранной ячейки определяется с помощью условного форматирования (т.е. цвет ячейки определяется не за счет заливки), то рассмотренные функции не сработают.
- В случае изменения раскраски ячейки в Excel формулы автоматически не пересчитываются, так как не изменяется содержимое ячейки, поэтому для корректного расчета необходимо произвести пересчет формул. Комбинация клавиш Shift + F9 пересчитает формулы на активном листе (F9 — для всей книги).
Сумма ячеек по цвету
Помечать ячейки цветом, используя заливку или цвет шрифта, очень удобно и наглядно. Если вы не дальтоник, конечно 🙂 Трудности возникают тогда, когда по такой раскрашенной таблице возникает необходимость сделать отчет. И если фильтровать и сортировать по цвету Excel в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложную пользовательскую функцию на Visual Basic, которая позволит нам суммировать ячейки с определенным цветом.
Откройте редактор Visual Basic:
- В Excel 2003 и старше для этого нужно выбрать в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor)
- В новых версиях Excel 2007-2013 перейти на вкладку Разработчик (Developer) и нажать кнопку Visual Basic. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon)
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст вот такой функции:
Если теперь вернуться в Excel, то в Мастере функций (Вставка — Функция) в появившейся там категории Определенные пользователем (User Defined) можно найти нашу функцию и вставить ее на лист:
У нее два аргумента:
- DataRange — диапазон раскрашенных ячеек с числами
- ColorSample — ячейка, цвет которой принимается как образец для суммирования
Цвет шрифта
Легко изменить нашу функцию, чтобы она учитывала не цвет заливки фона, а цвет шрифта ячейки. Для этого в строке 6 просто замените свойство Interior на Font в обеих частях выражения.
Количество вместо суммы
Если вам нужно подсчитывать не сумму покрашенных определенным цветом ячеек, а всего лишь их количество, то наша функция будет еще проще. Замените в ней 7-ю строку на:
Нюансы пересчета
К сожалению изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением ее содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма по нашей функции пересчитываться не будет.
Полностью решить эту проблему невозможно, но можно ее существенно облегчить. Для этого в третьей строке нашей функции используется команда Application.Volatile True. Она заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9).
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго 🙂
СчетЯчеек_Заливка
Данная функция является частью надстройки MulTEx
- Описание, установка, удаление и обновление
- Полный список команд и функций MulTEx
- Часто задаваемые вопросы по MulTEx
Скачать MulTEx
Подсчет ячеек по цвету заливки
Функция подсчитывает количество ячеек, заливка которых имеет определенный цвет. Может пригодиться, если ведется учет каких-либо соревнований и каждое место в туре имеет свой цвет ячейки. После заполнения такая таблица может и выглядит очень наглядно, но подсчитать количество первых мест, вторых, третьих становится большой проблемой, ведь в Excel до сих пор нет функций, способных суммировать/подсчитывать ячейки по цвету.
Вызов команды через стандартный диалог:
Мастер функций—Категория «MulTEx»— СчетЯчеек_Заливка
Вызов с панели MulTEx:
Сумма/Поиск/Функции — Математические — СчетЯчеек_Заливка
Синтаксис:
=СчетЯчеек_Заливка( $E$2:$E$20 ; $E$7 ; I13 ; $A$2:$A$20 )
ДиапазонСчета( $E$2:$E$20 ) — диапазон значений для подсчета. Можно указать несколько столбцов. Столбец с критерием(если планируется считать еще и по критерию) не обязательно должен входит в диапазон.
ЯчейкаОбразец( $E$7 ) — ячейка-образец с цветом заливки. Ячейки с этим цветом будут подсчитаны.
Критерий( I13 ) — необязательный аргумент. Если указан, то подсчитываются ячейки с указанным критерием и цветом заливки. Допускается применение в критерии символов подстановки — «*» и «?» . Например, для подсчета только ячеек, в которых содержится слово «мир» необходимо указать в качестве критерия — «*мир*» . Если необходимо посчитать количество непустых ячеек с указанным цветом заливки, то можно указать критерий: «*?*» . Если не указан, то подсчитываются все ячейки с указанным цветом заливки.
Так же данный аргумент может принимать в качестве критерия символы сравнения ( , =, <>, ):
- «>0» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше нуля;
- «>=2» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше или равно двум;
- » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше нуля;
- » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше или равно 60;
- «<>0″ — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не равно нулю;
- «<>» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не пустые;
Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением: «<>«&D$1
ДиапазонКритерия( $A$2:$A$20 ) — Необязательный аргумент. Указывается диапазон, в котором следует искать критерий(если критерий указан). ДиапазонКритерия должен быть равен по количеству ячеек ДиапазонуСчета. Если ДиапазонКритерия не указан, то критерий просматривается в ДиапазонеСчета.
ИспУФ() — Необязательный аргумент. Допускается указание логических значений ИСТИНА(TRUE) или ЛОЖЬ(FALSE). По умолчанию принимает значение ИСТИНА. Если указан как ИСТИНА, то функция будет подсчитывать ячейки с учетом примененного к ним условного форматирования. Если указан как ЛОЖЬ, то функция будет подсчитывать ячейки без учета примененного условного форматирования, т.е. даже если условное форматирование применено и ячейка окрашена с его помощью, а реальный цвет заливки не соответствует цвету ЯчейкиОбразца — то она не будет подсчитана.
Функция подсчитывает любые ячейки, заливка которых равна заливке ячейки-образца. Даже если ячейка будет пустая, но заливка будет равна указанной — ячейка будет подсчитана. Чтобы подсчитать только заполненные ячейки в качестве критерия следует указать — «*?*» , а ДиапазонКритерия не указывать.
Важно: Функция не вычисляется при изменении цвета заливки. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2—Enter. Либо нажать сочетания клавиш Shift+F9(пересчет функций активного листа) или клавишу F9(пересчет функций всей книги)
Примечание: данная функция будет корректно работать даже при примененном к ячейке Условном форматировании. Однако если в ячейке/диапазоне присутствуют условия, формат для которых задан при помощи шкал, градиентов, гистограмм и значков — функция может вернуть некорректный результат. Связано это с тем, что Excel не предоставляет доступ к данным типам УФ извне.
Как посчитать количество и сумму ячеек по цвету в Excel 2010 и 2013
Из этой статьи Вы узнаете, как в Excel посчитать количество и сумму ячеек определенного цвета. Этот способ работает как для ячеек, раскрашенных вручную, так и для ячеек с правилами условного форматирования. Кроме того, Вы научитесь настраивать фильтр по нескольким цветам в Excel 2010 и 2013.
Если Вы активно используете разнообразные заливки и цвет шрифта на листах Excel, чтобы выделять различные типы ячеек или значений, то, скорее всего, захотите узнать, сколько ячеек выделено определённым цветом. Если же в ячейках хранятся числа, то, вероятно, Вы захотите вычислить сумму всех ячеек с одинаковой заливкой, например, сумму всех красных ячеек.
Как известно, Microsoft Excel предоставляет набор функций для различных целей, и логично предположить, что существуют формулы для подсчёта ячеек по цвету. Но, к сожалению, не существует формулы, которая позволила бы на обычном листе Excel суммировать или считать по цвету.
Если не использовать сторонние надстройки, существует только одно решение – создать пользовательскую функцию (UDF). Если Вы мало знаете об этой технологии или вообще никогда не слышали этого термина, не пугайтесь, Вам не придётся писать код самостоятельно. Здесь Вы найдёте отличный готовый код (написанный нашим гуру Excel), и всё, что Вам потребуется сделать – это скопировать его и вставить в свою рабочую книгу.
Как считать и суммировать по цвету на листе Excel
Предположим, у Вас есть таблица заказов компании, в которой ячейки в столбце Delivery раскрашены в зависимости от их значений: Due in X Days – оранжевые, Delivered – зелёные, Past Due – красные.
Теперь мы хотим автоматически сосчитать количество ячеек по их цвету, то есть сосчитать количество красных, зелёных и оранжевых ячеек на листе. Как я уже сказал выше, прямого решения этой задачи не существует. Но, к счастью, в нашей команде есть очень умелые и знающие Excel гуру, и один из них написал безупречный код для Excel 2010 и 2013. Итак, выполните 5 простых шагов, описанных далее, и через несколько минут Вы узнаете количество и сумму ячеек нужного цвета.
- Откройте книгу Excel и нажмите Alt+F11, чтобы запустить редактор Visual Basic for Applications (VBA).
- Правой кнопкой мыши кликните по имени Вашей рабочей книги в области Project – VBAProject, которая находится в левой части экрана, далее в появившемся контекстном меню нажмите Insert >Module.
- Вставьте на свой лист вот такой код:
- Сохраните рабочую книгу Excel в формате .xlsm (Книга Excel с поддержкой макросов).Если Вы не слишком уверенно чувствуете себя с VBA, то посмотрите подробную пошаговую инструкцию и массу полезных советов в учебнике Как вставить и запустить код VBA в Excel.
- Когда все закулисные действия будут выполнены, выберите ячейки, в которые нужно вставить результат, и введите в них функцию CountCellsByColor:
CountCellsByColor( диапазон , код_цвета )
В этом примере мы используем формулу =CountCellsByColor(F2:F14,A17), где F2:F14 – это диапазон, содержащий раскрашенные ячейки, которые Вы хотите посчитать. Ячейка A17 – содержит определённый цвет заливки, в нашем случае красный.
Точно таким же образом Вы записываете формулу для других цветов, которые требуется посчитать в таблице (жёлтый и зелёный).
Если в раскрашенных ячейках содержатся численные данные (например, столбец Qty. в нашей таблице), Вы можете суммировать значения на основе выбранного цвета ячейки, используя аналогичную функцию SumCellsByColor:
SumCellsByColor( диапазон , код_цвета )
Как показано на снимке экрана ниже, мы использовали формулу:
где D2:D14 – диапазон, A17 – ячейка с образцом цвета.
Таким же образом Вы можете посчитать и просуммировать ячейки по цвету шрифта при помощи функций CountCellsByFontColor и SumCellsByFontColor соответственно.
Замечание: Если после применения выше описанного кода VBA Вам вдруг потребуется раскрасить ещё несколько ячеек вручную, сумма и количество ячеек не будут пересчитаны автоматически после этих изменений. Не ругайте нас, это не погрешности кода
На самом деле, это нормальное поведение макросов в Excel, скриптов VBA и пользовательских функций (UDF). Дело в том, что все подобные функции вызываются только изменением данных на листе, но Excel не расценивает изменение цвета шрифта или заливки ячейки как изменение данных. Поэтому, после изменения цвета ячеек вручную, просто поставьте курсор на любую ячейку и кликните F2, а затем Enter, сумма и количество после этого обновятся. Так нужно сделать, работая с любым макросом, который Вы найдёте далее в этой статье.
Считаем сумму и количество ячеек по цвету во всей книге
Представленный ниже скрипт Visual Basic был написан в ответ на один из комментариев читателей (также нашим гуру Excel) и выполняет именно те действия, которые упомянул автор комментария, а именно считает количество и сумму ячеек определённого цвета на всех листах данной книги. Итак, вот этот код:
Добавьте этот макрос точно также, как и предыдущий код. Чтобы получить количество и сумму цветных ячеек используйте вот такие формулы:
Просто введите одну из этих формул в любую пустую ячейку на любом листе Excel. Диапазон указывать не нужно, но необходимо в скобках указать любую ячейку с заливкой нужного цвета, например, =WbkSumCellsByColor(A1), и формула вернет сумму всех ячеек в книге, окрашенных в этот же цвет.
Пользовательские функции для определения кодов цвета заливки ячеек и цвета шрифта
Здесь Вы найдёте самые важные моменты по всем функциям, использованным нами в этом примере, а также пару новых функций, которые определяют коды цветов.
Замечание: Пожалуйста, помните, что все эти формулы будут работать, если Вы уже добавили в свою рабочую книгу Excel пользовательскую функцию, как было показано ранее в этой статье.
Функции, которые считают количество по цвету:
- CountCellsByColor( диапазон , код_цвета ) – считает ячейки с заданным цветом заливки.В примере, рассмотренном выше, мы использовали вот такую формулу для подсчёта количества ячеек по их цвету:
где F2:F14 – это выбранный диапазон, A17 – это ячейка с нужным цветом заливки.
Все перечисленные далее формулы работают по такому же принципу.
Функции, которые суммируют значения по цвету ячейки:
- SumCellsByColor( диапазон , код_цвета ) – вычисляет сумму ячеек с заданным цветом заливки.
- SumCellsByFontColor( диапазон , код_цвета ) – вычисляет сумму ячеек с заданным цветом шрифта.
Функции, которые возвращают код цвета:
- GetCellFontColor( ячейка ) – возвращает код цвета шрифта в выбранной ячейке.
- GetCellColor( ячейка ) – возвращает код цвета заливки в выбранной ячейке.
Итак, посчитать количество ячеек по их цвету и вычислить сумму значений в раскрашенных ячейках оказалось совсем не сложно, не так ли? Но что если Вы не раскрашиваете ячейки вручную, а предпочитаете использовать условное форматирование, как мы делали это в статьях Как изменить цвет заливки ячеек и Как изменить цвет заливки строки, основываясь на значении ячейки?
Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования
Если Вы применили условное форматирование, чтобы задать цвет заливки ячеек в зависимости от их значений, и теперь хотите посчитать количество ячеек определённого цвета или сумму значений в них, то у меня для Вас плохие новости – не существует универсальной пользовательской функции, которая будет по цвету суммировать или считать количество ячеек и выводить результат в определённые ячейки. По крайней мере, я не слышал о таких функциях, а жаль
Конечно, Вы можете найти тонны кода VBA в интернете, который пытается сделать это, но все эти коды (по крайней мере, те экземпляры, которые попадались мне) не обрабатывают правила условного форматирования, такие как:
- Format all cells based on their values (Форматировать все ячейки на основании их значений);
- Format only top or bottom ranked values (Форматировать только первые или последние значения);
- Format only values that are above or below average (Форматировать только значения, которые находятся выше или ниже среднего);
- Format only unique or duplicate values (Форматировать только уникальные или повторяющиеся значения).
Кроме того, практически все эти коды VBA имеют целый ряд особенностей и ограничений, из-за которых они могут не работать корректно с какой-то конкретной книгой или типами данных. Так или иначе, Вы можете попытать счастье и google в поисках идеального решения, и если Вам удастся найти его, пожалуйста, возвращайтесь и опубликуйте здесь свою находку!
Код VBA, приведённый ниже, преодолевает все указанные выше ограничения и работает в таблицах Microsoft Excel 2010 и 2013, с любыми типами условного форматирования (и снова спасибо нашему гуру!). В результате он выводит количество раскрашенных ячеек и сумму значений в этих ячейках, независимо от типа условного форматирования, применённого на листе.
Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения
- Добавьте код, приведённый выше, на Ваш лист, как мы делали это в первом примере.
- Выберите диапазон (или диапазоны), в которых нужно сосчитать цветные ячейки или просуммировать по цвету, если в них содержатся числовые данные.
- Нажмите и удерживайте Ctrl, кликните по одной ячейке нужного цвета, затем отпустите Ctrl.
- Нажмите Alt+F8, чтобы открыть список макросов в Вашей рабочей книге.
- Выберите макрос SumCountByConditionalFormat и нажмите Run (Выполнить).
В результате Вы увидите вот такое сообщение:
Для этого примера мы выбрали столбец Qty. и получили следующие цифры:
- Count – это число ячеек искомого цвета; в нашем случае это красноватый цвет, которым выделены ячейки со значением Past Due.
- Sum – это сумма значений всех ячеек красного цвета в столбце Qty., то есть общее количество элементов с отметкой Past Due.
- Color – это шестнадцатеричный код цвета выделенной ячейки, в нашем случае D2.
Рабочая книга с примерами для скачивания
Если у Вас возникли трудности с добавлением скриптов в рабочую книгу Excel, например, ошибки компиляции, не работающие формулы и так далее, Вы можете скачать рабочую книгу Excel с примерами и с готовыми к использованию функциями CountCellsByColor и SumCellsByColor, и испытать их на своих данных.
Как в Excel посчитать количество ячеек по цвету ячейки или цвету текста
Мы с вами уже рассматривали вопрос о том как посчитать в Excel количество ячеек/значений в подробном видео уроке. Сегодня мы бы хотели немного расширить данную статью для решения более узкой задачи. Допустим, вам необходимо посчитать количество ячеек в зависимости от цвета ячеек или цвета текста.
Начиная с Excel 2007 в программе встроили возможность сортировки ячеек по цвету. Таким образом, можно отфильтровать нужный нам цвет, выделить оставшиеся на виду ячейки и визуально посмотреть общее количество ячеек. Но что делать, если нам требуется делать это часто и при этом нам необходимо, чтобы все считалось и пересчитывалось с помощью формул.
Для этих целей необходимо использовать очень простенький макрос, а точнее пользовательскую функцию, назовем ее ColorNom, она позволит нам вытягивать числовой код цвета заливки и далее по этому коду мы и будет считать общее количество ячеек, используя приемы, описываемые в статье как посчитать в Excel количество ячеек/значений
Итак, приступим. Зайдите в редактор Visual Basic, для этого:
в Excel 2003 нажмите на Сервис, далее Макрос и затем Редактор Visual Basic.
в Excel 2007, 2010 и 2013 это делается по-другому. Зайдите в раздел Разработчик, далее выберите Visual Basic
Внимание! Раздел панели инструментов Разработчик в Excel 2007 доступен по умолчанию, а в Excel 2010 и 2013 его необходимо включить. Это особенно полезно сделать тем пользователям, которые будут часто работать с макросами. Чтобы включить панель инструментов Разработчик в Excel 2010 или 2013 необходимо запустить Файл | Параметры | Настройка ленты после этого необходимо с правой стороны необходимо поставить галочку напротив надписи Разработчик
После того как откроется редактор Visual Basic, вставьте пустой модуль, для этого выберите меню Insert и далее Module
и скопируйте туда текст простой функции:
Public Function ColorNom (Cell As Range)
ColorNom = Cell.Interior.ColorIndex
End Function
После этого закройте редактор Visual Basic и можно вернуться к нашему файлу. В любой пустой ячейки введите пользовательскую функцию, которую мы ввели раннее. В нашем случае это функция ColorNom, ее можно вызвать либо через меню Вставка, Функция — категория Определенные пользователем, либо просто можно напечатать ее в самой ячейке =ColorNom ( A1 ), где A1 — это наша ячейка, в которой нам необходимо определить индекс цвета.
После этого уже не составит труда посчитать количество ячеек или значений в зависимости от цвета ячейки. Используйте нашу статью как посчитать в Excel количество ячеек/значений
Если вам необходимо посчитать количество значений или сумму в зависимости от цвета текста, то необходимо немного изменить код пользовательской функции.
Public Function ColorNom (Cell As Range)
ColorNom = Cell.Font.ColorIndex
End Function
Важно! Вы не сможете находить с помощью данной функции номер цвета ячейки при использовании условного форматирования. Кроме того, при изменении цвета ячейки Excel не пересчитывает значения, необходимо это делать в ручную, нажимая Ctrl+Alt+F9, либо изменения будут происходить при новом открытии данного файла. Это происходит из-за того, что Excel не считает изменение цвета ячейки редактированием формулы. В связи с этим, если это критично, то можно внести изменение в саму формулу, просто добавив функцию, которая постоянно пересчитывается и при этом не повлияет на определение цвета ячейки. Например, указать функцию определения текущей даты, умноженную на ноль.
В нашем случае функция будет выглядеть следующем образом.
=ColorNom (A1)+Сегодня()*0
Пример подсчета количества значений по цвету цвету заливки ячеек в Excel
Рассмотрим вышеуказанный пример с перечнем фруктов. Мы определили код ячеек и отобразили его напротив каждой ячейки.
Далее для удобства мы создадим вспомогательную таблицу из всех существующих цветов заливки. В нашем случае это красный, зеленый и желтый. Рядом с помощью все той же формулы определим код цвета.
В третьем столбце мы уже будет считать количество ячеек определенного цвета по условию, использую код цвета.
Считать количество мы будем с помощью функции СЧЁТЕСЛИ
Вот так выглядят аргументы данной функции
=СЧЁТЕСЛИ( диапазон ; критерий )
=СЧЁТЕСЛИ( $B$1:$B$8 ; E2 )
Диапазон мы указали со знаком доллара, чтобы он был закреплен и можно было протянуть формулу. Критерия у нас встречается всего три и они указаны в нашей вспомогательной таблице. Протянем формулу и получим количество ячеек по цветам.
Скачать пример файла: Цвет_Ячеек.xlsm (файл с поддержкой макросов)
Вычисления по цвету ячеек
Помечать ячейки цветом, используя заливку или цвет шрифта, очень удобно и наглядно. Если вы не дальтоник, конечно Трудности возникают тогда, когда по такой раскрашенной таблице возникает необходимость сделать отчет. И если фильтровать и сортировать по цвету Excel в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложные пользовательские макрофункции на Visual Basic, которые позволят нам суммировать/подсчитывать количество/среднее арифметическое ячеек с определенным цветом заливки/шрифта.
На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt+F11, чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст следующих функций:
Function CountByColor(DataRange As Range, ColorSample As Range) As Long Dim cell As Range, n As Long For Each cell In DataRange If cell.Interior.Color = ColorSample.Interior.Color Then n = n + 1 Next cell CountByColor = n End Function Function SumByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value Next cell SumByColor = total End Function Function AverageByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor = total / n End Function
Как легко сообразить, первая функция здесь вычисляет количество ячеек с заданным цветом заливки, вторая — сумму, а третья — среднее арифметическое. У всех функций два аргумента:
- DataRange — диапазон исходных ячеек с числами, раскрашенных в разные цвета
- ColorSample — ячейка, цвет заливки которой мы берём за образец
Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы — кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:
Добавление условий
Аналогичный подход можно легко масштабировать, добавляя, при необходимости, дополнительные условия в проверку (команда if … then…). Так, например, если нам нужно при вычислении среднего арифметического учитывать не только цвет заливки, но и цвет шрифта (т.е. считать не просто жёлтые, а именно жёлто-красные ячейки), то код нашей макро-функции будет выглядеть так:
Function AverageByColor2(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color And cell.Font.Color = ColorSample.Font.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor2 = total / n End Function
Разница только в добавленном через логическую связку «И» (and) условии на проверку соответствия цвета шрифта очередной проверяемой ячейки cell.Font.Color цвету шрифта ячейки-образца ColorSample.Font.Color.
Ограничения и нюансы пересчёта
У созданных нами макрофункций есть 2 важных нюанса.
Во-первых, эти функции «не видят» заливку, созданную с помощью условного форматирования, т.е. работают только с цветом, который был задан для ячеек вручную.
Во-вторых, к сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением её содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма/среднее/количество по нашим функциям автоматически пересчитываться пересчитываться не будет.
Полностью решить эту проблему невозможно, но есть несколько способов её обойти:
- Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter, т.е. имитировать повторный ввод функции в ячейку — Excel её заново пересчитает и выдаст обновленный результат.
- Можно использовать сочетание клавиш Ctrl+Alt+F9, которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
- Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно — даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго
Ссылки по теме
- Сортировка строк по цвету
- Функции подсчета количества и суммы ячеек по цвету из надстройки PLEX
- Что такое «ад условного форматирования» и как его победить
Как посчитать цветные ячейки в Excel.
Смотрите также условное форматирование; встречается текстовое значение форматируемых ячеек» в дате год месяце, то вIf cll.Interior.ColorIndex =End IfHugo ячеек — проще или будут исправлены(Использовать формулу для заданным значением (или Excel, на форумах
(Формат), чтобы выбрать, изменении значения ячейки.
Excel».Рассмотрим,Cell_Color — для «заказ». Если функция
В этот раз в на следующий. соответствующую ячейку следует Цвет_берется_из_ячейки.Interior.ColorIndex _Next: Вернее это условие :-) ошибки в формулах. определения форматируемых ячеек).
значениями), мы сделали или в блогах, какой цвет заливкиИзменяем цвет ячейки, основываясь
Выделяем цветные ячейки.
как посчитать количество цветных определения числового кода
возвращает значение 0 поле ввода введите вводить текстовое значениеAnd Not bCellIsHidden(cll)else с формулой нужно
И чему улыбаться
Трудно представить, что Далее в поле это только что и для которых должен быть применён, на её текущем В строке состояния ячеек в цвета заливки; – значит от формулу:
Теперь необходимо выделить ячейки «заказ». Главное условие Or _For Each cll первым поставить, затем — «=СЧЁТЕСЛИ(B2:H2;» 44325
кому-то может понадобитьсяFormat values where this при помощи инструмента нет прямого решения. если выполняется заданное значении (статически) – (внизу окна) смотрим,ExcelCell_Font — для
клиента с такимЩелкните на кнопку «Формат» цветом, касающиеся текущего для выделения: еслиcll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex
In Диапазон_суммирования.Cells уже два других.Guest идти таким путём, formula is trueFind and Replace И это понятно,
условие.
Однажды установленный цвет сколько ячеек выделено.. Закрасить ячейки в определения числового кода номером на протяжении и укажите красный месяца. Благодаря этому на протяжении 3-х
_If cll.Interior.ColorIndex = Smersh: Мне принципиально посчитать
разве что в(Форматировать значения, для(Найти и заменить). так как этаВ появившемся диалоговом окне заливки не изменяется,
Видим – в таблице
таблице можно самим, цвета шрифта. 3-х месяцев не цвет на вкладке мы с легкостью месяцев контрагент неAnd Not bCellIsHidden(cll)
Цвет_берется_из_ячейки.Interior.ColorIndex Then: Да этот вариант, кол-во ячеек по целях эксперимента которых следующая формула Всё, что Вам
задача не типичная.Format Cells вне зависимости от три цветные ячейки. можно установить условноеНо как этим было ни одного «Заливка». После чего найдем столбец, в сделал ни одного Then
summa = summa я тоже рассматривал.
цвету. Прилагаемый мною Урок подготовлен для Вас
является истинной) введите осталось сделать, это И всё же,(Формат ячеек) откройте того, как изменяетсяЕсли не показывает форматирование, чтобы ячейки воспользоваться не знаю, заказа. А в на всех окнах который нужно вводить
заказа, его номерsumma = summa
+ cll.Value Пример все-таки не пример очень прост, командой сайта office-guru.ru одну из формул: задать цвет заливки если Вам нужно вкладку значение ячейки. количество выделенных ячеек, окрашивались по условию.
помогите !!! соответствии с нашими нажмите «ОК». актуальные данные в автоматически выделяется красным + cll.ValueEnd If совсем удачный, наверное. но могут жеИсточник: https://www.ablebits.com/office-addins-blog/2013/10/18/change-background-color-excel-based-on-cell-value/чтобы изменить заливку пустых выбранным ячейкам. изменить цвет заливкиFillИзменяем цвет определённых ячеек то нажимаем правой
excel-office.ru
2 способа изменить цвет заливки ячеек в Excel в зависимости от их значений
Как настроить таблицу,Или может знает условиями, ячейка сЗаполоните ячейки текстовым значением этом месяце. Для цветом.End IfNext Просто делается универсальная возникнуть и другиеПеревел: Антон Андронов ячеекОткройте диалоговое окно ячеек окончательно, то
(Заливка) и выберите (пустые, с ошибками, кнопкой мыши на чтобы ячейки окрашивались кто другой способ номером данного клиента «заказ» как на этого:Представленное данное решение должноNextend if таблица, в которой условия!Автор: Антон Андронов=ISBLANK()Format Cells есть раз и цвет (мы выбрали с формулами) строку состояния и по условию, смотритеAbram pupkin выделяется красным цветом рисунке и посмотритеВыделите диапазон ячеек B2:L15 автоматизировать некоторые рабочиеElse
- СУММ_ЦВЕТ = summa имеено заточено будетHugoSmersh=ЕПУСТО()(Формат ячеек) любым
- на всегда (либо красноватый) и нажмитеЦвет заливки будет изменяться ставим галочки у в статье «Условное: Если ячейки закрашивались заливки. на результат:
- и выберите инструмент: процессы и упроститьFor Each cll
Как в Excel динамически изменять цвет ячейки, основываясь на её значении
End Function под цвет ячеек: Так я тоже
: добрый день. Помогитечтобы изменить заливку ячеек, из 3-х способов: пока Вы неОК в зависимости от нужных функций. Так форматирование в Excel». вручную, тогда толькоЕсли мы хотим регистрироватьНомера клиентов подсвечиваются красным
«ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило». визуальный анализ данных. In Диапазон_суммирования.Cellsоба варианта рабочие: Может можно сперва проверил на разобраться. Имею таблицу
содержащих формулы, которыенажав измените его вручную),. значения ячейки. можно быстро посчитатьУ нас такая через макросы. данные по клиентам, цветом, если в А в появившемся
В первую очередь дляIf cll.Interior.ColorIndex =Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348) подругому? Вашем файле эту (см. вложение), в возвращают ошибкуCtrl+1 выполните следующие шаги.После этого Вы вернетесьЗадача:
выделенные ячейки – таблица.
- То что вы Excel идеально приспособлен их строке нет окне «Создание правила регистра с номерами Цвет_берется_из_ячейки.Interior.ColorIndex _Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348;F349)Leojse UDF. Всё считает. которой ячеки с=ISERROR()
- .Тут возможно несколько сценариев, в окноИмеется таблица или сумму, среднее значение,Как закрасить ячейку самим, написали — это для этой цели. значения «заказ» в
- форматирования» выберите опцию: клиентов создадим заголовкиAnd Not bCellIsHidden(cll)Leojse: Добрый вечер.Smersh помощью условного форматирования,=ЕОШИБКА()кликнув по любой выделенной в зависимости отNew Formatting Rule диапазон данных, и
- т.д. смотрите в статье и есть фрагменты С легкостью можно последних трех ячейках «Использовать формулу для столбцов с зеленым Then: Саня, Спасибо ещеЕсть такая функция,: Народ, прикрепляю свой при вводе определенногоРаз мы хотим изменить ячейке правой кнопкой того, значения какого(Создание правила форматирования), Вы хотите изменить
Второй способ «Текст Excel. Формат.» от макросов. записывать в соответствующие к текущему месяцу определения форматируемых ячеек» цветом и актуальными
- summa = summa раз, как раз которая подсчитывает сумму файл. Посмотрите,плиз, что значения, окрашиваются в цвет пустых ячеек, мыши и выбрав типа Вы ищите. где в поле цвет заливки ячеек,
- . тут.Если ячейки закрашивал категории число заказанных (включительно).В поле ввода введите месяцами, которые будут + cll.Value то, чо нужно! значений залитых ячеек я делаю не определенные цвета. Не
то нам необходима в контекстном менюЕсли Вы хотите раскрасить
Preview основываясь на ихПодсчет цветных ячеек вМожно написать формулу, компьютер ( через товаров, а такжеАнализ формулы для выделения формулу: автоматически отображать периодыEnd IfLeojse по ячейке-образцу: так. Надстройки подключаю могу подсчитать колличетво первая функция. Вводим пункт ячейки с конкретным(Образец) будет показан
значениях. Более того,Excel. с помощью которой, условное форматирование) , даты реализации транзакций. цветом ячеек поЩелкните на кнопку «Формат» времени. Для этогоNext: Добрый день.200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range, как описано на ячеек определенного цвета,
ее, затем помещаемFormat Cells значением, например, образец Вашего форматирования. необходимо, чтобы этотНесколько разных способов будут окрашиваться определенные тогда можно воспользоваться Проблема постепенно начинает условию: и укажите на в ячейку B1End IfПодскажите, а возможно Цвет_берется_из_ячейки As Range) сайте (через сервис-надстройки-пакет
Как настроить постоянный цвет ячейки, основываясь на её текущем значении
к примеру «зеленого». курсор между скобок(Формат ячеек).50 Если всё устраивает, цвет изменялся динамически,
описано в статье ячейки. О таком формулами условного форматирования возникать с ростомСначала займемся средней частью вкладке «Заливка» каким введите следующую формулу:СУММ_ЦВЕТ = summa ли, чтобы функция
For Each cll анализа) Я Ваш Подскажите, пожалуйста. Заранее и нажимаем иконкуна вкладке, нажмите отражая изменения данных «Количество выделенных строк способе окрасить ячейки, и найти нужную/ объема данных.
нашей формулы. Функция цветом будут выделеныКак работает формула дляEnd Function суммировала только видимые In Диапазон_суммирования.Cells пример скопировал в спасибо. выбора диапазона вHome100ОК в ячейках. в Excel» тут. читайте в статье сумму.Скачать пример выделения цветом СМЕЩ возвращает ссылку ячейки актуального месяца. автоматической генерации уходящих
Найти и выделить все ячейки, удовлетворяющие заданному условию
Function bCellIsHidden(rngCell As ячейки?If cll.Interior.ColorIndex = строку формул и
Hugo правой части строки(Главная) >или.Решение: Как посчитать цветные «Закрасить ячейку поЕсли цветные ячейки ячеек по условию на диапазон смещенного Например – зеленый. месяцев? Range) As BooleanSkyPro Цвет_берется_из_ячейки.Interior.ColorIndex Then нажал зеленую галочку.: формула из копилки (либо наберите нужный
Cells3.4Результат Ваших настроек форматированияИспользуйте условное форматирование
ячейки в Excel, условию в Excel имеют какую-нибудь периодичность в Excel по отношении к После чего наНа рисунке формула возвращаетbCellIsHidden = rngCell.EntireRow.Hidden:summa = summaHugo=Count_CellColor(B2:H2;J2) диапазон вручную):(Ячейки) >– то на будет выглядеть приблизительно в Excel, чтобы если ячейки окрашены формулой». ( напр каждаяЕсли их так много, области базового диапазона всех окнах для период уходящего времени
Or _200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range, + cll.Value: У меня тожеВ J2 образец=ISBLANK(B2:H12)Format вкладке так:
выделить значения больше в несколько разныхКак закрасить ячейки, четвертая имеет синий что тратим несколько определенной числом строк подтверждения нажмите на начиная даты написанияrngCell.EntireColumn.Hidden Цвет_берется_из_ячейки As Range,End If не работает, если цвета.
=ЕПУСТО(B2:H12)(Формат) >HomeТак как нам нужно X, меньше Y цветов. Как посчитать разобрались. Теперь, разберем,
цвет, а все минут на поиск и столбцов. Возвращаемая кнопку «ОК». статьи: 17.09.2017. ВEnd Function _Next как критерий указыватьHugo
Измененяем цвета заливки выделенных ячеек при помощи диалогового окна «Формат ячеек»
Нажмите кнопкуFormat Cells(Главная) в разделе настроить ещё одно или между X количество цветных ячеек как считать цветные красные заполнялись только конкретной позиции регистра ссылка может бытьСтолбец под соответствующим заголовком первом аргументе в
LeojseOptional Цвет_берется_из_ячейки2 AsСУММ_ЦВЕТ = summa ячейку с УФ.
- : Если проблема найтиFormat(Формат ячеек).
- Editing условие, позволяющее изменять и Y. формулой, фильтром, т.д. ячейки. по четным дням и анализ введенной
- одной ячейкой или регистра автоматически подсвечивается функции DATA –: Просто ради интереса Range)End Function Но если указать копилку — вот(Формат), выберите нужный
Далее настройте параметры форматирования(Редактирование) нажмите цвет заливки наПредположим, есть список ценТретий способПервый вариант.
календаря) то это информации. В таком целым диапазоном ячеек. зеленым цветом соответственно вложена формула, которая попробовал код Сани,If Not Цвет_берется_из_ячейки2Формула — =СУММ_ЦВЕТ(F8:F1317;F348), любую залитую нужным
точный адрес цвет заливки на
так, как ВамFind Select зелёный для ячеек на бензин в.Сумма цветных ячеек в тоже реально посчитать. случае стоит добавить
Изменяем цвет заливки для особых ячеек (пустые, с ошибкой в формуле)
Дополнительно можно определить с нашими условиями: всегда возвращает текущий который в сборе) Is Nothing Then где F8:F1317 -
Используем формулу для изменения цвета заливки особых ячеек в Excel
цветом ячейку -Smersh вкладке
угодно. На этот(Найти и выделить) со значениями меньшими разных штатах, иМожно настроить таблицуExcel. Но для этого в таблицу регистра
количество возвращаемых строкКак работает формула выделения год на сегодняшнююВыдает ошибку наFor Each cll суммируемый диапазон, F348 всё работает.: Спасибо за помощь,Fill раз мы установим > или равными
- Вы хотите, чтобы так, что послеЧтобы быстро посчитать надо видеть файл механизмы, для автоматизации и столбцов. В столбца цветом по дату благодаря функциям: первой строчке In Диапазон_суммирования.Cells — ячейка-образецGuest но есть один(Заливка), а затем
- оранжевый цвет заливки,Find3.45 цены, превышающие фильтра порядковый номер данные в желтых Файл можно загрузить некоторых рабочих процессов нашем примере функция условию? ГОД и СЕГОНЯ.200?’200px’:»+(this.scrollHeight+5)+’px’);»>And Not bCellIsHidden(cll) OrIf cll.Interior.ColorIndex =Подскажите, а можно: а у меня нюанс. Я пользуюсь
- нажмите просто для разнообразия
(Найти).
, то снова нажимаем
- $3.7 цветных строк будет ячейках, установим фильтр.
сюда
пользователя. Что мы
возвращает ссылку наБлагодаря тому, что перед Во втором аргументе _ Цвет_берется_из_ячейки.Interior.ColorIndex And cll.EntireRow.Hidden ли как-то подредактировать не сработало ни корпоративной версией 2003ОКЕсли Вы хотите изменитьВведите нужное значение и
кнопку
, были выделены красным,
- нажмите просто для разнообразия
- по порядку. По Какими способами установитьhttp://files.mail.ru/ и сделали. диапазон ячеек для созданием правила условного указан номер месяца, выделяя при = False Or функцию, чтобы сумма так ни так. Excel. В списках. Подробные инструкции даны только цвет заливки, нажмитеNew Rule а меньшие или
- нему можно узнать фильтр в таблице,ДенисAbram pupkin последних 3-х месяцев. форматирования мы охватили (-1). Отрицательное число
Изменяем цвет заливки особых ячеек статически
этом cll. Ошибка _ подсчитывалась по двумВсе надстройки всключены.
формл такой нет на шаге 5 не касаясь остальныхFind All(Создать правило) и равные
- количество цветных ячеек. смотрите в статье: условное форматирование, создать: Вам правильно подсказалаВажная часть для нашего всю табличную часть значит, что нас — Compile error:cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex ячейкам-образцам (мне нужно
- Hugo и он ее примера «Как динамически параметров форматирования, то(Найти все). повторяем шаги с$3.45 Смотрите статью «Порядковый
«Фильтр в Excel». правило. дальше не Эля Коробицына условия выделения цветом для введения данных интересует какой был ByRef argument type _ получить сумму значений: Формулу вложил в не понимает :-(
- изменять цвет ячейки, можете просто нажатьСовет: 3 по 6,– зелёным. номер строк поПолучилось так. помню. смотреть лень.Если цвета ячеек находиться в первом
регистра, форматирование будет месяц в прошлом mismatch. Так чтоAnd cll.EntireRow.Hidden = по двум цветам)? файл. Есть какой-нибудь другой основываясь на её кнопкуВ правой части устанавливая нужное правило.Замечание:
порядку после фильтраВ ячейке A1 появилась
там ничего сложного
задавались через условное
аргументе функции СМЕЩ.
office-guru.ru
Подсчет количества ячеек определенного цвета
активно для каждой времени. Пример условий пользуюсь Вашим кодом, False Then То есть, еслиКроме неё - способ? значении».Образец настроенного ВамиFill color диалогового окна Ниже виден образецСнимки экрана для в Excel». стрелка фильтра (треугольник).
— разберешься форматирование, тогда можно
Он определяет, с
ячейки в этом для второго аргумента
SkyProsumma = summa при вводе второй нужны ещё две
Юрий М условного форматирования будет(Цвет заливки) иFind and Replace созданного нами второго этого примера былиБывает нужно округлить Нажимаем на этуNikls2502 использовать те же какого месяца начать
диапазоне B2:L15. Смешанная со значением:, но и + cll.Value
ячейки-образца, то считался формулы, присутсвуют.: Это ведь НАДСТРОЙКА. выглядеть приблизительно так:
выбрать понравившийся цвет.(Найти и заменить) правила условного форматирования: сделаны в Excel
числа до кратного стрелку. В появившемся: Народ подскажите как самые формулы смещение. В данном ссылка в формуле
1 – значит первый
СанеEnd If бы и второйHugo Подключите её и
Если Вы довольны цветом,Вот результат наших изменений есть кнопка
Когда все будет готово 2010, однако, в числа или все диалоговом окне, нажимаем посчитать сумму ячеекЕсли ячейки красили примере – это B$1 (абсолютный адрес месяц (январь) вогромное спасибо)Next цвет.
: Т.е. две функции, всё заработает. жмите форматирования в Excel:Options – жмите
Excel 2007 и числа в столбце на функцию «Фильтр выделенных цветом вручную, тогда только ячейка D2, то только для строк,
году указанном вСаня
ElseСаня извиняюсь…
GuestОКВ отличие от предыдущего(Параметры), нажав которуюОК 2013 кнопки, диалоговые привести к кратному по цвету». Появится
Michael_S макросы.
есть начало года а для столбцов первом аргументе;: И Вам огромноеFor Each cll:sva: Это ведь НАДСТРОЙКА.
. Вы увидите, как способа (с условным Вы получите доступ. Теперь у Вас окна и настройки
числу. Например, все окно, в котором: Смотря как ониАналогичный вопрос подробно – январь. Естественно – относительный) обусловливает,0 – это 1 спасибо, заходите еще… In Диапазон_суммирования.Cells200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348)+СУММ_ЦВЕТ(F8:F1317;F349): Меня напрягает вот
Подключите её и созданное правило немедленно форматированием), цвет заливки, к ряду продвинутых имеется мило отформатированная будут точно такие числа в столбце будут все цвета выделены. Если вручную
рассматривался для остальных ячеек что формула будет месяца назад;
перед
If cll.Interior.ColorIndex =шутка. эта часть.
всё заработает.{/post}{/quote} будет применено к установленный таким образом,
настроек поиска, таких таблица, которая даёт же или с
сделать кратными трем, ячеек, которые присутствуют — то только
здесь в столбце номер всегда относиться к
-1 – это 2200?’200px’:»+(this.scrollHeight+5)+’px’);»>If Not Цвет_берется_из_ячейки2 Is Цвет_берется_из_ячейки.Interior.ColorIndex _
Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования AsПо идее должноПодключал, вроде что-то таблице.
никогда не изменится как возможность с первого незначительными отличиями. т.е, чтобы числа в столбце. макросом, если применялосьИнтересные решения выложил строки для базовой
первой строке каждого мес. назад от Nothing ThenAnd cll.EntireRow.Hidden =
Range, Цвет_берется_из_ячейки As быть: сервис-надстройки-обзор-находим надстройки
происходит, но в
Однажды настроенная заливка будет
сам без Вашего
Match Case
взгляда увидеть максимальныеИтак, вот, что нужно столбца делились наВ нашем примере –
УФ — то The_Prist ячейки будет соответствовать столбца. начала текущего годаКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>dim cll as False Then Range, _ Summ_Color-ок итоге все-равно ошибка оставаться неизменной, не ведома, как бы(Учитывать регистр) и и минимальные цены сделать по шагам: три без остатка, это желтый цвет по условию УФОчень простой ответ
номеру строки вГлавное условие для заполнения (то есть: 01.10.2016).
rangesumma = summaЦвет_берется_из_ячейки2 As Range)Guest #Имя
зависимо от значения значения ни изменялись.Match entire cell content на бензин вВыделите таблицу или диапазон, т.д. Как работать ячеек и ячейкиvikttur предложил котором она находиться. цветом ячеек: если
planetaexcel.ru
Подсчет суммы ячеек по цвету (редактирование функции) (Макросы Sub)
Последний аргумент – этоLeojse
+ cll.ValueFor Each cll: Отлично!!! Все вродеR Dmitry
ячейки.Как и в предыдущем
(Ячейка целиком). Вы разных штатах. Хорошо
в котором Вы с кратными числами,
без заливки (без: Например, Надстройка для
Алексанндр _Boroda_
Следующие 2 аргумента
в диапазоне B1:L1
номер дня месяца
: Спасибо, все работает)End If In Диапазон_суммирования.Cells работает спасибо!!!
: А зачем вообщеЕсли Вы хотите настроить примере, Вы можете можете использовать символы им там, в хотите изменить цвет смотрите в статье цвета). Нажимаем на суммирования по цветуПосмотрите еще и функции СМЕЩ определяют находиться та же
указано во второмbumnikNext
If cll.Interior.ColorIndex =
P.S. А не цвета считать, если постоянный цвет заливки
изменить цвет заливки
подстановки, такие как Техасе!
заливки ячеек. В «Сумма чисел кратных
желтый прямоугольник. заливки,шрифта, формату
здесь на сколько строк
дата, что и
аргументе. В результате
: Здравствуйте! Можно ли
End If
Цвет_берется_из_ячейки.Interior.ColorIndex or _
подскажешь как вкладывать вы используете уф, пустых ячеек или
особых ячеек двумя звёздочка (*), чтобыСовет: этом примере мы 3 в Excel».В таблице останутсяTyronВсе ответы предусматривают и столбцов должно первого дня текущего функция ДАТА собирает данной функцией суммироватьСУММ_ЦВЕТ = summacll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex фукнции в файл, можно и условия ячеек с формулами, способами: динамически и
найти любую строкуТаким же способом выделяемВ этой статье Вы только желтые ячейки.
: С надстройкой получилось использование макросов. Если
быть выполнено смещение. месяца, тут же
все параметры в диапазон цифр +
End Function Then
в частности Count_CellColor? посчитать
которые содержат ошибки, статически.
символов, или знак
Вы можете изменять
$B$2:$H$10
найдёте два быстрых В ячейку A8
подсчитать количество ячеек для вас это
Так как вычисления ячейки в целом
одно значение и
цифры только вот
Пробуйте
summa = summa
Smersh
например так
используйте этот способ:
Цвет ячейки будет изменяться
вопроса (?), чтобы цвет шрифта в(заголовки столбцов и способа изменять цвет
устанавливаем функцию «Автосумма» по цветам.
сложно, тогда зарегистрируйтесь для каждого клиента столбце изменяют свой формула возвращает соответственную
с таким символомСаня + cll.Value: С функциями разобралсяGuest
Выделите таблицу или диапазон автоматически в зависимости
найти один любой зависимости от значения
первый столбец, содержащий ячейки в зависимости
или любую другуюА как сделать на любом из будем выполнять в
цвет на указанный дату.
( ' ):
End If ;-)) А возможно
: Есть ли УФ
и нажмите
от значения ячейки.
символ. ячейки. Для этого
названия штатов, не от её значения
формулу пишем. чтобы при изменении
предложенных форумов и той же строке,
в условном форматировании.
Далее перейдите в ячейку
(например: от 1
200?'200px':''+(this.scrollHeight+5)+'px');">Function bCellIsHidden(rngCell As Range)
Next
ли сделать, так,
на листе? ЕслиF5Этот способ решения задачиЧто касается предыдущего примера,
просто откройте вкладку выделяем).
в Excel 2013,
Получилось так. Посчитались, только
цвета ячейки автоматически там продублируйте свой
значение смещения дляОбратите внимание! В условиях C1 и введите до 12 +
As BooleanСУММ_ЦВЕТ = summa что если в есть — какие, чтобы открыть диалоговое Вы, вероятнее всего,
если нам нужноFontОткройте вкладку
2010 и 2007. видимые ячейки желтого пересчитывалось и их вопрос строк указываем –¬ этой формулы, для
следующую формулу: 1′, 2′, 3′,bCellIsHidden = rngCell.EntireRow.HiddenEnd Function
ячейке образце менять применены условия?{/post}{/quote}
окно будете использовать в найти все цены
(Шрифт) в диалоговомHome
Кроме того, Вы цвета.
количество?P.S.
0. последнего аргумента функции
Как видно теперь функция 4', 5', 6'
Or _Код200?'200px':''+(this.scrollHeight+5)+'px');">=СУММ_ЦВЕТ(F8:F1317;F348;F349)
цвет, то формулыВ первом сообщении
Go To 99% случаев, то
на бензин от
окне
(Главная), в разделе
узнаете, как вКак установить формулу
З.Ы. Пример вуточните вопрос: Вам
В тоже время для ДАТА указано значение
ДАТА использует значение и т.д.)
rngCell.EntireColumn.Hidden
Leojse
бы автоматически пересчитывалась?
прикреплен пример файла.
(Переход), затем нажмите
есть заливка ячеек3.7
Format CellsStyles
Excel использовать формулы,
автосуммы, смотрите в
файле. Подскажите кто надо посчитать кол-во вычисления значения третьего 1, так же,
из ячейки B1Читайте правила форума,End Function: Саня, Спасибо! Вот
Заранее спасибо!!! Условия УФ следующие: кнопку будет изменяться вдо(Формат ячеек), как(Стили) нажмите чтобы изменять цвет статье «Сложение, вычитание, знает пожалуйста!
желтыч ячеек или аргумента (смещение по как и для
и увеличивает номер
создавайте свою тему!Код200?'200px':''+(this.scrollHeight+5)+'px');">And Not bCellIsHidden(cll)
как все просто)Smersh
Есть 7 критериевSpecial
соответствии с заданным3.799 мы это делалиConditional Formatting пустых ячеек или умножение, деление вHugo вам нужна сумма столбцам) используем вложенную формул в определении месяца на 1Допустим, что одним из
ThenLeojse
excelworld.ru
Как в Excel выделить ячейки цветом по условию
: Ребят, подскажите, есть оценки людей и(Выделить). Вами условием., то мы зададим на шаге 5,(Условное форматирование) > ячеек с ошибками Excel» здесь.: Никак. во всех желтых формулу МЕСЯЦ(СЕГОДНЯ()), Которая дат для заголовков по отношению к наших заданий являетсяSkyPro: А можно еще
такая возможность или каждому критерию соответвуютВ диалоговом окнеДля примера снова возьмём такие критерии поиска: и выберите желаемыйNew Rule в формулах.
Автоматическое заполнение ячеек датами
Чтобы убрать фильтр,Но можно сделать ячейках ? в соответствии с столбцов регистра. предыдущей ячейки. В ввод информации о
: Да, что-то я вопрос? Получается, нужно нет? определенные баллы (отGo to Special таблицу цен наТеперь кликните любой из цвет шрифта.(Создать правило).Каждому известно, что для снова нажимаем на по событию выделенияМи условиями возвращает номер
В нашем случаи — результате получаем 1 том, делал ли не подумал о
Автоматическое заполнение ячеек актуальными датами
всегда теперь вводитьТолькоУчусь 1 до 10).(Выделить группу ячеек) бензин, но на найденных элементов вОднажды настроенный цвет заливкиВ верхней части диалогового изменения цвета заливки функцию «Фильтр». Тогда
ячейки — хотя: В EXEL нет текущего месяца в
это зеленая заливка – число следующего заказ клиент в скрытых столбцах две ячейки-образца… Я: Кажется так. При установке определенных отметьте вариант этот раз добавим нижней части диалогового не будет изменяться, окна одной ячейки или таблица раскроется, а это костыли, и формул, которые бы текущем году. От ячеек. Если мы месяца. текущем месяце. После
- Leojse наверно неправильно выразился———————— чисел ячейки окрашиваются
- Blanks ещё пару штатов,
- окна вне зависимости отNew Formatting Rule целого диапазона в
функция «Автосумма» посчитает ненадёжные, и тормозные различали ячейки по вычисленного формулой номера откроем наш регистрТеперь скопируйте эту формулу чего на основе: в постах выше…
’Ваш код в три цвета(Пустые ячейки), чтобы
а некоторые ячейкиFind and Replace того, как в(Создание правила форматирования) Excel достаточно просто сумму всех ячеек, в целом. цвету, только по месяца отнимаем число в следующем месяце,
из ячейки C1 полученной информации необходимоСаня Я хотел, что
Application.Calculate = True (красный — негатив, выделить все пустые сделаем пустыми. Теперь(Найти и заменить) будущем изменится содержимое в поле нажать кнопку разного цвета.Ставьте подсчёт на адресу 4, то есть то уже ему в остальные заголовки выделить цветом ячейки,если———————— желтый — что-то ячейки. посмотрите, как Вы и нажмите
ячейки.Select a Rule TypeFill colorВторой вариант. кнопку.
Эля коробицына
Как выделить столбец цветом в Excel по условию
в случаи Ноября соответствующий столбец будет столбцов диапазона D1:L1. по условию: какойSkyProнужно посчитать ещеSmersh среднее, зеленый -Если Вы хотите выделить
- сможете обнаружить этиCtrl+AЗадача:(Выберите тип правила)(Цвет заливки). НоЕсли в таблицеP.S. И кстати: с помощью условного
- получаем смещение на выделен зеленым цветом
- Выделите диапазон ячеек B1:L1 из клиентов не, Огромнейшее спасибо! один цвет, то: Ясно. Спасибо всем все отлично). ячейки, содержащие формулы пустые ячейки и, чтобы выделить всеВы хотите настроить
выберите как быть, если цветных ячеек мало, у Вас в
форматирования, оно скорее 8 столбцов. А, в независимости от
и выберите инструмент: совершил ни одногоВоспользовался кодом дополнительно указать еще огромное за помощьНа вопрос R с ошибками, отметьте изменить цвет их найденные записи. После цвет ячейки, основываясьFormat only cells that необходимо изменить цвет то можно их формуле баксов не всего уже задано. например, для Июня текущего дня. «ГЛАВНАЯ»-«Ячейки»-«Формат ячеек» или
Автоматическое выделение цветом столбца по условию текущего месяца
заказа на протяженииSkyPro одну ячейку-образец. Это и участие :-) Dmitry отвечаю. Ваш вариант заливки. этого нажмите кнопку на её текущем contain заливки всех ячеек,
выделить. В строке хватает — диапазон Определить правило задания – только наТабличная часть сформатирована, теперь просто нажмите комбинацию последних 3-х месяцев.. никак не поправить?
Smersh способ вроде подходит,FormulasНа вкладкеClose значении, и хотите,(Форматировать только ячейки, содержащих определённое значение? состояния будет видно сдвинулся, осторожно, может
цвета и дальше 2 столбца. заполним ее текстовым клавиш CTRL+1. В Для таких клиентовТеперь мне просто
Как выделить ячейки красным цветом по условию
То есть, если: Народ, нужна еще но подсчет кол-ва(Формулы) >Home(Закрыть). чтобы цвет заливки
- которые содержат). Более того, что их сумма. Строку наврать! «плясать» от негоПоследнее два аргумента для значением «заказ» в появившемся диалоговом окне, нужно будет повторно интересно… А как
- не указана вторая Ваша помощь. В ячеек — проще
- Errors(Главная) в разделеВот так можно выделить оставался неизменным, дажеВ нижней части диалогового если Вы хотите,
- состояния можно настроитьTyronКак в эксель сложить функции СМЕЩ определяют
смешанном порядке клиентов на вкладке «Число», выслать предложение. надо было воспользоваться ячейка-образец, суммируем по примере в ячейках :-)
(Ошибки). Как видноStyles все ячейки с
когда значение ячейки окна в поле чтобы цвет заливки – смотрите ниже.: Спасибо! ячейки одного цвета? высоту (в количестве для текущего и в разделе «ЧисловыеЕстественно это задание для кодом первой. B,C,D 17 УФД,R Dmitry на рисунке выше,(Стили) нажмите заданным значением (значениями) изменяется.
Format Only Cells with каждой ячейки изменялсяКак посчитать цветные ячейкиМария Нашла в просторах строк) и ширину прошлых месяцев. форматы:» выберите опцию Экселя. Программа должнаСаниСаня привязанное к цифрам.: На вопрос R Вам доступно множествоConditional Formatting при помощи опцииРешение:(Форматировать только ячейки, автоматически вместе с в: подскажите пожалуйста, могу интернета вот это (в количестве столбцов)Теперь нам необходимо выделить «(все форматы)». В автоматически найти таких?: Хотелось бы сделать
Dmitry отвечаю. Ваш других настроек.(Условное форматирование) >Find AllНайти все ячейки для которых выполняется изменением содержимого этойExcel ли сделать так, : возвращаемого диапазона. В красным цветом ячейки поле «Тип:» введите контрагентов и соответственноSkyPro200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range, 3-е условие, что способ вроде подходит,
И наконец, измените заливкуNew Rule(Найти все) в с определённым значением следующее условие) настройте ячейки? Далее в. чтобы в графике,Summ_CellColor — сумирование нашем примере – с номерами клиентов, значение: МММ.ГГ (обязательно выделить их цветом.: Мой код не Цвет_берется_из_ячейки As Range,
если хоть одна но подсчет кол-ва выделенных ячеек или(Создать правило). Точно Excel. (или значениями) при условия для правила. статье Вы найдётеМожно где проставлены все ячеек с определенным это область ячеек которые на протяжении буквы в верхнем Для этих условий сработает, если скрыты _ из ячеек B5:B16 ячеек — проще
настройте любые другие также, как наОднако, в действительности нам помощи инструмента Мы выбираем форматировать ответы на этипосчитать количество цветных ячеек сроки платежей, считать цветом заливки, включая с высотой на 3-х месяцев не регистре). Благодаря этому
будем использовать условное столбцы.optional Цвет_берется_из_ячейки2 As
красного цвета, то :-) параметры форматирования при 2-м шаге примера нужно найти всеFind All только ячейки с вопросы и получите в только оплаченные, при условное форматирование; 1-ну строку и
exceltable.com
Как автоматически считать в эксель ячейки разного цвета
совершили ни одного мы получим укороченное форматирование.
А вот код Range) ячейка B17 окрашиваласькак сказать…… если помощи диалогового окна
Как динамически изменять цены на бензин,(Найти все), а
условием: пару полезных советов,
Excel
выделении их цветом.Summ_CellFont — сумирование
шириной на 4 заказа. Для этого:
отображение значения дат
Сначала подготовим структуру для Сани в сборе
if not Цвет_берется_из_ячейки2is бы тоже в условий немного :)),Format Cells цвет ячейки, основываясь превышающие затем изменить форматCell Value
которые помогут выбрать
. Например, у нас Т.К., нужна сумма ячеек с определенным столбца. Этот диапазонВыделите диапазон ячеек A2:A15 в заголовках регистра,
заполнения регистра. В200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range, nothing then красный цвет. Вв лбом случае(Формат ячеек), как
на её значении.$3.7 найденных ячеек, используя(Значение ячейки) – правильный метод для такая таблица. только оплаченных
Как в эксель сложить ячейки одного цвета ?
цветом шрифта, включая охватывает столбцы 3-х (то есть список что упростит визуальный первую очередь условно
Цвет_берется_из_ячейки As Range,For Each cll этом файле вложены право выбора всегда
это описано вВ диалоговом окне. К сожалению, инструмент диалоговое окно
greater than решения каждой конкретнойПервый способ.
Pelena условное форматирование; предыдущих месяцев и номеров клиентов) и
анализ и сделает рассмотрим готовый пример _
In Диапазон_суммирования.Cells две функции, т.к. за вами
разделе Изменение заливкиNew Formatting RuleFind and Replace
Format Cells(больше) –
задачи.Сортировкой собираем все:Summ_CellFormat — сумирование
текущий. выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное его более комфортным автоматизированного регистра, который
Optional Цвет_берется_из_ячейки2 AsIf cll.Interior.ColorIndex = в моем excelZ выделенных ячеек.(Создание правила форматирования)(Найти и заменить)
(Формат ячеек).3.7Изменяем цвет заливки ячеек, цветные ячейки вМария ячеек с определеннымПервая функция в формуле форматирование»-«Создать правило». А за счет лучшей изображен ниже на Range)
Цвет_берется_из_ячейки.Interior.ColorIndex or _ можно только так.
: «НУ,ВЫ,БЛИН, ДАЕТЕ!»(с) -
Не забывайте, что настройки выберите вариант в этом неЭто одна из тех, как показано на основываясь на их
Народ подскажите как посчитать сумму ячеек выделенных цветом (Народ подскажите как посчитать сумму ячеек выделенных цветом)
одну сторону таблицы., читаем Правила форума, форматом; СЧЕТЕСЛИ проверяет условия:
в появившемся окне читабельности. рисунке:If Not Цвет_берется_из_ячейки2cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex Заранее спасибо. «На вопрос R
форматирования, сделанные такимUse a formula to сможет нам помочь. редких задач, по
рисунке ниже. значениях (динамически) – Как работать с создаём свою тему
Count_CellColor — подсчет сколько раз в «Создание правила форматирования»Обратите внимание! При наступленииПользователю только необходимо указать
Is Nothing Then ThenHugo
Dmitry отвечаю. Ваш образом, будут сохраняться
determine which cellsТеперь у Вас выделены которым нет разъясненияДалее нажмите кнопку Цвет заливки будет сортировкой, читайте в
и прикладываем файл ячеек с определенным
возвращаемом диапазоне с выберите опцию: «Использовать января месяца (D1), если клиент совершалFor Each cllsumma = summa
: А если УФ способ вроде подходит,
даже когда пустыеto format все ячейки с в файлах справкиFormat изменяться автоматически при статье «Сортировка в с примером цветом заливки, включая помощью функции СМЕЩ
формулу для определения формула автоматически меняет заказ в текущем In Диапазон_суммирования.Cells + cll.Value поменять? но подсчет кол-ва
excelworld.ru
ячейки заполнятся значениями
Мы с вами уже рассматривали вопрос о том как посчитать в Excel количество ячеек/значений в подробном видео уроке. Сегодня мы бы хотели немного расширить данную статью для решения более узкой задачи. Допустим, вам необходимо посчитать количество ячеек в зависимости от цвета ячеек или цвета текста.
Начиная с Excel 2007 в программе встроили возможность сортировки ячеек по цвету. Таким образом, можно отфильтровать нужный нам цвет, выделить оставшиеся на виду ячейки и визуально посмотреть общее количество ячеек. Но что делать, если нам требуется делать это часто и при этом нам необходимо, чтобы все считалось и пересчитывалось с помощью формул.
Для этих целей необходимо использовать очень простенький макрос, а точнее пользовательскую функцию, назовем ее ColorNom, она позволит нам вытягивать числовой код цвета заливки и далее по этому коду мы и будет считать общее количество ячеек, используя приемы, описываемые в статье как посчитать в Excel количество ячеек/значений
Итак, приступим. Зайдите в редактор Visual Basic, для этого:
в Excel 2003 нажмите на Сервис, далее Макрос и затем Редактор Visual Basic.
в Excel 2007, 2010 и 2013 это делается по-другому. Зайдите в раздел Разработчик, далее выберите Visual Basic
Внимание! Раздел панели инструментов Разработчик в Excel 2007 доступен по умолчанию, а в Excel 2010 и 2013 его необходимо включить. Это особенно полезно сделать тем пользователям, которые будут часто работать с макросами. Чтобы включить панель инструментов Разработчик в Excel 2010 или 2013 необходимо запустить Файл | Параметры | Настройка ленты после этого необходимо с правой стороны необходимо поставить галочку напротив надписи Разработчик
После того как откроется редактор Visual Basic, вставьте пустой модуль, для этого выберите меню Insert и далее Module
и скопируйте туда текст простой функции:
Public Function ColorNom(Cell As Range)
ColorNom = Cell.Interior.ColorIndex
End Function
После этого закройте редактор Visual Basic и можно вернуться к нашему файлу. В любой пустой ячейки введите пользовательскую функцию, которую мы ввели раннее. В нашем случае это функция ColorNom, ее можно вызвать либо через меню Вставка, Функция — категория Определенные пользователем, либо просто можно напечатать ее в самой ячейке =ColorNom(A1), где A1 — это наша ячейка, в которой нам необходимо определить индекс цвета.
После этого уже не составит труда посчитать количество ячеек или значений в зависимости от цвета ячейки. Используйте нашу статью как посчитать в Excel количество ячеек/значений
Если вам необходимо посчитать количество значений или сумму в зависимости от цвета текста, то необходимо немного изменить код пользовательской функции.
Public Function ColorNom(Cell As Range)
ColorNom = Cell.Font.ColorIndex
End Function
Важно! Вы не сможете находить с помощью данной функции номер цвета ячейки при использовании условного форматирования. Кроме того, при изменении цвета ячейки Excel не пересчитывает значения, необходимо это делать в ручную, нажимая Ctrl+Alt+F9, либо изменения будут происходить при новом открытии данного файла. Это происходит из-за того, что Excel не считает изменение цвета ячейки редактированием формулы. В связи с этим, если это критично, то можно внести изменение в саму формулу, просто добавив функцию, которая постоянно пересчитывается и при этом не повлияет на определение цвета ячейки. Например, указать функцию определения текущей даты, умноженную на ноль.
В нашем случае функция будет выглядеть следующем образом.
=ColorNom(A1)+Сегодня()*0
Пример подсчета количества значений по цвету цвету заливки ячеек в Excel
Рассмотрим вышеуказанный пример с перечнем фруктов. Мы определили код ячеек и отобразили его напротив каждой ячейки.
Далее для удобства мы создадим вспомогательную таблицу из всех существующих цветов заливки. В нашем случае это красный, зеленый и желтый. Рядом с помощью все той же формулы определим код цвета.
В третьем столбце мы уже будет считать количество ячеек определенного цвета по условию, использую код цвета.
Считать количество мы будем с помощью функции СЧЁТЕСЛИ
Вот так выглядят аргументы данной функции
=СЧЁТЕСЛИ(диапазон;критерий)
Пропишем формулу:
=СЧЁТЕСЛИ($B$1:$B$8;E2)
Диапазон мы указали со знаком доллара, чтобы он был закреплен и можно было протянуть формулу. Критерия у нас встречается всего три и они указаны в нашей вспомогательной таблице. Протянем формулу и получим количество ячеек по цветам.
Скачать пример файла: Цвет_Ячеек.xlsm (файл с поддержкой макросов)
Предположим, у вас есть диапазон ячеек с разными цветами фона, такими как красный, зеленый, синий и т. Д., Но теперь вам нужно подсчитать, сколько ячеек в этом диапазоне имеют определенный цвет фона, и суммировать цветные ячейки с тем же определенным цветом. . В Excel нет прямой формулы для вычисления суммы и количества цветных ячеек, здесь я расскажу вам о некоторых способах решения этой проблемы.
- Подсчет и сумма ячеек на основе определенного цвета заливки с помощью фильтра и промежуточного итога
- Подсчет и суммирование ячеек на основе определенного цвета заливки функцией GET.CELL
- Подсчет и суммирование ячеек на основе определенного цвета заливки с помощью функции, определяемой пользователем
- Подсчет и сумма ячеек на основе определенного цвета заливки с помощью функций Kutools
- Подсчет и суммирование ячеек на основе определенного цвета заливки (или цвета условного форматирования) с Kutools for Excel
Подсчет и сумма цветных ячеек с помощью фильтра и ПРОМЕЖУТОЧНОГО ИТОГА
Предположим, у нас есть таблица продаж фруктов, как показано на скриншоте ниже, и мы посчитаем или просуммируем цветные ячейки в столбце «Сумма». В этой ситуации мы можем отфильтровать столбец Amount по цвету, а затем легко подсчитать или суммировать отфильтрованные цветные ячейки с помощью функции SUBTOTAL в Excel.
1. Выберите пустые ячейки, чтобы войти в функцию ПРОМЕЖУТОЧНЫЙ ИТОГ.
- Чтобы подсчитать все ячейки с одинаковым цветом фона, введите формулу = ПРОМЕЖУТОЧНЫЙ ИТОГ (102; E2: E20);
- Чтобы суммировать все ячейки с одинаковым цветом фона, введите формулу = ПРОМЕЖУТОЧНЫЙ ИТОГ (109; E2: E20);
Внимание: В обеих формулах E2: E20 — это столбец Сумма, содержащий цветные ячейки, и вы можете изменить их по своему усмотрению.
2. Выберите заголовок таблицы и нажмите Данные > Фильтр. Смотрите скриншот:
3. Щелкните значок фильтра в ячейке заголовка столбца Сумма и щелкните Фильтр по цвету и указанного цвета вы будете считать по очереди. Смотрите скриншот:
После фильтрации обе формулы SUBTOTAL подсчитывают и суммируют все отфильтрованные цветные ячейки в столбце Amount автоматически. Смотрите скриншот:
Внимание: Этот метод требует, чтобы цветные ячейки, которые вы будете подсчитывать или суммировать, находятся в одном столбце.
Один щелчок для подсчета, суммирования и усреднения цветных ячеек в Excel
С отличным Считать по цвету особенность Kutools for Excel, вы можете быстро подсчитывать, суммировать и усреднять ячейки по заданному цвету заливки или цвету шрифта всего одним щелчком мыши в Excel. Кроме того, эта функция также будет определять максимальное и минимальное значения ячеек по цвету заливки или цвету шрифта.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Подсчет или сумма цветных ячеек с помощью функции GET.CELL
В этом методе мы создадим именованный диапазон с помощью функции GET.CELL, получим цветовой код ячеек, а затем легко посчитаем или суммируем по цветовому коду в Excel. Пожалуйста, сделайте следующее:
1. Нажмите Формулы > Определить имя. Смотрите скриншот:
2. В диалоговом окне «Новое имя» выполните следующие действия:
(1) Введите имя в поле Имя;
(2) Введите формулу = GET.CELL (38; Sheet4! $ E2) в поле «Относится к» (внимание: в формуле, 38 означает возврат кода ячейки, и Sheet4! $ E2 — это первая ячейка в столбце Сумма, за исключением заголовка столбца, который необходимо изменить в зависимости от данных таблицы.)
(3) Щелкните значок OK кнопку.
3. Теперь добавьте новый столбец «Цвет» прямо в исходную таблицу. Затем введите формулу = NumColor , и перетащите маркер автозаполнения, чтобы применить формулу к другим ячейкам в столбце «Цвет». Смотрите скриншот:
Внимание: В формуле NumColor — это именованный диапазон, который мы указали на первых двух шагах. Вам необходимо изменить его на указанное вами имя.
Теперь цветовой код каждой ячейки в столбце «Сумма» возвращается в столбце «Цвет». Смотрите скриншот:
4. Скопируйте и укажите цвет заливки в пустом диапазоне на активном листе и введите формулы рядом с ним, как показано ниже:
A. Чтобы подсчитать ячейки по цвету, введите формулу = СЧЁТЕСЛИ ($ F $ 2: $ F $ 20, NumColor);
Б. Чтобы суммировать ячейки по цвету, введите формулу = СУММЕСЛИ ($ F $ 2: $ F $ 20, NumColor, $ E $ 2: $ E $ 20).
Внимание: В обеих формулах 2 франка: 20 франкских долларов столбец Цвет, NumColor это указанный именованный диапазон, 2 доллара E $: 20 E $ — это столбец суммы, и вы можете изменить их по своему усмотрению.
Теперь вы увидите, что ячейки в столбце «Сумма» подсчитываются и суммируются по цветам заливки.
Подсчет и суммирование ячеек на основе определенного цвета заливки с помощью функции, определяемой пользователем
Предположим, что цветные ячейки разбросаны в диапазоне, как показано на скриншоте ниже, оба вышеуказанных метода не могут подсчитать или суммировать цветные ячейки. Здесь этот метод представит VBA для решения проблемы.
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
VBA: подсчет и суммирование ячеек на основе цвета фона:
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell, vResult)
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
ColorFunction = vResult
End Function
3. Затем сохраните код и примените следующую формулу:
А. Подсчитайте цветные клетки: = цветовая функция (A; B: C; ЛОЖЬ)
Б. Суммируйте цветные ячейки: = функция цвета (A; B: C; ИСТИНА)
Примечание. В формулах выше A — это ячейка с определенным цветом фона, для которого нужно вычислить количество и сумму, и ДО Н.Э — это диапазон ячеек, в котором вы хотите вычислить количество и сумму.
4. Например, сделайте следующий снимок экрана, введите формулу= цветовая функция (A1; A1: D11; ЛОЖЬ) подсчитать желтые клетки. И воспользуйтесь формулой = цветовая функция (A1; A1: D11; ИСТИНА) суммировать желтые ячейки. Смотрите скриншот:
5. Если вы хотите подсчитать и суммировать другие цветные ячейки, повторите шаг 4. Тогда вы получите следующие результаты:
Подсчет и сумма ячеек на основе определенного цвета заливки с помощью функций Kutools
Kutools for Excel также поддерживает некоторые полезные функции, помогающие пользователям Excel выполнять специальные вычисления, например, подсчет по цвету фона ячейки, суммирование по цвету шрифта и т. д.
1. Выберите пустую ячейку, в которую вы помещаете результаты подсчета, и нажмите Кутулс > Kutools Функции > Статистические и математические > COUNTBYCELLCOLOR. Смотрите скриншот:
2. В диалоговом окне «Аргументы функций» укажите диапазон, в котором будут подсчитываться цветные ячейки в Справка выберите ячейку, заполненную указанным цветом фона в поле Color_index_nr и нажмите OK кнопка. Смотрите скриншот:
Ноты:
(1) Вы также можете ввести указанную функцию Kutools = COUNTBYCELLCOLOR ($ A $ 1: $ E $ 20, G2) непосредственно в пустой ячейке или строке формул, чтобы получить результаты подсчета;
(2) Нажмите Кутулс > Kutools Функции > Статистические и математические > SUMBYCELLCOLOR или типа = SUMBYCELLCOLOR ($ A $ 1: $ E $ 20, G2) в пустой ячейке непосредственно для суммирования ячеек на основе указанного цвета фона.
Применить COUNTBYCELLCOLOR и SUMBYCELLCOLOR функции для каждого цвета фона отдельно, и вы получите результаты, как показано на скриншоте ниже:
Kutools Функции содержат ряд встроенных функций, помогающих пользователям Excel легко вычислять, в том числе Количество / Сумма / Среднее количество видимых ячеек, Подсчет / сумма по цвету ячейки, Подсчет / сумма по цвету шрифта, Считайте символы, Считать жирным шрифтом, И т.д. Получите бесплатную пробную версию!
Подсчет и суммирование ячеек на основе определенного цвета заливки с помощью Kutools for Excel
С помощью указанной выше функции, определяемой пользователем, вам необходимо вводить формулу один за другим, если есть много разных цветов, этот метод будет утомительным и трудоемким. Но если у вас есть Kutools for ExcelАвтора Считать по цвету утилита, вы можете быстро сформировать отчет по цветным ячейкам. Вы можете не только подсчитывать и суммировать цветные ячейки, но также получать среднее, максимальное и минимальное значения цветного диапазона.
1. Выберите диапазон, который вы хотите использовать, и нажмите Кутулс Плюс > Считать по цвету, см. снимок экрана:
2. И в Считать по цвету диалоговое окно, пожалуйста, сделайте как показано на скриншоте ниже:
(1) Выберите Стандартное форматирование из Цветовой метод раскрывающийся список;
(2) Выберите проверка данных
из Тип подсчета выпадающий список.
(3) Нажмите кнопку «Создать отчет».
Внимание: Чтобы подсчитать и суммировать цветные ячейки по определенному условному цвету форматирования, выберите Условное форматирование из Цветовой метод раскрывающийся список в диалоговом окне выше или выберите Стандартное и условное форматирование из раскрывающегося списка, чтобы подсчитать все ячейки, заполненные указанным цветом.
Теперь вы получите новую книгу со статистикой. Смотрите скриншот:
Наблюдения и советы этой статьи мы подготовили на основании опыта команды Считать по цвету функция вычисляет ячейки (количество, сумма, среднее, максимальное и т. д.) по цвету фона или цвету шрифта. Получите бесплатную пробную версию!
Связанная статья:
Демонстрация: подсчет и суммирование ячеек на основе фона, цвет условного форматирования:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!