Сортировка по цвету заливки (Microsoft Excel)
Чак писал о том, что ему необходимо сортировать записи на листе в зависимости от цвета заливки, используемого в ячейке. В Excel нет встроенной функции для выполнения такого действия, но можно создать определяемую пользователем функцию, которая поможет с любой необходимостью сортировки. Рассмотрим следующий макрос:
Function GetFillColor(rng As Range) As Long GetFillColor = rng.Interior.ColorIndex End Function
Предполагая, что цвета заливки находятся в ячейках столбца A, все, что вам нужно сделать, это убедиться, что есть пустой столбец B. Затем поместите следующую формулу в ячейку B2 и скопируйте ее для каждой записи:
=GetFillColor(A2)
Когда вы закончите, столбец B будет содержать значения индекса для каждого цвета заливки, используемого в столбце A. Затем вы можете выполнить сортировку по столбцу B, в результате чего все похожие цвета заливки будут сгруппированы вместе.
Если вам нужно более детально, например, если вам нужно отсортировать в определенном порядке (сначала желтый, второй красный, третий зеленый и т. Д.), То вы не можете полагаться только на значение индекса цвета заливки. В таком случае вы должны полагаться на другой метод возврата цвета.
Рассмотрим следующий макрос:
Function GetColor(rngIndex As Range, rngSource As Range) As Long Dim lngColor As Long Dim J As Integer Application.Volatile lngColor = rngSource.Interior.ColorIndex GetColor = 99 'Set to default color For J = 1 To rngIndex.Count If rngIndex(J).Interior.ColorIndex = lngColor Then GetColor = J End If Next J End Function
Этот макрос работает иначе, чем предыдущий. Для правильной работы требуется два диапазона. Первый диапазон — это таблица цветов, в которой указывается порядок сортировки цветов. Например, ячейки с E1 по E9 могут содержать девять цветов, которые вы хотите использовать для сортировки, в том порядке, в котором вы хотите их отсортировать. Затем поместите следующую формулу в ячейку B2 и скопируйте ее для каждой записи:
=GetColor($E$1:$E$9,A2)
В результате столбец B будет содержать значения от 1 до 9, представляющие цвета в вашей таблице цветов. Если цвет в ячейке не имеет соответствующего цвета в таблице цветов, функция возвращает значение 99. Когда вы сортируете записи в своей таблице, вы в конечном итоге сортируете их так, как хотите.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2009 г.) применим к Microsoft Excel 97, 2000, 2002 и 2003.