710

Сумма ячеек по цвету, шрифту, формату и т.д

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

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

2. Нажатием Ctrl+F3 или на вкладке «Формулы» выбираем «Диспетчер имён», где в строке «Имя» вводим название формулы ЦветЯчейки, а в поле «Диапазон» саму формулу: =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;ДВССЫЛ("RC[-1]";0))

=GET.CELL(63;INDIRECT("RC[-1]";0))

Я не буду грузить читателя разъяснением значений этой формулы, главное, чтобы всё работало, не так ли?)) Отмечу лишь, что 63 это код цвета заливки, заменяя который, можно подсчитывать ячейки по формату, шрифту, выделению курсивом и т.п.

Вот таблица с кодами и их значениями:

3. В соседнюю от цветной ячейки вводим «равно» и имя созданной формулы ЦветЯчейки, затем протягиваем её вниз. В результате отображаются коды цветов, которые будут необходимы нам для подсчёта.

4. Теперь с помощью формулы =СУММЕСЛИ(B2:B12;10;A2:A12) можно посчитать сумму цветных ячеек, где 10 это код цвета, для жёлтых - 6:

=SUMIF(B2:B12;10;A2:A12)

Созданная формула =ЦветЯчейки определяет 56 цветов. На некоторые цветовые гаммы он реагирует некорректно, так что любителям 50 оттенков серого придётся воспользоваться хардкорным чёрным или серым))

Вот пример палитры «твёрдых» цветов:

Следует учесть, что Excel при изменении цвета ячейки автоматически не совершит пересчёт данных, для этого необходимо заново ввести формулу, либо нажать Ctlr+Alt+F9, что гораздо проще и быстрее.


Также на этот случай есть макрос,


1. Нажимаем Alt+F11 и в открывшемся окне вводим следующий текст


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


2. В разделе «Формулы» - «Вставить функцию» выбираем категорию «Определенные пользователем», где указываем нашу функцию, которой задаём диапазон подсчёта и образец цвета:

И получаем результат:

Чтобы макрос учитывал не цвет заливки фона, а цвет шрифта ячейки, в шестой строке заменяем свойство Interior на Font в обеих частях выражения.


Для подсчёта количества цветных ячеек, а не суммы, заменяем в седьмой строке Sum = Sum + cell.Value на Sum = Sum + 1


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


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

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


Следует учесть, что функция перебирает все, в том числе и пустые ячейки, в DataRange, поэтому задавайте в качестве первого аргумента только диапазон со значениями, а не весь столбец, иначе Excel «зависнет» надолго.


P.S. Уважаемые подписчики, посты про Excel будут выходить по понедельникам

MS, Libreoffice & Google docs

762 поста14.9K подписчика

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

12
Автор поста оценил этот комментарий

Дяденька, а можно на Облако выкладывать файл-образец с формулами из поста? Чтобы потыкаться и скопировать себе нужное. Чтобы понять быстрее, как работает эта функция. А то получайникам сложно, а ужас как нужно это дело!! ))

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Ссылка на файл в облаке

https://cloud.mail.ru/public/2JjJ/21PPk2kzU

показать ответы
6
Автор поста оценил этот комментарий

Можно создать папочку, расшарить ее и туда добавлять файлы согласно выходу постов. Вышел 12 ноября - «2019, ноябрь 12 - Сумма ячеек по цвету, шрифту, формату и т.д.»


Начало продумать - чтобы сортировка была красивая.


И всегда ссылку в постах одну - на эту папочку.


И места мало будет занимать и людям удобно.

И в файле можно ссылку на пост делать - чтобы нашёл файл, и оттуда на пост пошёл )


Спасибо! Очень жду по цвету!!!

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Сегодня сделаю в облаке и выложу электронный вариант

показать ответы
0
Автор поста оценил этот комментарий

@Veseliy.4el Я часто  использую автоформатирование ячеек по цвету ("Условное форматирование" - "Гистограмма" или аналог. ) Вы не проверяли - может ли описанный вами макрос "переварить" такие автопокрашенные столбцы?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Если гистограмма сплошного окрашивания и она установленного цвета, по идее должна сработать, но я не проверял. Эта формула схожие оттенки выдает одинаковым кодом

0
Автор поста оценил этот комментарий

Я обычно просто фильтрую по цвету и снижу ставлю сумму.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Посмотрите мой предыдущий пост формула =СУММЕСЛИ(B2:B15;"Доход";C2:C15) слово доход замените на своё

показать ответы
1
Автор поста оценил этот комментарий

Дай Вам бог здоровья, добрый человек.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо за теплое пожелание)
0
Автор поста оценил этот комментарий

Чет у меня не пашет :(

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Документ сохранен с поддержкой макросов?

4
Автор поста оценил этот комментарий
Только в пятницу грузился, как такое сделать, интернет молчал. Спаситель😀
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Иногда помощь приходит оттуда, откуда её не ждёшь)

показать ответы
12
Автор поста оценил этот комментарий

Дяденька, а можно на Облако выкладывать файл-образец с формулами из поста? Чтобы потыкаться и скопировать себе нужное. Чтобы понять быстрее, как работает эта функция. А то получайникам сложно, а ужас как нужно это дело!! ))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

На каком сайте лучше в облаке выкладывать? Некоторые боятся скачивать файлы с неизвестных источников.

показать ответы
3
Автор поста оценил этот комментарий

Господи, насколько умные и потрясающие люди на Пикабу, спасибо тебе гуру Экселя, сэкономил мне день ручных подсчетов!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо за слова добрые)
1
Автор поста оценил этот комментарий

При создании сработало. Потом сломалось.

После закрытия/открыия файла цвет не определяется. Вместо =ЦветЯчейки появляется #ИМЯ?

Но первый раз всё работало. Пытаюсь повторить всё заново - результат тот же - #Имя? Иногда получается сделать #Н/Д


Что я делаю не так?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Попробуйте скачать файл образец из облака https://cloud.mail.ru/public/2JjJ/21PPk2kzU
сравните его со своим файлом, возможно ваши ячейки имеют текстовый формат

0
Автор поста оценил этот комментарий
Через условное форматирование не получается, так как в этих ячейках ещё могут быть значения а могут и не быть
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
У меня сейчас нет компьютера, поэтому точного ответа вам дать не могу(

@VBA.Excel, можешь помочь с решением?
показать ответы
0
Автор поста оценил этот комментарий
Товарищ Гуру, подскажите как вместо "Доход" указать условие заливка красным например. Голову сломал не могу сделать.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Вам нужно в "Условном форматировании" указать соответствующие ячейки, дальше знаете как?
показать ответы
1
DELETED
Автор поста оценил этот комментарий

у нас табель очень объемный. ставим часы и например "б" - больничный, "в" - выходной и т п.

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

может кто сможет подсказать

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А можно ли больничные, выходные и прочее вписывать в соседнюю ячейку? Тогда проблем не должно быть
1
DELETED
Автор поста оценил этот комментарий

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

Если есть текстовые ячейки, то не считает((

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я не знаю, по идее в таблице не должно же быть текстовых ячеек
показать ответы
1
Автор поста оценил этот комментарий

Большое спасибо!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Всегда пожалуйста))
0
Автор поста оценил этот комментарий

Да это понятно. Хотелось бы автоматический способ.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Увы мне такой способ не знаком

0
Автор поста оценил этот комментарий

Дружище подскажи есть ли возможность заполнять таблицы вниз? Например первая строка пустая во второй последнее введённое значение. В первую строку вводим данные, она опускается вниз и становится второй, вторая третьей и так далее?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Просто сделайте добавить строку перед ячейкой со значением, всё вниз и опустится

показать ответы
Автор поста оценил этот комментарий

А я не спрашивал работает формула или нет, я утверждал что мою задачу она не решит. Вопрос в том какая формула решит. Вообщем выкуси

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ко мне какие претензии? Я разве должен решать твои проблемы? Попрошу не хамить мне, ты спросил, я пытался помочь, не помогло, Гугл тебе в помощь.

0
Автор поста оценил этот комментарий

Но там же не строка, а конкретная ячейка будет закрашиваться?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Закрасится тот диапозон, который вы укажите

0
Автор поста оценил этот комментарий

Я прошу прощения, но вы не могли бы писать (допустим в скобках) и английские клманды тоже? Пожалуйста. :)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я же указал

показать ответы
1
Автор поста оценил этот комментарий

Вы упорно не понимаете вопроса

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

СУММЕСЛИ(B2:B15;"Доход";C2:C15)

эта формула отбирает ячейки только со значением "Доход"

Как сделать так чтобы в ход шли ячейки с другими значениями но содержащие ключевое слово "доход"? Вышеуказанная формула будет пропускать ячейки со значением "Доход 1", Доход от продажи ручки", "Вася какой то доход яга"

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Доход это ключевое слово, заменив которое можно считать любые значения

показать ответы
0
Автор поста оценил этот комментарий

Качать файл с поддержкой макросов от анонимуса из интернета? Ну так себе идейка. Тем более совсем получайник не найдет как эти самые макросы разрешить.

Попробуйте пошагово сделать ровно то, что в посте.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий
А можете обьяснить как сделать ячейку кликабельной, чтобы после нажатия можно было выбрать один из нескольких пунктов с последующим переносом значения в счетчик? Данных много упорядочить проблема
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий
По поводу применения макроса написано очень кратко и не соответствует тому, что нужно делать на самом деле. Хотя бы от альт и эф11 не открывается никакого поля ввода для текста. Нужно создавать модуль. Если просто вставить этот код в модуль, работать тоже не будет, нужно ещё прикрутить вызов функции, наверное и само тело Sub-a.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У вас документ сохранен в формате с поддержкой макросов?

показать ответы
0
Автор поста оценил этот комментарий

А можно от обратного сделать? Т.е. в зависимости от значения в ячейке строка закрашивалась в определенный цвет? Например: в строке Исполнитель ячейка "Иван" и вся строка становится зеленой.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы