例:用公式计算单元格背景色为浅蓝色的数字之和 
 

步骤一:

Office 2003

Insert->Name->Define,Names in workbook输入getColor或getBGColor等标识词汇,Refers to输入公式=GET.CELL(63,$A1),这里数字63代表单元格的背景色,如果要得到文字的颜色,则把数字改成24(可参考附录中从互联网搜到的类型号信息)。这个公式用于会返回一个单元格背景色的索引数字。由于GET.CELL是excel里的隐藏函数,不能直接使用,所以要先在这里定义一下。

 

Office 2010

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

然后就可以使用这个函数了,如果要计算背景色为黄色单元格的数据,按照公式定义SumByColor(Ref_color As Range, Sum_range As Range),输入公式=SumByColor(A4,A1:B12)即可。

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        显示活页簿名称

【Excel】Excel根据单元格背景色求和的更多相关文章

  1. poi操作Excel并修改单元格背景色

    废话不多说,直接来代码!!! 其中标红的才是重点!!! 代码中有时可以不用创建新文件, 如果报错的话可以通过创建新文件来进行操作(懒,没去找报错原因),不过原文件也会被修改. 操作之前做好备份!操作之 ...

  2. NPOI之Excel——设置单元格背景色

    NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...

  3. [从产品角度学excel 04]-单元格的“衣服”

    忘记发这里了..补发一下 这是<从产品角度学EXCEL>系列——单元格篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 2 EXCEL里的树形结构 3 单元格 ...

  4. Excel 锁定特定单元格 不允许更改

    1.首先,excel默认所有单元格都是被"锁定"的--当"锁定单元格"按钮被激活时. 因此,第一步,选择所有单元格,设置单元格格式,取消"保护&quo ...

  5. 如何把Excel中的单元格等对象保存成图片

    对于Excel中的很多对象,比如单元格(Cell),图形(shape),图表(chart)等等,有时需要将它们保存成一张图片.就像截图一样. 最近做一个Excel相关的项目,项目中遇到一个很变态的需求 ...

  6. Excel阅读模式/单元格行列指示/聚光灯开发 技术要点再分享

    1. 引言 文题中所谓技术要点再分享,本意是想在大神Charltsing Liu的博文“简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)”的基础上写一点个人开发体会.写本文的初衷有三点,一 ...

  7. PHP Excel导入日期单元格处理

    PHPExcel导入Excel文件,对Excel中日期单元格处理 /** * 判断字符串是否是日期格式 * @param $date * @param $format * @return bool * ...

  8. 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

    本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...

  9. WPF 导出Excel(合并单元格)

    WPF 导出Excel(合并单元格) DataTable 导出Excel(导出想要的列,不想要的去掉) ,B1,B2,B3,B4,B5} MisroSoft.Office.Interop.Excel. ...

随机推荐

  1. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(四) 之 用户搜索(Elasticsearch),加好友流程(1)。

    前面几篇基本已经实现了大部分即时通讯功能:聊天,群聊,发送文件,图片,消息.不过这些业务都是比较粗犷的.下面我们就把业务细化,之前用的是死数据,那我们就从加好友开始吧.加好友,首先你得知道你要加谁.L ...

  2. 学习hibernate @Entity该导入哪个包

    1.在@Entity时很容易顺手导入@org.hibernate.annotations.Entity这个包,结果导致了异常.其实应该导入的是@javax.persistence.Entity Alw ...

  3. python中使用chrome进行自动化测试,浏览器变量设置

  4. ssh -v root@xxxxx 显示登录的细节

    [root@ok .ssh]# ssh -v root@10.100.2.84 OpenSSH_5.3p1, OpenSSL Feb debug1: Reading configuration dat ...

  5. jQuery - 4.简单选择器

    4.1 简单选择器   (1) :first 选取第一个元素.   (2) :last 选取最后一个元素.  (3) :not(选择器) 选取不满足"选择器"条件的元素   (4) ...

  6. 重温WCF之数单向通讯、双向通讯、回调操作(五)

    一.单向通讯单向操作不等同于异步操作,单向操作只是在发出调用的瞬间阻塞客户端,但如果发出多个单向调用,WCF会将请求调用放入到服务器端的队列中,并在某个时间进行执行.队列的存储个数有限,一旦发出的调用 ...

  7. 几年前做家教写的C教程(之一)

    C语言学习宝典 首先让我们认识什么是C语言. C语言是一种计算机开发语言,是一种非常基础的开发语言.能够用C语言做很多事情.C语言是顺序执行的程序. 程序应该包括数据描述,数据操作. C语言的数据类型 ...

  8. windows操作技巧

    -------------------win7专有------------------- WIN+上下左右可以将当前窗口 最大化.左侧放置.右侧放置.最小化 WIN+Shift+左右是让窗口在多个屏幕 ...

  9. Javascript事件冒泡机制

    1. 事件 在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然后做出相应的动作. 浏览器的事件表示的是某些事情发生的信号.事件的阐述不是本文的重点,尚未了解的朋友,可以访问W3scho ...

  10. Install PIL on mac osX10.9

    follow this instruction: http://blog.csdn.net/liushuaikobe/article/details/8729652 and if you encoun ...