Excel中根据单元格颜色进行排序
在Excel中如果你想按照单元格颜色进行排序,Excel本身并不提供任何内建函数或者操作来完成,但可以使用自定义函数来完成。使用下面的函数可以获取单元格颜色:
Function GetFillColor(rng As Range) As Long
GetFillColor = rng.Interior.ColorIndex
End Function
假定填充颜色位于A列,现在你只需在空白列B列输入公式,如:
=GetFillColor(A2)
B列相应所有行都填入相应公式后,便得到了A列的填充颜色,这样就可以对B列进行排序,这样便完成了对A按照颜色来进行排序。
如果你需要更细致地调整排列顺序(如先黄色然后红色最后蓝色),这样你就不能像刚才那样仅仅使用颜色值,你需要先建立一个颜色排序基准表,接着采用下面的自定义函数:
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是你设置的颜色排序基准表,你就可以使用(在空白列B列中输入):
=GetColor($E$1:$E$9,A2)
来完成对单元格颜色索引的获取,接下来像刚才一样排序就OK了。


