Excel формула поиск по цвету

На чтение 3 мин Просмотров 4.4к. Опубликовано 25.11.2021

Содержание

  1. Пример использования
  2. Сортировка по цвету ячеек
  3. Фильтр по цвету ячеек

Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:

  • ЯЧЕЙКА — ссылка на ячейку, для которой необходимо применить функцию.

Ниже представлен пример, демонстрирующий работу функции.

Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9

Пример использования

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

С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, «протяните» данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.

Создатели Excel решили, начиная от 2007-ой версии ввести возможность сортировки данных по цвету. Для этого послужило поводом большая потребность пользователей предыдущих версий, упорядочивать данные в такой способ. Раньше реализовать сортировку данных относительно цвета можно было только с помощью создания макроса VBA. Создавалась пользовательская функция и вводилась как формула под соответствующим столбцом, по которому нужно было выполнить сортировку. Теперь такие задачи можно выполнять значительно проще и эффективнее.

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

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

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

  • Щелкните на любую ячейку в области диапазона данных и выберите инструмент: «ДАННЫЕ»-«Сортировка и фильтр»-«Сортировка».

Поиск по цвету ячейки в Excel

  • Убедитесь, что отмечена галочкой опция «Мои данные содержат заголовки», а после чего из первого выпадающего списка выберите значение «Наименование». В секции «Сортировка» выберите опцию «Цвет ячейки». В секции «Порядок» раскройте выпадающее меню «Нет цвета» и нажмите на кнопку зеленого квадратика.

Поиск по цвету ячейки в Excel

  • Нажмите на кнопку «Копировать уровень» и в этот раз укажите желтый цвет в секции «Порядок».

Поиск по цвету ячейки в Excel

  • Аналогичным способом устанавливаем новое условие для сортировки относительно красного цвета заливки ячеек. И нажмите на кнопку ОК.

Поиск по цвету ячейки в Excel

Ожидаемый результат изображен ниже на рисунке:

Аналогичным способом можно сортировать данные по цвету шрифта или типу значка которые содержат ячейки. Для этого достаточно только указать соответствующий критерий в секции «Сортировка» диалогового окна настройки условий.

Фильтр по цвету ячеек

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

  • Перейдите на любую ячейку диапазона и воспользуйтесь инструментом: «ДАННЫЕ»-«Сортировка и фильтр»-«Фильтр».

Поиск по цвету ячейки в Excel

  • Раскройте одно из выпадающих меню, которые появились в заголовках столбцов таблицы и наведите курсор мышки на опцию «Фильтр по цвету».

Поиск по цвету ячейки в Excel

  • Из всплывающего подменю выберите зеленый цвет.

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

Обратите внимание! В режиме автофильтра выпадающие меню так же содержит опцию «Сортировка по цвету»:

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

Содержание

  1. Как в офисе.
  2. Вам также могут быть интересны следующие статьи
  3. Поиск по цвету ячейки в Excel
  4. Пример использования
  5. Сортировка по цвету ячеек
  6. Фильтр по цвету ячеек
  7. Заливка ячеек в зависимости от значения в Microsoft Excel
  8. Процедура изменения цвета ячеек в зависимости от содержимого
  9. Способ 1: условное форматирование
  10. Способ 2: использование инструмента «Найти и выделить»

Как в офисе.

Все мы знаем, как пользоваться инструментом «Найти и заменить» в Excel, чтобы найти определенное значение в книге. Иногда возникает необходимость просто выделить значения, которые нашел Excel.

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

Для начала воспользуемся инструментом «Найти и заменить», чтобы определить все ячейки с вхождением точки в значение. Для этого перейдем по вкладке Главная -> Редактирование —> Найти и выделить -> Найти. В появившемся диалоговом окне, ставим точку в поле поиска и жмем Найти далее.

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

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

Данный подход также применим, когда вам необходимо найти и выделить все вешние ссылки, находящиеся в ячейках книги. Для этого, вместо того чтобы искать точку, вам требуется найти квадратную скобку «[».

Почему открывающуюся квадратную скобку? Потому что Excel использует квадратные скобки [] для указания источника данных внешних ссылок.

Обратите внимание, что в этом случае Excel не найдет внешние ссылки, спрятанные в объектах или именованных диапазонах.

Вам также могут быть интересны следующие статьи

Источник

Поиск по цвету ячейки в Excel

Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:

  • ЯЧЕЙКА — ссылка на ячейку, для которой необходимо применить функцию.

Ниже представлен пример, демонстрирующий работу функции.

Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9

Пример использования

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

С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, «протяните» данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.

Создатели Excel решили, начиная от 2007-ой версии ввести возможность сортировки данных по цвету. Для этого послужило поводом большая потребность пользователей предыдущих версий, упорядочивать данные в такой способ. Раньше реализовать сортировку данных относительно цвета можно было только с помощью создания макроса VBA. Создавалась пользовательская функция и вводилась как формула под соответствующим столбцом, по которому нужно было выполнить сортировку. Теперь такие задачи можно выполнять значительно проще и эффективнее.

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

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

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

  • Щелкните на любую ячейку в области диапазона данных и выберите инструмент: «ДАННЫЕ»-«Сортировка и фильтр»-«Сортировка».

  • Убедитесь, что отмечена галочкой опция «Мои данные содержат заголовки», а после чего из первого выпадающего списка выберите значение «Наименование». В секции «Сортировка» выберите опцию «Цвет ячейки». В секции «Порядок» раскройте выпадающее меню «Нет цвета» и нажмите на кнопку зеленого квадратика.

  • Нажмите на кнопку «Копировать уровень» и в этот раз укажите желтый цвет в секции «Порядок».

  • Аналогичным способом устанавливаем новое условие для сортировки относительно красного цвета заливки ячеек. И нажмите на кнопку ОК.

Ожидаемый результат изображен ниже на рисунке:

Аналогичным способом можно сортировать данные по цвету шрифта или типу значка которые содержат ячейки. Для этого достаточно только указать соответствующий критерий в секции «Сортировка» диалогового окна настройки условий.

Фильтр по цвету ячеек

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

  • Перейдите на любую ячейку диапазона и воспользуйтесь инструментом: «ДАННЫЕ»-«Сортировка и фильтр»-«Фильтр».

  • Раскройте одно из выпадающих меню, которые появились в заголовках столбцов таблицы и наведите курсор мышки на опцию «Фильтр по цвету».

  • Из всплывающего подменю выберите зеленый цвет.

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

Обратите внимание! В режиме автофильтра выпадающие меню так же содержит опцию «Сортировка по цвету»:

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

Источник

Заливка ячеек в зависимости от значения в Microsoft Excel

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

Процедура изменения цвета ячеек в зависимости от содержимого

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

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

Но выход существует. Для ячеек, которые содержат динамические (изменяющиеся) значения применяется условное форматирование, а для статистических данных можно использовать инструмент «Найти и заменить».

Способ 1: условное форматирование

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

Посмотрим, как этот способ работает на конкретном примере. Имеем таблицу доходов предприятия, в которой данные разбиты помесячно. Нам нужно выделить разными цветами те элементы, в которых величина доходов менее 400000 рублей, от 400000 до 500000 рублей и превышает 500000 рублей.

  1. Выделяем столбец, в котором находится информация по доходам предприятия. Затем перемещаемся во вкладку «Главная». Щелкаем по кнопке «Условное форматирование», которая располагается на ленте в блоке инструментов «Стили». В открывшемся списке выбираем пункт «Управления правилами…».
  2. Запускается окошко управления правилами условного форматирования. В поле «Показать правила форматирования для» должно быть установлено значение «Текущий фрагмент». По умолчанию именно оно и должно быть там указано, но на всякий случай проверьте и в случае несоответствия измените настройки согласно вышеуказанным рекомендациям. После этого следует нажать на кнопку «Создать правило…».
  3. Открывается окно создания правила форматирования. В списке типов правил выбираем позицию «Форматировать только ячейки, которые содержат». В блоке описания правила в первом поле переключатель должен стоять в позиции «Значения». Во втором поле устанавливаем переключатель в позицию «Меньше». В третьем поле указываем значение, элементы листа, содержащие величину меньше которого, будут окрашены определенным цветом. В нашем случае это значение будет 400000. После этого жмем на кнопку «Формат…».
  4. Открывается окно формата ячеек. Перемещаемся во вкладку «Заливка». Выбираем тот цвет заливки, которым желаем, чтобы выделялись ячейки, содержащие величину менее 400000. После этого жмем на кнопку «OK» в нижней части окна.

Кроме того, можно использовать условное форматирование несколько по-другому для окраски элементов листа цветом.

  1. Для этого после того, как из Диспетчера правил мы переходим в окно создания форматирования, то остаемся в разделе «Форматировать все ячейки на основании их значений». В поле «Цвет» можно выбрать тот цвет, оттенками которого будут заливаться элементы листа. Затем следует нажать на кнопку «OK».
  2. В Диспетчере правил тоже жмем на кнопку «OK».
  3. Как видим, после этого ячейки в колонке окрашиваются различными оттенками одного цвета. Чем значение, которое содержит элемент листа больше, тем оттенок светлее, чем меньше – тем темнее.

Способ 2: использование инструмента «Найти и выделить»

Если в таблице находятся статические данные, которые не планируется со временем изменять, то можно воспользоваться инструментом для изменения цвета ячеек по их содержимому под названием «Найти и выделить». Указанный инструмент позволит отыскать заданные значения и изменить цвет в этих ячейках на нужный пользователю. Но следует учесть, что при изменении содержимого в элементах листа, цвет автоматически изменяться не будет, а останется прежним. Для того, чтобы сменить цвет на актуальный, придется повторять процедуру заново. Поэтому данный способ не является оптимальным для таблиц с динамическим содержимым.

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

  1. Выделяем столбец с данными, которые следует отформатировать цветом. Затем переходим во вкладку «Главная» и жмем на кнопку «Найти и выделить», которая размещена на ленте в блоке инструментов «Редактирование». В открывшемся списке кликаем по пункту «Найти».
  2. Запускается окно «Найти и заменить» во вкладке «Найти». Прежде всего, найдем значения до 400000 рублей. Так как у нас нет ни одной ячейки, где содержалось бы значение менее 300000 рублей, то, по сути, нам нужно выделить все элементы, в которых содержатся числа в диапазоне от 300000 до 400000. К сожалению, прямо указать данный диапазон, как в случае применения условного форматирования, в данном способе нельзя.

Но существует возможность поступить несколько по-другому, что нам даст тот же результат. Можно в строке поиска задать следующий шаблон «3. ». Знак вопроса означает любой символ. Таким образом, программа будет искать все шестизначные числа, которые начинаются с цифры «3». То есть, в выдачу поиска попадут значения в диапазоне 300000 – 400000, что нам и требуется. Если бы в таблице были числа меньше 300000 или меньше 200000, то для каждого диапазона в сотню тысяч поиск пришлось бы производить отдельно.

Вводим выражение «3. » в поле «Найти» и жмем на кнопку «Найти все».

  • После этого в нижней части окошка открываются результаты поисковой выдачи. Кликаем левой кнопкой мыши по любому из них. Затем набираем комбинацию клавиш Ctrl+A. После этого выделяются все результаты поисковой выдачи и одновременно выделяются элементы в столбце, на которые данные результаты ссылаются.
  • После того, как элементы в столбце выделены, не спешим закрывать окно «Найти и заменить». Находясь во вкладке «Главная» в которую мы переместились ранее, переходим на ленту к блоку инструментов «Шрифт». Кликаем по треугольнику справа от кнопки «Цвет заливки». Открывается выбор различных цветов заливки. Выбираем тот цвет, который мы желаем применить к элементам листа, содержащим величины менее 400000 рублей.
  • Как видим, все ячейки столбца, в которых находятся значения менее 400000 рублей, выделены выбранным цветом.
  • Теперь нам нужно окрасить элементы, в которых располагаются величины в диапазоне от 400000 до 500000 рублей. В этот диапазон входят числа, которые соответствуют шаблону «4. ». Вбиваем его в поле поиска и щелкаем по кнопке «Найти все», предварительно выделив нужный нам столбец.
  • Аналогично с предыдущим разом в поисковой выдаче производим выделение всего полученного результата нажатием комбинации горячих клавиш CTRL+A. После этого перемещаемся к значку выбора цвета заливки. Кликаем по нему и жмем на пиктограмму нужного нам оттенка, который будет окрашивать элементы листа, где находятся величины в диапазоне от 400000 до 500000.
  • Как видим, после этого действия все элементы таблицы с данными в интервале с 400000 по 500000 выделены выбранным цветом.
  • Теперь нам осталось выделить последний интервал величин – более 500000. Тут нам тоже повезло, так как все числа более 500000 находятся в интервале от 500000 до 600000. Поэтому в поле поиска вводим выражение «5. » и жмем на кнопку «Найти все». Если бы были величины, превышающие 600000, то нам бы пришлось дополнительно производить поиск для выражения «6. » и т.д.
  • Опять выделяем результаты поиска при помощи комбинации Ctrl+A. Далее, воспользовавшись кнопкой на ленте, выбираем новый цвет для заливки интервала, превышающего 500000 по той же аналогии, как мы это делали ранее.
  • Как видим, после этого действия все элементы столбца будут закрашены, согласно тому числовому значению, которое в них размещено. Теперь можно закрывать окно поиска, нажав стандартную кнопку закрытия в верхнем правом углу окна, так как нашу задачу можно считать решенной.
  • Но если мы заменим число на другое, выходящее за границы, которые установлены для конкретного цвета, то цвет не поменяется, как это было в предыдущем способе. Это свидетельствует о том, что данный вариант будет надежно работать только в тех таблицах, в которых данные не изменяются.
  • Как видим, существует два способа окрасить ячейки в зависимости от числовых значений, которые в них находятся: с помощью условного форматирования и с использованием инструмента «Найти и заменить». Первый способ более прогрессивный, так как позволяет более четко задать условия, по которым будут выделяться элементы листа. К тому же, при условном форматировании цвет элемента автоматически меняется, в случае изменения содержимого в ней, чего второй способ делать не может. Впрочем, заливку ячеек в зависимости от значения путем применения инструмента «Найти и заменить» тоже вполне можно использовать, но только в статических таблицах.

    Источник

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

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

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

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

    Табель выходов с зелеными ячейками

    В Excel нет встроенных (готовых) инструментов для выборки подобного рода; можно отбирать ячейки только по одному условию — по значению, находящемуся в них. Поэтому решение задачи получалось только одно — через VBA (пользовательские функции).

    Прекрасное и готовое решение моей задачи я нашел на сайте http://www.excel-vba.ru/. Даже не одно, а целых два решения, под разные условия. Ниже привожу последовательность шагов, которые привели меня к успеху.

    Сразу скажу, что изображения были сделаны в Excel 2007. В Excel 2010 все несколько по другому, но запутаться невозможно, если что.

    Первое, что нужно сделать — заставить Excel работать с пользовательскими функциями. Фактически, мы будем писать сценарий на языке VBA в Excel, но такая возможность по умолчанию отключена в этой программе. Включить ее можно следующим образом.

    Переходим в “Пуск — Параметры Excel” и находим в левом списке пункт “Надстройки”:

    Excel - надстройка VBA

    Выбираем в основном окне строчку “Пакет анализа — VBA” и жмем кнопочку “Перейти” в самом низу окна. Откроется еще одно окошко со списком доступных под Excel расширений (надстроек). Снова выбираем в этом списке “Пакет анализа — VBA” и соглашаемся, что хотим установить его, нажав кнопку “ОК”:

    Excel - Пакет анализа VBA

    Потребуется установочный диск с Microsoft Office на нем (или же подключение к Интернет) чтобы программа получила необходимые пакеты для инсталляции. Если установка прошла успешно, то в “Ленте” появиться пункт “Разработчик” (Excel 2010). Можно перейти в него через эту панель или же с помощью сочетания клавиш Alt + F11.

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

    Вставка готовых функций в Excel VBA

    Но есть готовые решения, которые я вставлю в виде кода с помощью меню “Insert — Module”. Просто берем отсюда код функций и вставляем в свой Excel. Затем сохраняем файл Excel с поддержкой VBA (макросов) и все готово для дальнейшей работы.

    Вставленные функции появятся в списке формул таблицы:

    Excel - пользовательские функции

    Ниже представлен готовый код двух функций на VBA, написанных их автором Дмитрием Щербаковым. Первая функция с именем “CountByInteriorColor” выполняет подсчет количества ячеек по цвету заливки.

    Вторая функция с именем “SumByInteriorColor” выполняет выборку ячеек по цвету заливки и суммирует все значения в этих ячейках.

    Обе функции имеют одинаковый синтаксис и принимают три входных аргумента, первые два из которых обязательные, а третий — необязательный:


    • 1
      
      rRange
      

      — диапазон с ячейками для подсчета


    • 1
      
      rColorCell
      

      — ячейка-образец с цветом заливки


    • 1
      
      bSumHide
      

      1
      
      ИСТИНА
      

      или

      1
      
      1
      

      учитывает скрытые ячейки;

      1
      
      ЛОЖЬ
      

      ,

      1
      
      0
      

      или опущен(по умолчанию) — скрытые ячейки не подсчитываются.

    Функция подсчета количества ячеек

    '---------------------------------------------------------------------------------------
    ' Procedure : CountByInteriorColor
    ' Author    : The_Prist(Щербаков Дмитрий)
    '             http://www.excel-vba.ru
    ' Purpose   : Функция подсчета ячеек на основе цвета заливки.
    ' Аргументы:
    '             rRange     - диапазон с ячейками для подсчета.
    '             rColorCell - ячейка-образец с цветом заливки.
    '             bSumHide   - ИСТИНА или 1 учитывает скрытые ячейки.
    '                          ЛОЖЬ, 0 или опущен(по умолчанию) - скрытые ячейки не подсчитываются.
    '---------------------------------------------------------------------------------------
    Function CountByInteriorColor(rRange As Range, rColorCell As Range, Optional bSumHide As Boolean = False)
      Dim lColor As Long, rCell As Range, lCnt As Long, vVal
      lColor = rColorCell.Interior.Color
      For Each rCell In rRange
          If rCell.Interior.Color = lColor Then
              If rCell.EntireRow.Hidden Or rCell.EntireColumn.Hidden Then
                  If bSumHide Then lCnt = lCnt + 1
              Else
                  lCnt = lCnt + 1
              End If
          End If
      Next rCell
      CountByInteriorColor = lCnt
    End Function

    Синтаксис этой функции прост:

    =CountByInteriorColor(D8:AG8;$E$65)

    Функция подсчета суммы ячеек

    '---------------------------------------------------------------------------------------
    ' Procedure : SumByInteriorColor
    ' Author    : The_Prist(Щербаков Дмитрий)
    '             http://www.excel-vba.ru
    ' Purpose   : Функция суммирования ячеек на основе цвета заливки.
    ' Аргументы:
    '             rRange     - диапазон с ячейками для суммирования.
    '             rColorCell - ячейка-образец с цветом заливки.
    '             bSumHide   - ИСТИНА или 1 учитывает скрытые ячейки.
    '                          ЛОЖЬ, 0 или опущен(по умолчанию) - скрытые ячейки не суммируются.
    '---------------------------------------------------------------------------------------
    Function SumByInteriorColor(rRange As Range, rColorCell As Range, Optional bSumHide As Boolean = False)
      Dim lColor As Long, rCell As Range, dblSum As Double, vVal
      lColor = rColorCell.Interior.Color
      For Each rCell In rRange
          If rCell.Interior.Color = lColor Then
              vVal = rCell.Value
              If IsNumeric(vVal) Then
                  If rCell.EntireRow.Hidden Or rCell.EntireColumn.Hidden Then
                      If bSumHide Then dblSum = dblSum + vVal
                  Else
                      dblSum = dblSum + vVal
                  End If
              End If
          End If
      Next rCell
      SumByInteriorColor = dblSum
    End Function

    Синтаксис этой функции следующий:

    =SumByInteriorColor(D8:AG37;E63)

    При вставке пользовательской функции “CountByInteriorColor” и “SumByInteriorColor” можно воспользоваться либо “Мастером функций”, либо произвести указание диапазона ячеек и ячейку-критерий вручную.

    Описание рабочей формулы

    Готовый пример работы функции “CountByInteriorColor” можно посмотреть на рисунке “Табель выходов с зелеными ячейками”. В нем подсчет отработанного времени производится по следующей формуле:

    =((Сумма фактически отработанных часов) - (Норма часов выхода за месяц)) + ((Кол-во дней с переработкой)*4)

    Фактически эта формула получается такой (смотри строку №13 на рисунке):

    =(AH13-AI13) + (CountByInteriorColor(D13:AG13;$E$65)*4)

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


    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    1

    Поиск ячейки по цвету

    18.08.2014, 04:33. Показов 25933. Ответов 15


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

    такой вопрос, как можно выполнить поиск ячейки по цвету?

    имеется лист на котором вразнобой есть желтые, зеленые и красные ячейки.
    необходимо переместить все желтые в 9й столбец, зеленые во 11й, красные в 13й.

    поиск осуществляется по строкам начиная со 2й.



    0



    3827 / 2254 / 751

    Регистрация: 02.11.2012

    Сообщений: 5,928

    18.08.2014, 09:49

    2

    файл приложите. вручную напишите что и где должно получиться.



    0



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    18.08.2014, 15:38

     [ТС]

    3

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



    0



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    20.08.2014, 19:51

     [ТС]

    4

    идей нет?

    Добавлено через 7 минут
    можно ли вообще искать ячейку по цвету или стоит пойти другим путем?

    например количество непустых ячеек в строке, начиная с 7го стоолбца, делить на 3 (узнаем количество ячеек каждого цвета),
    в этом случае понадобится ручная правка, но уже в гораздо меньшей степени.



    0



    5942 / 3154 / 698

    Регистрация: 23.11.2010

    Сообщений: 10,524

    20.08.2014, 20:46

    5

    По какому принципу происходит раскраска?



    0



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    21.08.2014, 20:29

     [ТС]

    6

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

    Так как в VB я полный 0 =) (возможно уже не полный, 3 дня его учу )) ), то написание кода идет медленно.
    Закончу , выложу на корректировку.



    0



    414 / 262 / 82

    Регистрация: 27.10.2012

    Сообщений: 860

    21.08.2014, 21:14

    7

    Так если строку надо делить на 3 зачем тогда цвет?



    0



    Феррим

    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    22.08.2014, 04:57

     [ТС]

    8

    изначально планировал по цвету определять так как количество ячеек каждого цвета может быть разным (хотя в 90% случаев они одинаковы).
    но сам не понял какой командой можно определить цвет ячейки и никто не подсказал (склоняюсь к мысли что цвет ячейки на VB определить невозможно)
    поэтому, изходя из того что в большинстве случаев количество ячеек по цвету в одной строке одинаково, а цвета всего 3, то и решил делить на 3.
    единственно что в этом случае результат потребует некоторой ручной правки.
    Но в документе из 2х тысяч строк доправить вручную 20-30 строк это уже мелочи )

    Добавлено через 7 минут
    вот собствеено на какой стадии находится код в данный момент

    Visual Basic
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    
    Sub work()
     
    Dim b As Range
     
        Dim столбец As Integer ' номер столбца
        Dim строка As Integer ' номер строки
        столбец = 1
        строка = 9
        
    Range("I9").Select ' выбираем 1ю ячейку с данными
     
    ' Считаем количество непустых ячеек в строке
     
        Dim a As Boolean
        Dim i As Integer
        Dim j As Integer ' переменная для подсчета количества добавляемых строк
        Dim k As Integer ' переменная для подсчета строк
        Dim d As Double
        Dim c As Range
        
        k = 9
        j = 0
        i = 1
        a = True
        Set c = Range(ActiveCell.Address)
        c.Select
        d = c.Value
        c.Value = d
        While (a = True)
            ActiveCell.Offset(0, 1).Select
            If (IsEmpty(ActiveCell.Value) = False) Then
                Set c = Range(ActiveCell.Address)
                i = i + 1
                c.Select
                d = c.Value
                c.Value = d
            Else
                a = False
            End If
        Wend
        
        MsgBox i
    ' Считаем количество добавляемых строк
     
    j = i / 3 - 1
     
    ' Добавляем нужное количество строк
     
    While (j <> 0)
        Rows(k + 1).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        j = j - 1
    Wend
     
    ' Перемещаем данные
     
    j = i / 3 - 2
    Dim пс As Integer ' проверка строки
    пс = строка
    Columns("I:N").Select ' Выделяем рабочие столбцы
    Set b = Selection
    ' координаты для сдвига активной ячейки
    Dim x As Integer
    Dim y As Integer
    y = 0
    x = 2
    строка = строка + 1
    Range("I9").Select
    While (j <> 0)
            ActiveCell.Offset(y, x).Select
                Set c = Range(ActiveCell.Address)
                c.Select
                MsgBox "Выбрано значение"
                Selection.Cut
                b(строка, столбец).Select
                ActiveSheet.Paste
                
                If (столбец = 1) Then
                x = x + 1
                Else
                x = x - 1
                End If
                
                
                
                If (пс = строка) Then
                    строка = строка + 1
                    столбец = столбец - 1
                    x = x + 1
                Else
                    
                    y = y - 1
                    пс = пс + 1
                    столбец = столбец + 1
                End If
                    
                j = j - 1
                            
            Wend
     
    MsgBox "Работа выполнена."
     
    End Sub

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

    Добавлено через 11 минут
    есть ли возможность точного выбора ячейки по относительным координатам которые будут задаваться переменными?
    или только путем сдвига от текущей?
    можно ли как-то задать диапазон типа Range (переменная).Select чтоб выбрать именно ту ячейку на которую укажет эта переменная, а не пытаясь с помощью сдвига на нее выскочить?

    заранее благодарен за ответ



    0



    kalbasiatka

    414 / 262 / 82

    Регистрация: 27.10.2012

    Сообщений: 860

    22.08.2014, 09:05

    9

    Лучший ответ Сообщение было отмечено Феррим как решение

    Решение

    Можно и по цвету, но зачем?
    Вариант:

    Visual Basic
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    Sub tp() 'tp - подстанция (я так думаю) не путать с чем другим
        Dim a(), b()
        Dim i%, ii%, x%, part1%, part2%
        With Sheets("Лист1") 'с листом лист1
            a = .UsedRange.Value 'берём в массив рабочий диапазон (как ctr+shift+end)
        End With
        ReDim b(1 To 10000, 1 To 14) 'перезаписываем массив b() на 10000 строк например
        ii = 1 'счётчик строк массива b()
        For i = 2 To UBound(a) 'проходим по массиву а() - "строки"
            For j = 1 To 7 'идём по "колонкам" первые 7 элементов
                b(ii, j) = a(i, j) 'пишем в массив b()
            Next
            'считаем кол-во ячеек на строку начиная с 9й колонки
            x = 0 'сбрасываем счётчик кол-ва ячеек
            For j = 9 To UBound(a) 'идём по колонкам с 9 и до конца массива
                If a(i, j) = "" Then Exit For 'если дошли до пусто то выходим из цикла
                x = x + 1 'если не пусто увеличиваем счётчик на ед
            Next
            part1 = x / 3 'границы для жёлтого
            part2 = part1 * 2 'граница для красного
            If x <> 0 Then 'если была загрузка то
                For j = 9 To 9 + part1 - 1 Step 2 'идём по строке с 9 по 14 колонку с шагом 2
                    'пишем в массив b()
                    b(ii, 9) = a(i, j) 'жёлтый
                    b(ii, 10) = a(i, j + 1) 'жёлтый + 1
                    b(ii, 11) = a(i, j + part1) 'зелёный
                    b(ii, 12) = a(i, j + part1 + 1) 'зелёный + 1
                    b(ii, 13) = a(i, j + part2) 'красный
                    b(ii, 14) = a(i, j + part2 + 1) 'красный + 1
                    ii = ii + 1 'увеличиваем счётчик строк массива b()
                Next
            'если загрузки нет 0%
            Else: ii = ii + 1 'увеличиваем счётчик строк массива b()
            End If
        Next
        'выгружаем массив b() на лист 2
        Sheets("Лист2").Cells(2, 1).Resize(UBound(b), 14) = b
    End Sub



    1



    3827 / 2254 / 751

    Регистрация: 02.11.2012

    Сообщений: 5,928

    22.08.2014, 09:09

    10

    Лучший ответ Сообщение было отмечено Феррим как решение

    Решение

    Цитата
    Сообщение от Феррим
    Посмотреть сообщение

    командой можно определить цвет ячейки

    Код

    Range("A1").Interior.Color



    1



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    23.08.2014, 01:56

     [ТС]

    11

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

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



    0



    kalbasiatka

    414 / 262 / 82

    Регистрация: 27.10.2012

    Сообщений: 860

    23.08.2014, 09:15

    12

    У меня ошибка )
    Размерность не ту взял, замените строку или дописать «, 2»

    Visual Basic
    1
    
    For j = 9 To UBound(a, 2) 'идём по колонкам с 9 и до конца массива



    1



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    23.08.2014, 17:49

     [ТС]

    13

    огромное спасибо!
    попытаюсь терь сделать чтом массив и цвет ячейки сохранял и при переносе на новый лист восстанавливал



    0



    414 / 262 / 82

    Регистрация: 27.10.2012

    Сообщений: 860

    23.08.2014, 20:28

    14

    А зачем? ведь в итоге всегда 3 цветных колонки. Сразу их разрисовать и делов то.



    0



    0 / 0 / 0

    Регистрация: 18.08.2014

    Сообщений: 9

    23.08.2014, 22:33

     [ТС]

    15

    иногда бывает что желтых в строке больше чем красных и зеленых (или наоборот), и тогда макрос неправильно разносит эту строку. В ручную это поправить не составит труда (таких строк 1 на тысячу), но без цвета (среди 5ти тысяч строк) найти это место несколько проблематично.
    Как я понимаю надо сделать еще 1 массив который заполнить цветом ячеек и при заполнении второго листа из этого массива, сначала, закрашивать ячейку? Прошу просто подсказать а не писать код ) должен же я сам хоть что-то сделать ).
    Спасибо.

    Добавлено через 5 минут
    еще вопрос, что означает знак % после переменной в 3й строке?



    0



    3827 / 2254 / 751

    Регистрация: 02.11.2012

    Сообщений: 5,928

    24.08.2014, 17:36

    16

    Цитата
    Сообщение от Феррим
    Посмотреть сообщение

    что означает знак % после переменной в 3й строке?

    Символ определения типа



    0



    Skip to content

    Выделение ячеек в Excel по значению и по цвету

    Найдите ячейки по вашим критериям

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

    • 60-дневная безусловная гарантия возврата денег

    • Бесплатные обновления на 2 года
    • Бесплатная и бессрочная техническая поддержка

    С помощью инструмента Select by Value & Color вы сможете:

    Выделить все ячейки с одинаковым значением

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

    Выделить ячейки с числами и датами по различным условиям

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

    Найти специальные ячейки

    Ищите ячейки с константами или формулами, которые содержат текст, числа, логические значения или ошибки.

    Найти ячейки с определенной заливкой или цветом шрифта

    Выделите все ячейки, которые имеют тот же цвет фона или шрифта, что и выбранная ячейка.

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

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

    Выбрать ячейки определенного типа

    Выделите все ячейки с комментариями, константами, формулами, объектами, условными форматами или просто пустые.

    Приложение Ultimate Suite уже используют
    companies logo

    Что такое инструмент «Select by Value/Color» и зачем он мне нужен?

    Речь идет не только о поиске ячеек по цвету и значению. Этот инструмент предлагает много различных вариантов для быстрого выделения ячеек в соответствии с вашими критериями. 

    С помощью надстройки вы можете:

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

    Кроме того, вы можете выбрать числа, даты или текстовые ячейки, которые:

    • Больше или меньше указанного значения
    • Равны или не равны заданному значению
    • В пределах или за пределами определенного диапазона
    • Текстовые строки, начинающиеся или заканчивающиеся определенными символами
    • Текст, содержащий или не содержащий указанные символы
    • Максимальные или минимальные значения
    • Уникальные данные

    Как найти одинаковые данные с помощью этой утилиты?

    Выберите любую ячейку, содержащую данные, которые вы ищете, и выберите «Все ячейки с одинаковым значением» (All cells with the same value). Инструмент выделит все ячейки, содержащие те же данные, что и в выбранной ячейке.

    Мне нужно выделить все ячейки с числами больше 100. Как я могу это сделать?

    Это можно сделать с помощью опции «Выбрать по значению» (Select by Value). Укажите свой диапазон поиска и отметьте «Числа» (Numbers). Выберите пункт «Выбрать ячейки которые больше» (Select cells that are greater), введите 100 в соответствующее поле и нажмите «Выбрать» . Все ячейки, содержащие числа больше 100, будут выделены.

    Могу ли я выделить все ячейки с условным форматированием?

    Для этого используйте операцию Select Special Cells. Выделите диапазон и нажмите Выбрать ячейки, содержащие условные форматы (Select cells containing conditional formats). Нажмите кнопку «Выбрать» и просмотрите все ячейки текущего листа с выделенным условным форматированием.

    Как найти в Excel ячейки, содержащие изображения?

    Опция Select Special Cells поможет. Выберите Выбрать ячейки, содержащие объекты (Select cells containing objects), и все ячейки с изображениями будут найдены.

    Может ли эта утилита помочь мне найти даты, попадающие в определенный диапазон?

    Да, программа предлагает такую ​​возможность. Выберите свою область поиска и запустите надстройку Select by Value. Отметьте пункт «Даты» (Date). Затем выберите «Выбрать ячейки, которые находятся в диапазоне» (Select cells that are in the range) , определите этот диапазон и нажмите «Выбрать» .

    Таким же образом вы можете найти даты, выходящие за пределы вашего диапазона, и даты, которые больше или меньше определенных дат.

    Скачать  Ultimate Suite

    Посмотреть все комментарии

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