按填充颜色排序(Microsoft Excel)
Chuck写道,他需要根据单元格中使用的填充颜色对工作表中的记录进行排序。 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_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2009)适用于Microsoft Excel 97、2000、2002和2003。