步骤一:
Office 2003
Insert->Name->Define,Names in workbook输入getColor或getBGColor等标识词汇,Refers to输入公式=GET.CELL(63,$A1),这里数字63代表单元格的背景色,如果要得到文字的颜色,则把数字改成24(可参考附录中从互联网搜到的类型号信息)。这个公式用于会返回一个单元格背景色的索引数字。由于GET.CELL是excel里的隐藏函数,不能直接使用,所以要先在这里定义一下。
Formulas->Define Name,Name输入getColor或getBGColor等标识词汇,Refers to输入公式=GET.CELL(63,$A1),这里数字63代表单元格的背景色,如果要得到文字的颜色,则把数字改成24。
步骤二:
如果想知道某个单元格背景色的值,就在旁边的单元格里输入公式=getColor,如下图:
回车之后,我们会看到这个背景色对应的一个索引数字,如下图:
好了,现在,我们知道了这个浅蓝色的索引值是33.
步骤三:
在C列输入公式=IF(getColor=33,A1,0)
然后对C列求和,大家都会了=sum(C1:C12),得出结果154。
在Office 2010中运行的效果图如下:
这个还不算什么,再来个更猛的(函数作者未知):
在Excel里,按Alt+F11,调出VB编辑器,点菜单Insert->Module,粘贴如下的代码,自定义一个叫SumByColor的函数:
Function SumByColor(Ref_color As Range, Sum_range As Range)
Application.Volatile
Dim iCol As Integer
Dim rCell As Range
iCol = Ref_color.Interior.ColorIndex
For Each rCell In Sum_range
If iCol = rCell.Interior.ColorIndex Then
SumByColor = SumByColor + rCell.Value
End If
Next rCell
End Function
Excel还是很博大精深的。应该常常怀着敬畏的心去重新看待自己认为已经很“熟悉”的东西,更不能对自己不了解的事情妄加评论。
附录:
=GET.CELL(类型号,参考单元格) [ 例:=GET.CELL(63,$A1) ]
以下是类型号及代表的意思
1 参照储存格的绝对地址
2 参照储存格的列号
3 参照储存格的栏号
4 类似 TYPE 函数
5 参照地址的内容
6 文字显示参照位址的公式
7 参照位址的格式,文字显示
8 文字显示参照位址的格式
9 传回储存格外框左方样式,数字显示
10 传回储存格外框右方样式,数字显示
11 传回储存格外框方上样式,数字显示
12 传回储存格外框方下样式,数字显示
13 传回内部图样,数字显示
14 如果储存格被设定 locked传回 True
15 如果公式处于隐藏状态传回 True
16 传回储存格宽度
17 以点为单位传回储存格高度
18 字型名称
19 以点为单位元传回字号
20 如果储存格所有或第一个字符为加粗传回 True
21 如果储存格所有或第一个字符为斜体传回 True
22 如果储存格所有或第一个字符为单底线传回True
23 如果储存格所有或第一个字符字型中间加了一条水平线传回 True
24 传回储存格第一个字符色彩数字, 1 至 56。如果设定为自动,传回 0
25 MS Excel不支持大纲格式
26 MS Excel不支持阴影格式
27 数字显示手动插入的分页线设定
28 大纲的列层次
29 大纲的栏层次
30 如果范围为大纲的摘要列则为 True
31 如果范围为大纲的摘要栏则为 True
32 显示活页簿和工作表名称
33 如果储存格格式为多行文字则为 True
34 传回储存格外框左方色彩,数字显示。如果设定为自动,传回 0
35 传回储存格外框右方色彩,数字显示。如果设定为自动,传回 0
36 传回储存格外框上方色彩,数字显示。如果设定为自动,传回 0
37 传回储存格外框下方色彩,数字显示。如果设定为自动,传回 0
38 传回储存格前景阴影色彩,数字显示。如果设定为自动,传回 0
39 传回储存格背影阴影色彩,数字显示。如果设定为自动,传回 0
40 文字显示储存格样式
41 传回参照地址的原始公式
42 以点为单位传回使用中窗口左方至储存格左方水平距离
43 以点为单位传回使用中窗口上方至储存格上方垂直距离
44 以点为单位传回使用中窗口左方至储存格右方水平距离
45 以点为单位传回使用中窗口上方至储存格下方垂直距离
46 如果储存格有插入批注传回 True
47 如果储存格有插入声音提示传回 True
48 如果储存格有插入公式传回 True
49 如果储存格是数组公式的范围传回 True
50 传回储存格垂直对齐,数字显示
51 传回储存格垂直方向,数字显示
52 传回储存格前缀字符
53 文字显示传回储存格显示内容
54 传回储存格数据透视表名称
55 传回储存格在数据透视表的位置
56 枢纽分析
57 如果储存格所有或第一个字符为上标传回True
58 文字显示传回储存格所有或第一个字符字型样式
59 传回储存格底线样式,数字显示
60 如果储存格所有或第一个字符为下标传回True
61 枢纽分析
62 显示活页簿和工作表名称
63 传回储存格的填满色彩
64 传回图样前景色彩
65 枢纽分析
66 显示活页簿名称