在Excel2003中按颜色进行排序

源地址:http://www.excel123.cn/Article/excelhanshu/200910/481.html


有时需要按单元格颜色或字体颜色进行排序,但Excel 2003没有提供直接的方法。我们可以利用自定义函数或宏表函数GET.CELL,在辅助列中获取单元格颜色或字体颜色索引值,然后进行排序。具体方法如下:

    方法一:用宏表函数GET.CELL  

    以下表为例,假设人物名单在B2:B19区域中。

序号

人物名单

1

一灯大师

2

柯镇恶

3

孙不二

4

洪七公

5

朱聪

6

马钰

7

黄药师

8

寒宝驹

9

丘处机

10

欧阳锋

11

全金发

12

谭处端

13

张阿生

14

南希仁

15

刘处玄

16

王处一

17

韩小萤

18

郝大通

    1.选择C2单元格(很重要,不能随便选择别的单元格),单击菜单“插入→名称→定义”,弹出“定义名称”对话框。在“在当前工作簿中的名称”下的文本框中输入名称“字体颜色”,在“引用位置”下输入公式:

    =GET.CELL(24,B2)

    

    单击“确定”按钮。

    说明:由于要获取字体颜色,所以公式中GET.CELL函数的第一个参数为“24”,如果要获取单元格颜色,则将该参数改为“38”,公式改为:

    =GET.CELL(38,B2)

    所定义的名称也可以作相应的更改,如改为“单元格颜色”。

    2.在C2单元格中输入公式:

    =字体颜色

    回车后C2单元格中将显示B2单元格中字体的颜色索引值。将C2单元格中的公式用填充柄填充到C3:C19区域中,然后选择该区域中的某个单元格,单击工具栏中的A→Z排序按钮,即可得到按字体颜色排序后的结果。

    

    方法二:用自定义函数

    以下表为例,假设人物名单在B2:B19区域中。

序号

人物名单

1

一灯大师

2

柯镇恶

3

孙不二

4

洪七公

5

朱聪

6

马钰

7

黄药师

8

寒宝驹

9

丘处机

10

欧阳锋

11

全金发

12

谭处端

13

张阿生

14

南希仁

15

刘处玄

16

王处一

17

韩小萤

18

郝大通

    1.按Alt+F11,打开VBA编辑器。单击菜单“插入→模块”,Excel插入名称为“模块1”的模块。在右侧的代码窗口中输入下面的VBA代码:

    Function GetCellColor(TheCell As Range)
      GetCellColor = TheCell.Interior.ColorIndex
    End Function
    Function GetFontColor(TheCell As Range)
      GetFontColor = TheCell.Font.ColorIndex
    End Function

    2.按Alt+F11返回Excel界面。在C2单元格中输入公式:

    =getcellcolor(B2)

    如果需要按单元格字体颜色排序,则输入下面的公式:

    =getfontcolor(B2)

     回车后C2单元格中将显示B2单元格中填充色的颜色索引值。将C2单元格中的公式用填充柄填充到C3:C19区域中,然后选择该区域中的某个单元格,单击工具栏中的A→Z排序按钮,即可得到按单元格颜色排序后的结果。

    


你可能感兴趣的:(Excel)