Автосумма в excel по цвету ячейки

Skip to content

Сумма по цвету и подсчёт по цвету в Excel

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

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

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

Помимо использования сторонних надстроек, есть только одно возможное решение — использование пользовательских функций. Если вы очень мало знаете об этой технологии или никогда раньше не слышали этот термин, не пугайтесь, вам не придется писать код самостоятельно. Здесь вы найдете готовое решение, и все, что вам нужно сделать, это скопировать / вставить его в свою книгу.

Функции и макросы, которые мы рассмотрим в этой статье, помогут нам сделать следующее:

  • Как посчитать по цвету и суммировать по цвету на листе Excel
  • Как суммировать по цвету и сосчитать по цвету во всей рабочей книге
  • Пользовательские функции для получения цвета ячейки, цвета шрифта и цветового кода
  • Как считать по цвету и суммировать ячейки, окрашенные с использованием условного форматирования
  • Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel

Как посчитать по цвету и суммировать по цвету на листе Excel

Предположим, у вас есть таблица со списком заказов, в которой ячейки в столбце «Количество» окрашены в зависимости от их значения в колонке «Выполнение» и даты: ячейки с выполняемыми заказами сроком до 30 дней от текущей даты  — желтые,  уже выполненные — зеленые, а просроченные заказы — красные.

Теперь нам нужно автоматически подсчитать ячейки определенного цвета, т.е. посчитать количество красных, зеленых и желтых ячеек в таблице. Как я объяснил выше, прямого решения этой задачи при помощи стандартных формул Excel не существует. Но, к счастью, есть код VBA для Excel. Выполните 5 быстрых шагов ниже, и вы узнаете число и сумму ваших цветных ячеек всего за несколько минут.

  1. Откройте книгу Excel и нажмите Alt+F11, чтобы открыть редактор Visual Basic (VBE).
  2. Щелкните правой кнопкой мыши имя своей книги в разделе «Project–VBAProject» в правой части экрана, а затем выберите «Вставить» > «Модуль» в контекстном меню.

  1. Добавьте в вашу рабочую книгу следующий код:
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
  1. Сохраните свою книгу как «Книга Excel с поддержкой макросов (.xlsm)».

Если вы новичок и вам сложно работать с VBA, вы можете найти подробные пошаговые инструкции и несколько полезных советов в этом руководстве: Как вставить и запустить код VBA в Excel .

  1. Теперь, когда вся подготовительная работа сделана, выберите ячейку, в которой вы хотите получить результат, и введите в нее только что записанную нами пользовательскую функцию 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

Как использовать этот макрос для подсчета цветных ячеек и суммирования их значений.

Опишем процесс пошагово:

  1. Добавьте приведенный выше код на лист, как описано в первом параграфе статьи .
  2. Выберите ячейку с нужным цветом.
  3. Нажмите и удерживайте Ctrl.
  4. Выберите диапазон, в котором вы хотите подсчитать цветные ячейки и/или суммировать по цвету, если у вас есть числовые данные.
  5. Отпустите клавишу Ctrl.
  6. НажНажмите комбинацию  Alt+F8, чтобы открыть список макросов в вашей книге.
  7. Выберите макрос SumCountByConditionalFormat и нажмите «Выполнить» .

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

Сначала выбираем ячейку D5, поскольку хотим подсчитать ячейки красного цвета с просроченными заказами.

Затем дополнительно, удерживая Ctrl, выделяем диапазон ячеек в столбце D, по которым нужно выполнить подсчет ячеек определенного цвета.

Выполняем макрос, как показано на скриншоте ниже.

В результате вы увидите следующее сообщение с результатами:

Для этого примера мы выбрали столбец «Количество» и получили следующие цифры:

  1. Count — это количество ячеек определенного цвета, красного в нашем случае, который отмечает ячейки «Просрочен».
  2. Sum — это сумма значений всех красных ячеек в выбранной колонке, т.е. общее количество «Просроченных» заказов.
  3. Color — это шестнадцатеричный код цвета выбранной ячейки, в нашем случае D5.

Таким образом мы можем посчитать сумму и количество по цвету ячеек с условным форматированием.

Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel

Я могу рекомендовать вам надстройку для Excel, которая бы считала и суммировала ячейки по указанному вами цвету или по всем цветам в выбранном диапазоне.

При этом не имеет значения, как установлены эти цвета – прямым форматированием ячейки либо при помощи условного форматирования.

Позвольте представить вам наш совершенно новый инструмент — «Счет и сумма по цвету» для Excel. Он имеет два варианта подсчета — «Один цвет» и «Все цвета», как видно на скриншоте ниже.

Подсчет и суммирование по одному цвету.

Вы нажимаете кнопку « Один цвет » на ленте, и в левой части рабочего листа открывается панель « Подсчет и сумма по цвету» . На панели вы выбираете:

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

После этого нажмите « Рассчитать » и сразу же увидите результат в нижней части панели! Помимо подсчета и суммы, надстройка вычисляет среднее значение и находит максимальное и минимальное значения. Никаких макросов, никаких формул, никакой боли :)

Обратите внимание, что подсчет возможен как по цвету фона, так и по цвету шрифта.

Подсчет и суммирование ячеек по всем цветам в выбранном диапазоне

Опция «Все цвета» работает в основном так же, за исключением того, что вам не нужно выбирать цвет. В разделе «Result for ..» вы можете выбрать любой из параметров: Количество, Сумма, Среднее, Максимальное или Минимальное значение  и другие.

Если вы хотите скопировать результаты на свой рабочий лист, нажмите кнопку «Paste All» в нижней части панели .

В настоящее время надстройка доступна как часть Ultimate Suite for Excel . Это коллекция отличных инструментов, специально разработанных для решения самых утомительных, кропотливых и подверженных ошибкам задач в Excel.

В дополнение к надстройке «Подсчет и суммирование по цвету», Ultimate Suite включает более 70 инструментов, которые помогут вам объединить данные из разных листов, удалить дубликаты, сравнить листы на совпадения и различия и многое другое.

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

Функция СУММПРОИЗВ с примерами формул В статье объясняются основные и расширенные способы использования функции СУММПРОИЗВ в Excel. Вы найдете ряд примеров формул для сравнения массивов, условного суммирования и подсчета ячеек по нескольким условиям, расчета средневзвешенного значения…
Проверка данных с помощью регулярных выражений В этом руководстве показано, как выполнять проверку данных в Excel с помощью регулярных выражений и пользовательской функции RegexMatch. Когда дело доходит до ограничения пользовательского ввода на листах Excel, проверка данных очень полезна. Хотите…
Поиск и замена в Excel с помощью регулярных выражений В этом руководстве показано, как быстро добавить пользовательскую функцию в свои рабочие книги, чтобы вы могли использовать регулярные выражения для замены текстовых строк в Excel. Когда дело доходит до замены…
Как извлечь строку из текста при помощи регулярных выражений В этом руководстве вы узнаете, как использовать регулярные выражения в Excel для поиска и извлечения части текста, соответствующего заданному шаблону. Microsoft Excel предоставляет ряд функций для извлечения текста из ячеек. Эти функции…
4 способа отладки пользовательской функции Как правильно создавать пользовательские функции и где нужно размещать их код, мы подробно рассмотрели ранее в этой статье.  Чтобы решить проблемы при создании пользовательской функции, вам скорее всего придется выполнить…


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

Функции для суммирования значений по цвету ячеек в 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 в последних версиях научился, то суммировать по цвету до сих пор не умеет.

Чтобы исправить этот существенный недостаток можно использовать несложные пользовательские макрофункции на 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.

​Смотрите также​​: См. строку 61​And Not bCellIsHidden(cll)​ ​ Цвет_берется_из_ячейки.Interior.ColorIndex And cll.EntireRow.Hidden​​ Цвет_берется_из_ячейки.Interior.ColorIndex or _​ indColumn As Long​Если требуется отобрать ячейки​ надо отсортировать в​ них. Если Вы​Если Вы довольны цветом,​ будете использовать в​ все ячейки с​ нет прямого решения.​ нажмите​
​Снимки экрана для​ от её значения​
​ состояния будет видно​Рассмотрим,​_Boroda_​ Then​
​ = False Or​cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex​ Dim arResults() Application.Volatile​ с одним определённым​ таблице.​ не упустили шанс​ жмите​ 99% случаев, то​ заданным значением (значениями)​
​ И это понятно,​ОК​ этого примера были​ в Excel 2013,​
​ их сумма. Строку​
​как посчитать количество цветных​ ​: Все Вам там​
​summa = summa​ _​ Then​ If xlRange Is​ цветом шрифта, то​Нажмите​ прочитать ту статью,​
​ОК​
​ есть заливка ячеек​ при помощи опции​ так как эта​.​ сделаны в Excel​ 2010 и 2007.​ состояния можно настроить​ ячеек в​ переделал.​ + cll.Value​cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex​​summa = summa​ Nothing Then Set​ можно снова использовать​ОК​ у Вас, вероятно,​. Вы увидите, как​
​ будет изменяться в​Find All​ задача не типичная.​Результат Ваших настроек форматирования​ 2010, однако, в​ Кроме того, Вы​Как посчитать цветные ячейки в Excel.​ – смотрите ниже.​Excel​Лист «Табель» -​
​End If​ _​ + cll.Value​ xlRange = Application.ThisCell​ автофильтр Excel:​
​и проверьте в​ возник вопрос, почему​ созданное правило немедленно​ соответствии с заданным​(Найти все) в​ И всё же,​ будет выглядеть приблизительно​
​ Excel 2007 и​
​ узнаете, как в​Как посчитать цветные ячейки​. Закрасить ячейки в​ строку 7 и​Next​And cll.EntireRow.Hidden =​End If​ End If If​
​Кроме упорядочивания ячеек по​ правильном ли порядке​ ​ мы не уделили​​ будет применено к​
​ Вами условием.​​ Excel.​ если Вам нужно​ ​ так:​​ 2013 кнопки, диалоговые​ Excel использовать формулы,​
​ в​
​ таблице можно самим,​ условное форматирование,​End If​ False Then​Next​ xlRange.Count > 1​ цвету заливки и​
​ расположились строки с​ внимание сортировке и​ таблице.​Для примера снова возьмём​​Однако, в действительности нам​ изменить цвет заливки​
​Так как нам нужно​ окна и настройки​ чтобы изменять цвет​Excel​ можно установить условное​Лист1 — строку​СУММ_ЦВЕТ = summa​summa = summa​СУММ_ЦВЕТ = summa​ Then ReDim arResults(1​ цвету шрифта, встречаются​
​ данными.​​ фильтрации ячеек по​
​Однажды настроенная заливка будет​ ​ таблицу цен на​
​ нужно найти все​ ячеек окончательно, то​ настроить ещё одно​ будут точно такие​ пустых ячеек или​.​ форматирование, чтобы ячейки​ 2 и условное​End Function​ + cll.Value​End Function​
​ To xlRange.Rows.Count, 1​​ некоторые другие задачи,​
​В нашей таблице вверх​ их цвету. Причина​ оставаться неизменной, не​ бензин, но на​ цены на бензин,​ есть раз и​ условие, позволяющее изменять​ же или с​ ячеек с ошибками​Можно​ окрашивались по условию.​
​ форматирование​Function bCellIsHidden(rngCell As​End If​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348;F349)​ To xlRange.Columns.Count) For​ когда возможность сортировать​ переместились строки со​ в том, что​ зависимо от значения​ этот раз добавим​ превышающие​ на всегда (либо​ цвет заливки на​ незначительными отличиями.​ в формулах.​посчитать количество цветных ячеек​

excel-office.ru

2 способа изменить цвет заливки ячеек в Excel в зависимости от их значений

​ Как настроить таблицу,​Все нижние доп.​ Range) As Boolean​Next​Leojse​ indRow = 1​ по цвету оказывается​ значением​ сортировка ячеек по​ ячейки.​ ещё пару штатов,​$3.7​ пока Вы не​ зелёный для ячеек​

​Итак, вот, что нужно​Каждому известно, что для​ в​ чтобы ячейки окрашивались​ строки постирал​bCellIsHidden = rngCell.EntireRow.Hidden​​Else​​: Саня, Спасибо! Вот​ To xlRange.Rows.Count For​ очень удобной.​Past Due​ цвету в Excel​Если Вы хотите настроить​ а некоторые ячейки​. К сожалению, инструмент​ измените его вручную),​ со значениями меньшими​ сделать по шагам:​ изменения цвета заливки​Excel​ по условию, смотрите​Ну и формулу​ Or _​For Each cll​ как все просто)​ indColumn = 1​Настроим, для примера, условное​

  • ​(столбец​ требует немного другого​ постоянный цвет заливки​ сделаем пустыми. Теперь​Find and Replace​ выполните следующие шаги.​
  • ​ или равными​Выделите таблицу или диапазон,​ одной ячейки или​. Например, у нас​ в статье «Условное​ написал.​rngCell.EntireColumn.Hidden​ In Диапазон_суммирования.Cells​
  • ​Leojse​ To xlRange.Columns.Count arResults(indRow,​ форматирование с использованием​

Как в Excel динамически изменять цвет ячейки, основываясь на её значении

​Delivery​ подхода. Далее мы​ пустых ячеек или​

​ посмотрите, как Вы​​(Найти и заменить)​Тут возможно несколько сценариев,​3.45​ в котором Вы​ целого диапазона в​ такая таблица.​ форматирование в Excel».​Переделал бы еще​End Function​If cll.Interior.ColorIndex =​

​: А можно еще​​ indColumn) = xlRange(indRow,​ наборов значков по​), за ними следуют​ рассмотрим этот вопрос​ ячеек с формулами,​ сможете обнаружить эти​

​ в этом не​ в зависимости от​, то снова нажимаем​ хотите изменить цвет​ Excel достаточно просто​​Первый способ.​​У нас такая​ и формулу в​Leojse​​ Цвет_берется_из_ячейки.Interior.ColorIndex _​​ вопрос? Получается, нужно​

Изменяем цвет заливки ячеек в Excel

​ indColumn).Interior.Color Next Next​​ столбцу​ строки со значениями​ подробнее.​ которые содержат ошибки,​ пустые ячейки и​ сможет нам помочь.​ того, значения какого​ кнопку​ заливки ячеек. В​ нажать кнопку​

​Сортировкой собираем все​ таблица.​

  1. ​ F8:…, но не​: Просто ради интереса​And cll.EntireRow.Hidden =​ всегда теперь вводить​ GetCellColor = arResults​Qty.​​Due in​​Сортировка по цвету заливки​ используйте этот способ:​ изменить цвет их​Теперь у Вас выделены​
  2. ​ типа Вы ищите.​​New Rule​​ этом примере мы​​Fill color​​ цветные ячейки в​​Как закрасить ячейку самим,​​ знаю, что Вы​​ попробовал код Сани,​​ False Then​Изменяем цвет заливки ячеек в Excel
  3. ​ две ячейки-образца… Я​ Else GetCellColor =​​, где указано количество​​и в конце​ ячейки​​Выделите таблицу или диапазон​​ заливки.​ все ячейки с​​Если Вы хотите раскрасить​(Создать правило) и​​ выделяем​(Цвет заливки). Но​
  4. ​ одну сторону таблицы.​ смотрите в статье​​ там написать хотели.​​ который в сборе)​summa = summa​ наверно неправильно выразился​ xlRange.Interior.Color End If​ заказов (см. рисунок​ – строки со​Сортировка по цвету шрифта​​ и нажмите​​На вкладке​​ заданным значением (или​​ ячейки с конкретным​​ повторяем шаги с​​$B$2:$H$10​ как быть, если​Изменяем цвет заливки ячеек в Excel​ Как работать с​​ «Текст Excel. Формат.»​​ Тогда, возможно, формула​Выдает ошибку на​ + cll.Value​ в постах выше…​ End Function​
  5. ​ ниже):​​ значением​​Сортировка по значку​F5​​Home​​ значениями), мы сделали​ значением, например,​ 3 по 6,​​(заголовки столбцов и​​ необходимо изменить цвет​Изменяем цвет заливки ячеек в Excel
  6. ​ сортировкой, читайте в​ тут.​​ в АТ8 получилась​​ первой строчке​End If​​ Я хотел, что​​Скопируйте эту формулу во​Как видите, мы отметили​Delivered​Фильтрация ячеек в Excel​​, чтобы открыть диалоговое​​(Главная) в разделе​Изменяем цвет заливки ячеек в Excel

​ это только что​50​ устанавливая нужное правило.​

Изменяем цвет заливки ячеек в Excel

​ первый столбец, содержащий​ заливки всех ячеек,​ статье «Сортировка в​Можно написать формулу,​ бы попроще​200?’200px’:»+(this.scrollHeight+5)+’px’);»>And Not bCellIsHidden(cll) Or​Next​​если​​ все ячейки столбца​ крупные заказы (с​​. Все в точности,​​ по цвету заливки​ окно​Styles​ при помощи инструмента​,​ Ниже виден образец​ названия штатов, не​

Изменяем цвет заливки ячеек в Excel

​ содержащих определённое значение?​ Excel».​​ с помощью которой,​​kiv3383​ _​End If​нужно посчитать еще​Filter by color​ количеством более 6)​ как мы настроили​Сортировка ячеек в Excel​Go To​(Стили) нажмите​:)

Изменяем цвет заливки ячеек в Excel

​Find and Replace​​100​ созданного нами второго​ выделяем).​ Более того, что​Выделяем цветные ячейки.​ будут окрашиваться определенные​​: Всем большое спасибо,​​, выделяя при​СУММ_ЦВЕТ = summa​​ один цвет, то​​.​ красными значками, средние​ в диалоговом окне​ по цвету заливки​(Переход), затем нажмите​

Изменяем цвет заливки ячеек в Excel

Как настроить постоянный цвет ячейки, основываясь на её текущем значении

​Conditional Formatting​(Найти и заменить).​или​ правила условного форматирования:​Откройте вкладку​ если Вы хотите,​

​ В строке состояния​​ ячейки. О таком​ думал что без​ этом cll. Ошибка​End Function​ дополнительно указать еще​Примените автофильтр Excel и​ заказы отмечены жёлтыми​Сортировка​

​ – это одна​​ кнопку​(Условное форматирование) >​ Всё, что Вам​3.4​​Когда все будет готово​​Home​ чтобы цвет заливки​ (внизу окна) смотрим,​ способе окрасить ячейки,​​ макроса не обойтись.​​ — Compile error:​

​Пробуйте​ одну ячейку-образец. Это​ затем выберите нужные​ значками и самые​(Sort).​ из простейших операций,​Special​New Rule​ осталось сделать, это​– то на​ – жмите​(Главная), в разделе​ каждой ячейки изменялся​ сколько ячеек выделено.​ читайте в статье​Nikls2502​ ByRef argument type​Саня​ никак не поправить?​ цвета по их​

Найти и выделить все ячейки, удовлетворяющие заданному условию

​ маленькие – зелёными​Совет:​ наравне с подсчётом​(Выделить).​

​(Создать правило). Точно​ задать цвет заливки​ вкладке​​ОК​​Styles​​ автоматически вместе с​​Видим – в таблице​​ «Закрасить ячейку по​​: Народ подскажите как​ mismatch. Так что​​:​​ То есть, если​​ кодам в выпадающем​​ значками. Если нужно​​Если ячейки раскрашены​​ количества ячеек, суммированием​В диалоговом окне​​ также, как на​​ выбранным ячейкам.​

Изменяем цвет заливки ячеек в Excel

​Home​. Теперь у Вас​​(Стили) нажмите​​ изменением содержимого этой​

Изменяем цвет заливки ячеек в Excel

​ три цветные ячейки.​​ условию в Excel​ посчитать сумму ячеек​​ пользуюсь Вашим кодом,​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function bCellIsHidden(rngCell As Range)​ не указана вторая​​ меню автофильтра.​​ расположить самые важные​ в большое количество​ и даже фильтрацией.​Go to Special​ 2-м шаге примера​​Откройте диалоговое окно​​(Главная) в разделе​​ имеется мило отформатированная​​Conditional Formatting​ ячейки? Далее в​Если не показывает​ формулой».​ выделенных цветом​SkyPro​ As Boolean​ ячейка-образец, суммируем по​В результате получится вот​

​ заказы в начале​ различных цветов –​ Не потребуются ни​(Выделить группу ячеек)​​ Как динамически изменять​​Format Cells​​Editing​​ таблица, которая даёт​(Условное форматирование) >​

Изменяем цвет заливки ячеек в Excel

​ статье Вы найдёте​ количество выделенных ячеек,​Как закрасить ячейки,​Michael_S​​, но и​​bCellIsHidden = rngCell.EntireRow.Hidden​ первой.​​ такая таблица, где​​ списка, воспользуемся инструментом​ не обязательно создавать​ код VBA, ни​​ отметьте вариант​​ цвет ячейки, основываясь​

Изменяем цвет заливки ячеек в Excel

​(Формат ячеек) любым​(Редактирование) нажмите​ возможность с первого​New Rule​​ ответы на эти​​ то нажимаем правой​ разобрались. Теперь, разберем,​

​: Смотря как они​Сане​ Or _​Саня​​ показаны строки только​​Настраиваемая сортировка​​ правило для каждого.​​ формулы. Мы просто​Blanks​ на её значении.​

Измененяем цвета заливки выделенных ячеек при помощи диалогового окна «Формат ячеек»

​ из 3-х способов:​Find Select​ взгляда увидеть максимальные​(Создать правило).​ вопросы и получите​ кнопкой мыши на​​ как считать цветные​​ выделены. Если вручную​огромное спасибо)​rngCell.EntireColumn.Hidden​:​ с двумя выбранными​

​(Custom Sort), как​​ Настройте правила сортировки​​ воспользуемся инструментом «​(Пустые ячейки), чтобы​

  • ​В диалоговом окне​​нажав​​(Найти и выделить)​
  • ​ и минимальные цены​В верхней части диалогового​ пару полезных советов,​ строку состояния и​ ячейки.​​ — то только​​Саня​
  • ​End Function​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range,​​ цветами заливки:​​ это было описано​​ только для тех​​Настраиваемая сортировка​​ выделить все пустые​​New Formatting Rule​​Ctrl+1​

​ >​ на бензин в​ окна​ которые помогут выбрать​ ставим галочки у​Первый вариант.​:)

Изменяем цвет заливки ячеек в Excel

​ макросом, если применялось​: И Вам огромное​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>And Not bCellIsHidden(cll)​ Цвет_берется_из_ячейки As Range,​На этом, пожалуй, всё​ выше, и настроим​​ цветов, которыми отмечены​​», который присутствует во​ ячейки.​

Изменяем цвет заливки ячеек в Excel

​(Создание правила форматирования)​.​

Изменяем цвет заливки ячеек в Excel

​Find​ разных штатах. Хорошо​New Formatting Rule​ правильный метод для​ нужных функций. Так​Сумма цветных ячеек в​ УФ — то​ спасибо, заходите еще…​

Изменяем цвет заливки для особых ячеек (пустые, с ошибкой в формуле)

​ Then​ _​ на сегодня, благодарю​ сортировку по признаку​ действительно важные данные​ всех современных версиях​

Используем формулу для изменения цвета заливки особых ячеек в Excel

​Если Вы хотите выделить​ выберите вариант​кликнув по любой выделенной​

​(Найти).​ им там, в​(Создание правила форматирования)​ решения каждой конкретной​ можно быстро посчитать​Excel.​ по условию УФ​перед​

​SkyPro​optional Цвет_берется_из_ячейки2 As​ за внимание!​ –​ (в нашем примере​ Excel 2013, 2010​ ячейки, содержащие формулы​Use a formula to​ ячейке правой кнопкой​Введите нужное значение и​ Техасе!​ в поле​

  1. ​ задачи.​​ выделенные ячейки –​​Чтобы быстро посчитать​​vikttur​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>If Not Цвет_берется_из_ячейки2 Is​​: Да, что-то я​​ Range)​​Урок подготовлен для Вас​​Значок ячейки​ это строки со​ и 2007.​ с ошибками, отметьте​ determine which cells​ мыши и выбрав​
  2. ​ нажмите​​Совет:​​Select a Rule Type​Изменяем цвет заливки ячеек,​​ сумму, среднее значение,​ данные в желтых​ ​: Например, Надстройка для​​ Nothing Then​ не подумал о​if not Цвет_берется_из_ячейки2is​​ командой сайта office-guru.ru​(Cell Icon).​​ значением​Выделите свою таблицу или​ вариант​to format​
    • ​ в контекстном меню​Find All​

      ​Таким же способом​
      ​(Выберите тип правила)​

    • ​ основываясь на их​ т.д.​ ячейках, установим фильтр.​

      ​ суммирования по цвету​
      ​Код200?'200px':''+(this.scrollHeight+5)+'px');">dim cll as​

    ​ скрытых столбцах​ nothing then​Источник: https://www.ablebits.com/office-addins-blog/2013/12/18/sort-by-color-excel/​Достаточно указать очерёдность для​Past Due​ диапазон ячеек.​Formulas​(Использовать формулу для​ пункт​(Найти все).​ Вы можете изменять​

    ​ выберите​
    ​ значениях (динамически) –​

    Изменяем цвет заливки ячеек в Excel

  3. ​Второй способ​​ Какими способами установить​​ заливки,шрифта, формату​ range​Leojse​​For Each cll​​Перевел: Антон Андронов​ первых двух (из​​), а все остальные​​На вкладке​(Формулы) >​ определения форматируемых ячеек).​Format Cells​Совет:​ цвет шрифта в​Format only cells that​ Цвет заливки будет​Изменяем цвет заливки ячеек в Excel
  4. ​.​ фильтр в таблице,​​Tyron​​Leojse​:​ In Диапазон_суммирования.Cells​Автор: Антон Андронов​Изменяем цвет заливки ячеек в Excel

Изменяем цвет заливки особых ячеек статически

​ трёх) значков, и​ оставьте как есть.​Главная​Errors​

​ Далее в поле​(Формат ячеек).​В правой части​ зависимости от значения​ contain​ изменяться автоматически при​

  1. ​Подсчет цветных ячеек в​ смотрите в статье​​: С надстройкой получилось​​: Спасибо, все работает)​Саня​​If cll.Interior.ColorIndex =​​Leojse​ все строки с​​Если требуется отобрать ячейки​​(Home) в разделе​Изменяем цвет заливки ячеек в Excel
  2. ​(Ошибки). Как видно​​Format values where this​​на вкладке​ диалогового окна​​ ячейки. Для этого​​(Форматировать только ячейки,​ изменении значения ячейки.​Excel.​Изменяем цвет заливки ячеек в Excel​ «Фильтр в Excel».​ подсчитать количество ячеек​bumnik​,​​ Цвет_берется_из_ячейки.Interior.ColorIndex or _​​: Добрый вечер.​​ зелёными значками автоматически​​ только одного цвета,​Редактирование​ на рисунке выше,​ formula is true​
  3. ​Home​Find and Replace​ просто откройте вкладку​ которые содержат).​Изменяем цвет ячейки, основываясь​​Несколько разных способов​​Получилось так.​ по цветам.​: Здравствуйте! Можно ли​SkyPro​

​cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex​Есть такая функция,​ переместятся вниз таблицы.​ то можно воспользоваться​(Editing) нажмите кнопку​ Вам доступно множество​(Форматировать значения, для​(Главная) >​(Найти и заменить)​Font​В нижней части диалогового​ на её текущем​:)

​ описано в статье​В ячейке A1 появилась​
​А как сделать​
​ данной функцией суммировать​

​, Огромнейшее спасибо!​

office-guru.ru

Как в Excel настраивать фильтр и сортировать ячейки по цвету заливки, цвету шрифта и значку

​ Then​ которая подсчитывает сумму​Если нужно отфильтровать ячейки​ ещё более быстрым​Сортировка и фильтр​ других настроек.​ которых следующая формула​

​Cells​ есть кнопка​(Шрифт) в диалоговом​ окна в поле​ значении (статически) –​ «Количество выделенных строк​ стрелка фильтра (треугольник).​ чтобы при изменении​ диапазон цифр +​Воспользовался кодом​summa = summa​ значений залитых ячеек​ в заданном столбце​ способом. Кликните по​(Sort & Filter)​И наконец, измените заливку​ является истинной) введите​(Ячейки) >​Options​ окне​Format Only Cells with​ Однажды установленный цвет​ в Excel» тут.​

  • ​ Нажимаем на эту​ цвета ячейки автоматически​
  • ​ цифры только вот​
  • ​SkyPro​
  • ​ + cll.Value​ по ячейке-образцу:​

Сортировка в Excel по цвету заливки ячейки

​ по цвету заливки,​ стрелке автофильтра рядом​ и в появившемся​ выделенных ячеек или​ одну из формул:​Format​(Параметры), нажав которую​Format Cells​(Форматировать только ячейки,​ заливки не изменяется,​ Как посчитать цветные​​ стрелку. В появившемся​​ пересчитывалось и их​ с таким символом​.​End If​

  1. ​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range,​ используйте инструмент​
  2. ​ с заголовком столбца,​​ меню выберите​​ настройте любые другие​​чтобы изменить заливку пустых​​(Формат) >​​ Вы получите доступ​​(Формат ячеек), как​ для которых выполняется​ вне зависимости от​​ ячейки в Excel,​​ диалоговом окне, нажимаем​Сортировка и фильтрация по цвету в Excel
  3. ​ количество?​​ ( ‘ )​​Теперь мне просто​Next​
    • ​ Цвет_берется_из_ячейки As Range)​​Фильтр по цвету​​ в котором нужно​Настраиваемая сортировка​ параметры форматирования при​ ячеек​​Format Cells​​ к ряду продвинутых​
    • ​ мы это делали​​ следующее условие) настройте​​ того, как изменяется​​ если ячейки окрашены​​ на функцию «Фильтр​
    • ​З.Ы. Пример в​ (например: от 1​
    • ​ интересно… А как​else​​For Each cll​​(Filter by Color),​

    Сортировка и фильтрация по цвету в Excel

  4. ​ произвести сортировку. В​(Custom Sort).​ помощи диалогового окна​=ISBLANK()​​(Формат ячеек).​​ настроек поиска, таких​ на шаге 5,​​ условия для правила.​​ значение ячейки.​ в несколько разных​ по цвету». Появится​ файле. Подскажите кто​ до 12 +​ надо было воспользоваться​For Each cll​Сортировка и фильтрация по цвету в Excel
  5. ​ In Диапазон_суммирования.Cells​​ доступный в Excel​​ открывшемся меню нажмите​В диалоговом окне​Format Cells​=ЕПУСТО()​

​Далее настройте параметры форматирования​ как​ и выберите желаемый​​ Мы выбираем форматировать​​Изменяем цвет определённых ячеек​​ цветов. Как посчитать​​ окно, в котором​ знает пожалуйста!​​ 1′, 2′, 3′,​​ кодом​ In Диапазон_суммирования.Cells​If cll.Interior.ColorIndex =​​ 2010 и 2013.​​Сортировка по цвету​Сортировка​(Формат ячеек), как​​чтобы изменить заливку ячеек,​​ так, как Вам​

Сортировка и фильтрация по цвету в Excel

​Match Case​​ цвет шрифта.​ только ячейки с​ (пустые, с ошибками,​ количество цветных ячеек​ будут все цвета​Hugo​ 4′, 5′, 6’​Сани​If cll.Interior.ColorIndex =​ Цвет_берется_из_ячейки.Interior.ColorIndex Then​Для работы этого инструмента​(Sort by Color)​​(Sort) настройте параметры​​ это описано в​ содержащих формулы, которые​

Сортировка и фильтрация по цвету в Excel

​ угодно. На этот​(Учитывать регистр) и​Однажды настроенный цвет заливки​ условием:​ с формулами)​ формулой, фильтром, т.д.​ ячеек, которые присутствуют​: Никак.​ и т.д.)​?​​ Цвет_берется_из_ячейки.Interior.ColorIndex Then​​summa = summa​ существует ограничение –​ и выберите, какого​ слева направо:​ разделе Изменение заливки​ возвращают ошибку​ раз мы установим​​Match entire cell content​​ не будет изменяться,​Cell Value​Цвет заливки будет изменяться​Третий способ​ в столбце.​​Но можно сделать​​Читайте правила форума,​

Сортировка и фильтрация по цвету в Excel

Сортировка ячеек в Excel по цвету шрифта

​SkyPro​summa = summa​ + cll.Value​ возможно отфильтровать одновременно​ цвета ячейки должны​Укажите​​ выделенных ячеек.​​=ISERROR()​ оранжевый цвет заливки,​​(Ячейка целиком). Вы​​ вне зависимости от​​(Значение ячейки) –​​ в зависимости от​.​В нашем примере –​​ по событию выделения​​ создавайте свою тему!​​: Мой код не​​ + cll.Value​

Сортировка и фильтрация по цвету в Excel

​End If​ только один цвет.​ оказаться вверху, а​Столбец​Не забывайте, что настройки​

Сортировка и фильтрация по цвету в Excel

​=ЕОШИБКА()​ просто для разнообразия​ можете использовать символы​ того, как в​greater than​ значения ячейки.​Можно настроить таблицу​

Сортировка ячеек по значку

​ это желтый цвет​ ячейки — хотя​rus_31​ сработает, если скрыты​​End If​​Next​ Если нужно настроить​ какие – внизу.​

Сортировка и фильтрация по цвету в Excel

​(Column), по которому​ форматирования, сделанные таким​Раз мы хотим изменить​Если Вы хотите изменить​ подстановки, такие как​ будущем изменится содержимое​(больше) –​Задача:​ так, что после​ ячеек и ячейки​ это костыли, и​​: Добрый день! Подскажите​​ столбцы.​Next​СУММ_ЦВЕТ = summa​ фильтр для данных​ Кстати, выбрав в​​ нужно выполнить сортировку​​ образом, будут сохраняться​

Сортировка и фильтрация по цвету в Excel

​ цвет пустых ячеек,​ только цвет заливки,​ звёздочка (*), чтобы​ ячейки.​3.7​Имеется таблица или​

Сортировка и фильтрация по цвету в Excel

Как в Excel фильтровать ячейки по цвету заливки

​ фильтра порядковый номер​ без заливки (без​ ненадёжные, и тормозные​ пожалуйста к какой​​А вот код​​end if​End Function​ по двум или​

Сортировка и фильтрация по цвету в Excel

​ этом меню пункт​ (в нашем примере​ даже когда пустые​ то нам необходима​ не касаясь остальных​ найти любую строку​Задача:​, как показано на​ диапазон данных, и​

  1. ​ цветных строк будет​ цвета). Нажимаем на​ в целом.​ формуле можно прибегнуть​ Сани в сборе​СУММ_ЦВЕТ = summa​​Формула — =СУММ_ЦВЕТ(F8:F1317;F348),​​ более цветам, выполните​
  2. ​Пользовательская сортировка​ это столбец​ ячейки заполнятся значениями​

    ​ первая функция. Вводим​

    ​ параметров форматирования, то​​ символов, или знак​​Вы хотите настроить​ рисунке ниже.​ Вы хотите изменить​ по порядку. По​ желтый прямоугольник.​​Ставьте подсчёт на​​ для суммы по​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As Range,​End Function​

​ где F8:F1317 -​ следующие шаги:​(Custom Sort), как​Delivery​ или будут исправлены​ ее, затем помещаем​ можете просто нажать​ вопроса (?), чтобы​ цвет ячейки, основываясь​Далее нажмите кнопку​ цвет заливки ячеек,​ нему можно узнать​В таблице останутся​ кнопку.​ цвету заливки (позиций​ Цвет_берется_из_ячейки As Range,​оба варианта рабочие:​ суммируемый диапазон, F348​Создайте вспомогательный столбец в​ показано на рисунке​);​ ошибки в формулах.​

  1. ​ курсор между скобок​ кнопку​​ найти один любой​​ на её текущем​Сортировка и фильтрация по цвету в Excel
  2. ​Format​ основываясь на их​ количество цветных ячеек.​ только желтые ячейки.​P.S. И кстати​Сортировка и фильтрация по цвету в Excel

​ тысяча)​ _​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348)​ — ячейка-образец​ конце таблицы или​

Сортировка и фильтрация по цвету в Excel

​ ниже, можно быстро​В поле​ Трудно представить, что​

​ и нажимаем иконку​Fill color​
​ символ.​
​ значении, и хотите,​

​(Формат), чтобы выбрать,​

office-guru.ru

Подсчет суммы ячеек по цвету (редактирование функции) (Макросы Sub)

​ значениях. Более того,​​ Смотрите статью «Порядковый​
​ В ячейку A8​ у Вас в​А что, в​Optional Цвет_берется_из_ячейки2 As​
​Код200?'200px':''+(this.scrollHeight+5)+'px');">=СУММ_ЦВЕТ(F8:F1317;F348;F349)​Подскажите, а можно​
​ рядом со столбцом,​ перейти к диалоговому​
​Сортировка​ кому-то может понадобиться​
​ выбора диапазона в​(Цвет заливки) и​
​Что касается предыдущего примера,​
​ чтобы цвет заливки​
​ какой цвет заливки​
​ необходимо, чтобы этот​

​ номер строк по​ устанавливаем функцию «Автосумма»​ формуле баксов не​ поиске Вас забанили?​
​ Range)​Leojse​ ли как-то подредактировать​ в котором будете​ окну​(Sort On) выберите​ идти таким путём,​ правой части строки​ выбрать понравившийся цвет.​ если нам нужно​ оставался неизменным, даже​ должен быть применён,​

​ цвет изменялся динамически,​​ порядку после фильтра​​ или любую другую​
​ хватает — диапазон​
​TimSha​If Not Цвет_берется_из_ячейки2​: Саня, Спасибо еще​
​ функцию, чтобы сумма​
​ настраивать фильтр. Мы​Сортировка​
​Цвет ячейки​ разве что в​
​ (либо наберите нужный​Вот результат наших изменений​
​ найти все цены​ когда значение ячейки​
​ если выполняется заданное​
​ отражая изменения данных​
​ в Excel».​
​ формулу пишем.​
​ сдвинулся, осторожно, может​

​: Вариант, если данные​​ Is Nothing Then​ раз, как раз​

​ подсчитывалась по двум​​ назовём его​(Sort).​(Cell Color);​ целях эксперимента​ диапазон вручную):​ форматирования в Excel:​ на бензин от​​ изменяется.​​ условие.​ в ячейках.​Бывает нужно округлить​Получилось так. Посчитались, только​ наврать!​ оформлены таблицей с​For Each cll​ то, чо нужно!​ ячейкам-образцам (мне нужно​

​Filter by color​​Сортировка ячеек в Excel​​Установите цвет ячеек, которые​Урок подготовлен для Вас​=ISBLANK(B2:H12)​
​В отличие от предыдущего​3.7​
​Решение:​В появившемся диалоговом окне​
​Решение:​ числа до кратного​
​ видимые ячейки желтого​Tyron​
​ пром итогами и​ In Диапазон_суммирования.Cells​
​Leojse​ получить сумму значений​
​.​
​ по цвету шрифта​
​ должны быть вверху;​
​ командой сайта office-guru.ru​=ЕПУСТО(B2:H12)​
​ способа (с условным​до​
​Найти все ячейки​Format Cells​
​Используйте условное форматирование​
​ числа или все​
​ цвета.​
​: Спасибо!​
​ выбраны данные в​

​If cll.Interior.ColorIndex =​
​: Добрый день.​
​ по двум цветам)?​

​Во вторую ячейку только​​ выполняется точно так​В крайнем правом выпадающем​Источник: https://www.ablebits.com/office-addins-blog/2013/10/18/change-background-color-excel-based-on-cell-value/​

​Нажмите кнопку​​ форматированием), цвет заливки,​
​3.799​ с определённым значением​(Формат ячеек) откройте​ в Excel, чтобы​

​ числа в столбце​​Как установить формулу​​Мария​ фильтре по цвету​ Цвет_берется_из_ячейки.Interior.ColorIndex _​
​Подскажите, а возможно​ То есть, если​
​ что добавленного столбца​ же, как сортировка​
​ списке выберите​Перевел: Антон Андронов​
​Format​ установленный таким образом,​, то мы зададим​ (или значениями) при​
​ вкладку​ выделить значения больше​
​ привести к кратному​ автосуммы, смотрите в​
​: подскажите пожалуйста, могу​ -​
​And Not bCellIsHidden(cll)​
​ ли, чтобы функция​
​ при вводе второй​
​ введите формулу:​ по цвету заливки.​
​Сверху​Автор: Антон Андронов​
​(Формат), выберите нужный​ никогда не изменится​
​ такие критерии поиска:​ помощи инструмента​
​Fill​
​ X, меньше Y​
​ числу. Например, все​
​ статье «Сложение, вычитание,​
​ ли сделать так,​

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;[Количество])​

​ Or _​​ суммировала только видимые​​ ячейки-образца, то считался​=GetCellColor(F2)​
​ Снова используем инструмент​(On top).​
​Из этой краткой инструкции​
​ цвет заливки на​

​ сам без Вашего​Теперь кликните любой из​

​Find All​​(Заливка) и выберите​ или между X​ числа в столбце​:)

​ умножение, деление в​​ чтобы в графике,​​kiv3383​​cll.Interior.ColorIndex = Цвет_берется_из_ячейки2.Interior.ColorIndex​​ ячейки?​​ бы и второй​
​Здесь​​Настраиваемая сортировка​​Чтобы добавить ещё один​
​ Вы узнаете, как​ вкладке​ ведома, как бы​ найденных элементов в​​(Найти все), а​​ цвет (мы выбрали​

​ и Y.​​ сделать кратными трем,​ Excel» здесь.​ где проставлены все​
​: Подскажите,​ _​:)
​SkyPro​ цвет.​F​
​(Custom Sort), который​ уровень сортировки с​
​ быстро сортировать по​Fill​
​ значения ни изменялись.​ нижней части диалогового​
​ затем изменить формат​ красноватый) и нажмите​
​Предположим, есть список цен​ т.е, чтобы числа​
​Чтобы убрать фильтр,​ сроки платежей, считать​
​Как суммировать выделенные​And Not bCellIsHidden(cll)​
​:​Саня​
​– это столбец,​
​ находится на вкладке​
​ такими же настройками,​
​ цвету заливки и​(Заливка), а затем​
​Как и в предыдущем​ окна​
​ найденных ячеек, используя​ОК​
​ на бензин в​ столбца делились на​
​ снова нажимаем на​
​ только оплаченные, при​
​ цветом ячейки в​
​ Then​
​200?'200px':''+(this.scrollHeight+5)+'px');">Function СУММ_ЦВЕТ(Диапазон_суммирования As Range,​
​:​ содержащий разукрашенные ячейки,​
​Главная​ нажмите кнопку​
​ шрифта ячейки на​
​ нажмите​

​ примере, Вы можете​​Find and Replace​ диалоговое окно​.​
​ разных штатах, и​ три без остатка,​​ функцию «Фильтр». Тогда​ выделении их цветом.​​ диапазоне? При этом​summa = summa​ Цвет_берется_из_ячейки As Range,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ_ЦВЕТ(F8:F1317;F348)+СУММ_ЦВЕТ(F8:F1317;F349)​ и по которому​(Home) в меню​​Копировать уровень​​ листе в Excel​​ОК​​ изменить цвет заливки​

​(Найти и заменить)​​Format Cells​После этого Вы вернетесь​:D
​ Вы хотите, чтобы​
​ т.д. Как работать​ таблица раскроется, а​
​ Т.К., нужна сумма​ цвет задан через​

​ + cll.Value​​ _​

​шутка.​​ нужно настроить фильтр,​Сортировка и фильтр​(Copy Level). Затем​ 2010 и 2013.​. Подробные инструкции даны​ особых ячеек двумя​ и нажмите​(Формат ячеек).​ в окно​ цены, превышающие​ с кратными числами,​
​ функция «Автосумма» посчитает​ только оплаченных​

excelworld.ru

Сумма по цвету заливки (Формулы/Formulas)

​ условное форматирование.​​End If​Optional Цвет_берется_из_ячейки2 As​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function СУММ_ЦВЕТ(Диапазон_суммирования As​ а​(Sort & Filter),​ в столбце​
​В одной из недавних​ на шаге 5​

​ способами: динамически и​​Ctrl+A​Это одна из тех​New Formatting Rule​$3.7​ смотрите в статье​ сумму всех ячеек,​
​Pelena​

excelworld.ru

Суммирование по цвету. (Формулы/Formulas)

​Заранее спасибо.​​Next​
​ Range)​ Range, Цвет_берется_из_ячейки As​GetCellColor()​ но на этот​Порядок​
​ статей мы рассматривали​

​ примера «Как динамически​​ статически.​, чтобы выделить все​ редких задач, по​(Создание правила форматирования),​

​, были выделены красным,​​ «Сумма чисел кратных​

​ разного цвета.​​:​kiv3383​
​Else​If Not Цвет_берется_из_ячейки2​ Range, _​
​– пользовательская функция​ раз в поле​(Order) выберите второй​
​ различные способы, как​ изменять цвет ячейки,​
​Цвет ячейки будет изменяться​ найденные записи. После​
​ которым нет разъяснения​ где в поле​ а меньшие или​ 3 в Excel».​Второй вариант.​Мария​: В ячейке AT8​For Each cll​

​ Is Nothing Then​​Цвет_берется_из_ячейки2 As Range)​ со следующим кодом​Сортировка​

excelworld.ru

Народ подскажите как посчитать сумму ячеек выделенных цветом (Народ подскажите как посчитать сумму ячеек выделенных цветом)

​ по порядку цвет.​​ в Excel узнать​ основываясь на её​ автоматически в зависимости​

​ этого нажмите кнопку​​ в файлах справки​Preview​ равные​В этой статье Вы​Если в таблице​, читаем Правила форума,​

​ должна выводиться сумма​​ In Диапазон_суммирования.Cells​For Each cll​For Each cll​

​ VBA:​​(Sort On) выбираем​ Таким же образом​ количество ячеек определённого​
​ значении».Образец настроенного Вами​ от значения ячейки.​Close​ Excel, на форумах​(Образец) будет показан​
​$3.45​ найдёте два быстрых​ цветных ячеек мало,​

​ создаём свою тему​​ из желтых ячеек​
​If cll.Interior.ColorIndex =​ In Диапазон_суммирования.Cells​ In Диапазон_суммирования.Cells​Function GetCellColor(xlRange As​Цвет шрифта​ создайте столько уровней​
​ цвета и вычислить​ условного форматирования будет​
​Этот способ решения задачи​(Закрыть).​ или в блогах,​ образец Вашего форматирования.​– зелёным.​ способа изменять цвет​

​ то можно их​​ и прикладываем файл​

​ этой строки. Спасибо.​​ Цвет_берется_из_ячейки.Interior.ColorIndex _​If cll.Interior.ColorIndex =​If cll.Interior.ColorIndex =​ Range) Dim indRow,​(Font Color).​ сортировки, сколько цветов​ сумму значений в​ выглядеть приблизительно так:​ Вы, вероятнее всего,​

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

excelworld.ru

​Nic70y​

Сложение значений в зависимости от цвета ячеек в MS EXCEL

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

Функции для суммирования значений по цвету ячеек в 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 в последних версиях научился, то суммировать по цвету до сих пор не умеет.

Чтобы исправить этот существенный недостаток можно использовать несложную пользовательскую функцию на 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 ; I3 ; $A$2:$A$20 )

В принципе, данная функция аналогична по сути стандартной СУММЕСЛИ, только в качестве основного критерия здесь ячейка с заливкой. Но можно указать и привычный критерий — значение ячейки, в таком случае суммироваться будут ячейки с указанным цветом и критерием.

ДиапазонСуммирования( $E$2:$E$20 )- диапазон значений для суммирования. Можно указать несколько столбцов. Столбец с критерием(если планируется суммировать еще и по критерию) не обязательно должен входит в диапазон.

ЯчейкаОбразец( $E$7 ) — ячейка-образец заливки. Ссылка на ячейку с цветом заливки.

Критерий( I3 ) — необязательный аргумент. Если указан, то суммируются ячейки с указанным критерием и цветом заливки. Допускается применение в критерии символов подстановки — «*» и «?» . Если не указан, то суммируются все ячейки с указанным цветом заливки. Если в диапазоне суммирования находятся ячейки с текстом, то они будут игнорироваться.
Так же данный аргумент может принимать в качестве критерия символы сравнения ( , =, <>, ):

  • «>0» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше нуля;
  • «>=2» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше или равно двум;
  • » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше нуля;
  • » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше или равно 60;
  • «<>0″ — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не равно нулю;
  • «<>» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не пустые;

Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением: «<>«&D$1

ДиапазонКритерия( $A$2:$A$20 ) — Необязательный аргумент. Указывается диапазон, в котором следует искать критерий(если критерий указан). ДиапазонКритерия должен быть равен по количеству ячеек ДиапазонуСуммирования. Если ДиапазонКритерия не указан, то критерий просматривается в ДиапазонеСуммирования.

ИспУФ() — Необязательный аргумент. Допускается указание логических значений ИСТИНА(TRUE) или ЛОЖЬ(FALSE). По умолчанию принимает значение ИСТИНА. Если указан как ИСТИНА, то функция будет суммировать ячейки с учетом примененного к ним условного форматирования. Если указан как ЛОЖЬ, то функция будет суммировать ячейки без учета примененного условного форматирования, т.е. даже если условное форматирование применено и ячейка окрашена с его помощью, а реальный цвет заливки не соответствует цвету ЯчейкиОбразца — то её значение не будет суммироваться.

Важно: Функция не вычисляется при изменении цвета заливки. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2Enter. Либо нажать сочетания клавиш 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 простых шагов, описанных далее, и через несколько минут Вы узнаете количество и сумму ячеек нужного цвета.

  1. Откройте книгу Excel и нажмите Alt+F11, чтобы запустить редактор Visual Basic for Applications (VBA).
  2. Правой кнопкой мыши кликните по имени Вашей рабочей книги в области Project – VBAProject, которая находится в левой части экрана, далее в появившемся контекстном меню нажмите Insert >Module.
  3. Вставьте на свой лист вот такой код:
  1. Сохраните рабочую книгу Excel в формате .xlsm (Книга Excel с поддержкой макросов).Если Вы не слишком уверенно чувствуете себя с VBA, то посмотрите подробную пошаговую инструкцию и массу полезных советов в учебнике Как вставить и запустить код VBA в Excel.
  2. Когда все закулисные действия будут выполнены, выберите ячейки, в которые нужно вставить результат, и введите в них функцию 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 – это ячейка с нужным цветом заливки.

Все перечисленные далее формулы работают по такому же принципу.

  • CountCellsByFontColor( диапазон , код_цвета ) – считает ячейки с заданным цветом шрифта.
  • Функции, которые суммируют значения по цвету ячейки:

    • 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, с любыми типами условного форматирования (и снова спасибо нашему гуру!). В результате он выводит количество раскрашенных ячеек и сумму значений в этих ячейках, независимо от типа условного форматирования, применённого на листе.

    Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения

    1. Добавьте код, приведённый выше, на Ваш лист, как мы делали это в первом примере.
    2. Выберите диапазон (или диапазоны), в которых нужно сосчитать цветные ячейки или просуммировать по цвету, если в них содержатся числовые данные.
    3. Нажмите и удерживайте Ctrl, кликните по одной ячейке нужного цвета, затем отпустите Ctrl.
    4. Нажмите Alt+F8, чтобы открыть список макросов в Вашей рабочей книге.
    5. Выберите макрос SumCountByConditionalFormat и нажмите Run (Выполнить).В результате Вы увидите вот такое сообщение:

    Для этого примера мы выбрали столбец Qty. и получили следующие цифры:

    • Count – это число ячеек искомого цвета; в нашем случае это красноватый цвет, которым выделены ячейки со значением Past Due.
    • Sum – это сумма значений всех ячеек красного цвета в столбце Qty., то есть общее количество элементов с отметкой Past Due.
    • Color – это шестнадцатеричный код цвета выделенной ячейки, в нашем случае D2.

    Рабочая книга с примерами для скачивания

    Если у Вас возникли трудности с добавлением скриптов в рабочую книгу Excel, например, ошибки компиляции, не работающие формулы и так далее, Вы можете скачать рабочую книгу Excel с примерами и с готовыми к использованию функциями CountCellsByColor и SumCellsByColor, и испытать их на своих данных.

    В Microsoft Excel, при создании таблиц, очень удобно и наглядно помечать ячейки цветом. Но что делать, если нам понадобиться суммировать значения ячеек одного цвета? По умолчанию, данной функции в Excel до сих пор нет. Решить эту проблему можно написав макрос в Visual Basic.

    Для этого в Excel версии 2007-2013 переходим на вкладку Разработчик и нажимаем Visual Basic.

    Если такой вкладки нет, то включаем ее следующим образом: Файл/Параметры/Настройка ленты и ставим галочку напротив слова Разработчик.

    В открывшемся окне редактора нажимаем Insert/Module и копируем туда следующий текст:

    Public Function SumByColor(DataRange As Range, ColorSample As Range) As Double Dim Sum As Double Application.Volatile True For Each cell In DataRange If cell.Interior.Color = ColorSample.Interior.Color Then Sum = Sum + cell.Value End If Next cell SumByColor = Sum End Function

    Сохраняем изменения. Далее в Excel на вкладке Формулы выбираем пункт Вставить функцию. Необходимо выбрать категорию Определенные пользователем – тогда отобразится наша функция – SumByColor.

    У этой функции 2 аргументы:

    DataRange – диапазон ячеек с числами;

    ColorSample – ячейка, цвет которой является образцом для суммирования.

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

    Понравилась статья? Поделить с друзьями:
  • Автосумма в excel не суммирует правильно
  • Автосумма в excel как умножить на
  • Автосумма в excel как выглядит
  • Автосумма в excel знак
  • Автосумма в excel горячие клавиши mac