Как в 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. Щелкните стрелку Стрелка автофильтра в столбце с содержимым, которое вы хотите отфильтровать.

  4. В разделе Фильтр во всплывающем меню По цвету щелкните Цвет ячейки, Цвет шрифта или Значок ячейки и выберите условия.

    Пример фильтрации по цвету ячейки

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

  2. На панели инструментов Стандартная нажмите кнопку Фильтр Кнопка "Фильтр", стандартная панель инструментов .

  3. Щелкните стрелку Стрелка автофильтра в столбце с содержимым, которое нужно отфильтровать.

  4. В разделе Фильтр во всплывающем меню По цвету щелкните Цвет ячейки, Цвет шрифта или Значок ячейки и выберите цвет.

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

Выберите ячейки на основе другой ячейки с помощью команды «Найти»;

Выберите ячейки на основе другой ячейки с помощью Kutools for Excel.

Предположим, у вас есть диапазон данных, как на следующем снимке экрана, ячейка F3 имеет определенное форматирование, которое вы хотите, и теперь вам нужно выбрать все ячейки, которые имеют такое же форматирование с ячейкой F3 из диапазона A1: D10. Здесь я представлю вам несколько быстрых способов.

doc-select-specific-cells-1


Выберите ячейки на основе другой ячейки с помощью команды «Найти»

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

Шаг 1: О Главная вкладку, перейдите к Найти и заменить, наведите на Арендовать опцию, вы также можете быстро активировать эту опцию поиска, нажав Ctrl + F ярлыки.

Шаг 2: Нажмите Формат в Найти и заменить диалоговое окно и выберите Выбрать формат из ячейки. Если вы не можете узнать Формат кнопку, нажмите Опции сначала кнопку. Смотрите скриншот:

doc-select-specific-cells-2

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

doc-select-specific-cells-3

Шаг 4: Нажмите Ctrl + чтобы выбрать все элементы в списке, и были выбраны те же ячейки форматирования с выбранной ячейкой, включая конкретную ячейку, см. снимок экрана:

doc-select-specific-cells-4

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


стрелка синий правый пузырьВыберите ячейки на основе другой ячейки с помощью Kutools for Excel

Для Выбрать ячейки с форматом утилита сторонней надстройки Kutools for Excel, вы можете легко выбирать ячейки на основе другой выбранной ячейки.

Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Получить сейчас

После установки Kutools for Excel, подать заявление Выбрать ячейки с форматом в соответствии с этими шагами:

Шаг 1: Нажмите Кутулс > Выберите Инструменты > Выбрать ячейки с форматом. Смотрите скриншот:

doc-select-specific-cells-5

Шаг 2: Укажите настройки во всплывающем окне Выбрать ячейки с форматом диалоговое окно. Смотрите скриншот:

doc-select-specific-cells-8 1. Нажмите док-кнопка-1 кнопку, чтобы выбрать диапазон, в котором вы хотите выбрать все ячейки с одинаковым форматированием с определенной ячейкой.
2, Затем нажмите Выбрать формат из ячейки кнопку, чтобы выбрать конкретную ячейку форматирования, на основе которой.
3. Все атрибуты конкретной ячейки внесены в список, отметьте их все.

Шаг 3:: Щелкните OK, он покажет диалоговое окно, чтобы сообщить вам, сколько ячеек будет выбрано, если вы нажмете Да, он выберет ячейки, если вы нажмете Нет, он снова выполнит поиск в диапазоне. Смотрите скриншот:

doc-select-specific-cells-6

Шаг 4: Нажмите Да, выбраны все ячейки с одинаковым форматированием в выбранном диапазоне с базовой ячейкой.

doc-select-specific-cells-7

Для получения более подробной информации перейдите по ссылке Выбрать ячейки с форматом.


Относительная статья:

Как определить и выделить все жирные ячейки или текст в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

0 / 0 / 0

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

Сообщений: 9

1

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

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


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

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

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

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



0



3835 / 2261 / 753

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

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

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



5960 / 3166 / 704

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

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

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



3835 / 2261 / 753

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

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

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



3835 / 2261 / 753

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

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

24.08.2014, 17:36

16

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

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

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



0



Содержание

  • 1 Выбор уникальных и повторяющихся значений в Excel
  • 2 Выполнение выборки
    • 2.1 Способ 1: применение расширенного автофильтра
    • 2.2 Способ 2: применение формулы массива
  • 3 Стандартный фильтр и сортировка по цвету в Excel
  • 4 Сортировка и фильтр по цвету с помощью функций
    • 4.1 Функция цвета заливки ячейки на VBA
    • 4.2 Функция цвета текста ячейки на VBA
  • 5 Замечания

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

Для примера возьмем историю взаиморасчетов с контрагентами, как показано на рисунке:

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

Перед тем как выбрать уникальные значения в Excel, подготовим данные для выпадающего списка:

  1. Выделите первый столбец таблицы A1:A19.
  2. Выберите инструмент: «ДАННЫЕ»-«Сортировка и фильтр»-«Дополнительно».
  3. В появившемся окне «Расширенный фильтр» включите «скопировать результат в другое место», а в поле «Поместить результат в диапазон:» укажите $F$1.
  4. Отметьте галочкой пункт «Только уникальные записи» и нажмите ОК.

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

Теперь нам необходимо немного модифицировать нашу исходную таблицу. Выделите первые 2 строки и выберите инструмент: «ГЛАВНАЯ»-«Ячейки»-«Вставить» или нажмите комбинацию горячих клавиш CTRL+SHIFT+=.

У нас добавилось 2 пустые строки. Теперь в ячейку A1 введите значение «Клиент:».

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

Перед тем как выбрать уникальные значения из списка сделайте следующее:

  1. Перейдите в ячейку B1 и выберите инструмент «ДАННЫЕ»-«Работа с данными»-«Проверка данных».
  2. На вкладке «Параметры» в разделе «Условие проверки» из выпадающего списка «Тип данных:» выберите значение «Список».
  3. В поле ввода «Источник:» введите =$F$4:$F$8 и нажмите ОК.

В результате в ячейке B1 мы создали выпадающих список фамилий клиентов.

Примечание. Если данные для выпадающего списка находятся на другом листе, то лучше для такого диапазона присвоить имя и указать его в поле «Источник:». В данном случае это не обязательно, так как у нас все данные находятся на одном рабочем листе.

Выборка ячеек из таблицы по условию в Excel:

  1. Выделите табличную часть исходной таблицы взаиморасчетов A4:D21 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило»-«Использовать формулу для определения форматируемых ячеек».
  2. Чтобы выбрать уникальные значения из столбца, в поле ввода введите формулу: =$A4=$B$1 и нажмите на кнопку «Формат», чтобы выделить одинаковые ячейки цветом. Например, зеленым. И нажмите ОК на всех открытых окнах.

Готово!

Как работает выборка уникальных значений Excel? При выборе любого значения (фамилии) из выпадающего списка B1, в таблице подсвечиваются цветом все строки, которые содержат это значение (фамилию). Чтобы в этом убедится в выпадающем списке B1 выберите другую фамилию. После чего автоматически будут выделены цветом уже другие строки. Такую таблицу теперь легко читать и анализировать.

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

Принцип действия автоматической подсветки строк по критерию запроса очень прост. Каждое значение в столбце A сравнивается со значением в ячейке B1. Это позволяет найти уникальные значения в таблице Excel. Если данные совпадают, тогда формула возвращает значение ИСТИНА и для целой строки автоматически присваивается новый формат. Чтобы формат присваивался для целой строки, а не только ячейке в столбце A, мы используем смешанную ссылку в формуле =$A4.

как сделать выборку в excel по цвету

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

Выполнение выборки

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

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

Наиболее простым способом произвести отбор является применение расширенного автофильтра. Рассмотрим, как это сделать на конкретном примере.

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

    как сделать выборку в excel по цвету

    Есть возможность поступить и по-другому. Для этого после выделения области на листе перемещаемся во вкладку «Данные». Щелкаем по кнопке «Фильтр», которая размещена на ленте в группе «Сортировка и фильтр».

  2. После этого действия в шапке таблицы появляются пиктограммы для запуска фильтрования в виде перевернутых острием вниз небольших треугольников на правом краю ячеек. Кликаем по данному значку в заглавии того столбца, по которому желаем произвести выборку. В запустившемся меню переходим по пункту «Текстовые фильтры». Далее выбираем позицию «Настраиваемый фильтр…».
  3. Активируется окно пользовательской фильтрации. В нем можно задать ограничение, по которому будет производиться отбор. В выпадающем списке для столбца содержащего ячейки числового формата, который мы используем для примера, можно выбрать одно из пяти видов условий:
    • равно;
    • не равно;
    • больше;
    • больше или равно;
    • меньше.

    Давайте в качестве примера зададим условие так, чтобы отобрать только значения, по которым сумма выручки превышает 10000 рублей. Устанавливаем переключатель в позицию «Больше». В правое поле вписываем значение «10000». Чтобы произвести выполнение действия, щелкаем по кнопке «OK».

  4. Как видим, после фильтрации остались только строчки, в которых сумма выручки превышает 10000 рублей.
  5. Но в этом же столбце мы можем добавить и второе условие. Для этого опять возвращаемся в окно пользовательской фильтрации. Как видим, в его нижней части есть ещё один переключатель условия и соответствующее ему поле для ввода. Давайте установим теперь верхнюю границу отбора в 15000 рублей. Для этого выставляем переключатель в позицию «Меньше», а в поле справа вписываем значение «15000».

    Кроме того, существует ещё переключатель условий. У него два положения «И» и «ИЛИ». По умолчанию он установлен в первом положении. Это означает, что в выборке останутся только строчки, которые удовлетворяют обоим ограничениям. Если он будет выставлен в положение «ИЛИ», то тогда останутся значения, которые подходят под любое из двух условий. В нашем случае нужно выставить переключатель в положение «И», то есть, оставить данную настройку по умолчанию. После того, как все значения введены, щелкаем по кнопке «OK».

  6. Теперь в таблице остались только строчки, в которых сумма выручки не меньше 10000 рублей, но не превышает 15000 рублей.
  7. Аналогично можно настраивать фильтры и в других столбцах. При этом имеется возможность сохранять также фильтрацию и по предыдущим условиям, которые были заданы в колонках. Итак, посмотрим, как производится отбор с помощью фильтра для ячеек в формате даты. Кликаем по значку фильтрации в соответствующем столбце. Последовательно кликаем по пунктам списка «Фильтр по дате» и «Настраиваемый фильтр».
  8. Снова запускается окно пользовательского автофильтра. Выполним отбор результатов в таблице с 4 по 6 мая 2016 года включительно. В переключателе выбора условий, как видим, ещё больше вариантов, чем для числового формата. Выбираем позицию «После или равно». В поле справа устанавливаем значение «04.05.2016». В нижнем блоке устанавливаем переключатель в позицию «До или равно». В правом поле вписываем значение «06.05.2016». Переключатель совместимости условий оставляем в положении по умолчанию – «И». Для того, чтобы применить фильтрацию в действии, жмем на кнопку «OK».
  9. Как видим, наш список ещё больше сократился. Теперь в нем оставлены только строчки, в которых сумма выручки варьируется от 10000 до 15000 рублей за период с 04.05 по 06.05.2016 включительно.
  10. Мы можем сбросить фильтрацию в одном из столбцов. Сделаем это для значений выручки. Кликаем по значку автофильтра в соответствующем столбце. В выпадающем списке щелкаем по пункту «Удалить фильтр».
  11. Как видим, после этих действий, выборка по сумме выручки будет отключена, а останется только отбор по датам (с 04.05.2016 по 06.05.2016).
  12. В данной таблице имеется ещё одна колонка – «Наименование». В ней содержатся данные в текстовом формате. Посмотрим, как сформировать выборку с помощью фильтрации по этим значениям.

    Кликаем по значку фильтра в наименовании столбца. Последовательно переходим по наименованиям списка «Текстовые фильтры» и «Настраиваемый фильтр…».

  13. Опять открывается окно пользовательского автофильтра. Давайте сделаем выборку по наименованиям «Картофель» и «Мясо». В первом блоке переключатель условий устанавливаем в позицию «Равно». В поле справа от него вписываем слово «Картофель». Переключатель нижнего блока так же ставим в позицию «Равно». В поле напротив него делаем запись – «Мясо». И вот далее мы выполняем то, чего ранее не делали: устанавливаем переключатель совместимости условий в позицию «ИЛИ». Теперь строчка, содержащая любое из указанных условий, будет выводиться на экран. Щелкаем по кнопке «OK».
  14. Как видим, в новой выборке существуют ограничения по дате (с 04.05.2016 по 06.05.2016) и по наименованию (картофель и мясо). По сумме выручки ограничений нет.
  15. Полностью удалить фильтр можно теми же способами, которые использовались для его установки. Причем неважно, какой именно способ применялся. Для сброса фильтрации, находясь во вкладке «Данные» щелкаем по кнопке «Фильтр», которая размещена в группе «Сортировка и фильтр».

    Второй вариант предполагает переход во вкладку «Главная». Там выполняем щелчок на ленте по кнопке «Сортировка и фильтр» в блоке «Редактирование». В активировавшемся списке нажимаем на кнопку «Фильтр».

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

Урок: Функция автофильтр в Excel

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

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

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

    =ИНДЕКС(A2:A29;НАИМЕНЬШИЙ(ЕСЛИ(15000
    На работе столкнулся с такой задачей - имеется таблица в Excel, в которой ведется табель выходов рабочих в цеху.

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

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

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

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

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

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

    Режим “Разработчик” в Excel

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

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

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

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

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

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

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

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

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

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

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

    • — диапазон с ячейками для подсчета
    • — ячейка-образец с цветом заливки
    • или учитывает скрытые ячейки; , или опущен(по умолчанию) — скрытые ячейки не подсчитываются.

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

    '--------------------------------------------------------------------------------------- ' Procedure : CountByInteriorColor ' Author    : The_Prist(Щербаков Дмитрий) '             ' 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(Щербаков Дмитрий) '             ' 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)

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

    Здесь можно получить ответы на вопросы по Microsoft Excel 58367 477636

    3 Ноя 2018 12:22:53

    44519 357828

    29 Янв 2017 17:28:40

    Лучшие избранные темы с основного форума 14 80

    28 Июн 2018 15:25:11

    Если вы — счастливый обладатель Mac 😉 219 1065

    25 Окт 2018 09:26:29

    Раздел для размещения платных вопросов, проектов и задач и поиска исполнителей для них. 2131 13609

    3 Ноя 2018 11:58:20

    Если Вы скачали или приобрели надстройку PLEX для Microsoft Excel и у Вас есть вопросы или пожелания — Вам сюда. 316 1613

    2 Ноя 2018 17:35:31

    816 11888

    3 Ноя 2018 11:34:46

    Обсуждение функционала, правил и т.д. 270 3481

    30 Окт 2018 15:01:36

    Сейчас на форуме (гостей: 345, пользователей: 7, из них скрытых: 1) , , , , ,

    Сегодня отмечают день рождения (52), (62)

    Всего зарегистрированных пользователей: 83700

    Приняло участие в обсуждении: 32105

    Всего тем: 106649

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

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

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

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

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

    • Автофильтр и инструмент «Настраиваемая сортировка» (доступен начиная с версии Excel 2007);
    • Применение пользовательских функций.

    Стандартный фильтр и сортировка по цвету в Excel

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

    Добавим фильтр к диапазону с таблицей (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или воспользуемся сочетанием клавиш Ctrl + Shift + L), далее щелкаем по стрелке в заголовке столбца и в выпадающем списке можем выбрать любой вариант сортировки или фильтрации:

    Из недостатков данного способа фильтрации можно отметить невозможность отфильтровать диапазон по нескольким цветам.

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

    Например, если мы хотим, чтобы сначала в таблице были показаны ячейки с красной заливкой, а затем с синей, то на первом шаге сделаем сортировку по синей заливке (т.е. сортируем данные в обратном порядке — если в конечном итоге нужен порядок ячеек красный -> синий, то сортируем в порядке синий -> красный):

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

    Аналогичного результата также можно добиться отсортировав данные с помощью инструмента Настраиваемая сортировка (также выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр), где можно настроить различные дополнительные параметры и уровни сортировки:

    Сортировка и фильтр по цвету с помощью функций

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

    Функция цвета заливки ячейки на VBA

    Для создания пользовательских функций перейдем в редактор Visual Basic (комбинация клавиш Alt + F11), создадим новый модуль и добавим туда код следующей функции:

    Public Function ColorFill(MyCell As Range)

        ColorFill = MyCell.Interior.ColorIndex

    End Function

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

    Вернемся в Excel и применим новую функцию ColorFill — либо непосредственно введем формулу в ячейку, либо вызовем ее с помощью мастера функций (выбрав из категории Определенные пользователем).
    В дополнительном столбце прописываем код заливки ячейки:

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

    Функция цвета текста ячейки на VBA

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

    Public Function ColorFont(MyCell As Range)

        ColorFont = MyCell.Font.ColorIndex

    End Function

    Функция ColorFont в качестве значения возвращает числовой код цвета шрифта ячейки и принцип ее применения аналогичен примеру рассмотренному выше.

    Замечания

    К сожалению, при работе с пользовательскими функциями ColorFill и ColorFont есть несколько подводных камней:

    • Они не работают с ячейками, в которых заливка определяется условным форматированием;
    • При изменении раскраски ячейки в Excel формулы автоматически не пересчитываются, в связи с этим пересчет нужно сделать самостоятельно (Shift + F9 для пересчета формул только на активном листе, F9 — для всей книги).

    Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!

Понравилась статья? Поделить с друзьями:
  • Как найти среднегодовой объем производства
  • Как в вайбере найти слово в переписке
  • Как найти сертификат в реестре росаккредитации
  • Челночная нить петляет как исправить
  • Как найти в компе где блютуз