统计涵数做不到,只能用VBA,可以这样实现
假如A列为你要统计个数的列,新增一列假如为B列,
在工具--宏--VB编辑器
在打开的VB编辑器菜单中 选择菜单,插入---模块
在打开的模块白色界面框中粘贴以下代码:
Sub Macro1()
'
' Macro1 Macro
' today614 记录的宏 2008-4-7
'
'
Dim luse As Long
For luse = 2 To 65536
If Cells(luse, 1)InteriorColorIndex = 43 Then
Cells(luse, 2)Value = "绿色"
End If
Next
End Sub
保存,退出VB编辑器,在EXCEL中,工具--宏---宏,选定marco1--执行,
再看看你的EXCEL表,是不是所有A列中绿色的单元格在B列中对应的单元格都显示为“绿色”两个字,在对B列筛选内容为绿色的单元格,是不是个数就统计出来了。或者再对B列应用统计涵数。
没有的,要自己实现,建议创建个人工作簿,把所有代码放在该文件中,这样每次打开任何工作簿自定义函数都可用。
限于篇幅,给你个简单的单元背景色判断公式,给定RGB值,如果匹配则返回真,否则为假。
函数代码如下:
Public Function MatchRGB(lookValue As Variant, Optional R As Long = 0, Optional G As Long = 0, Optional B As Long = 0) As Boolean
Dim rng As Range
Set rng = lookValue
MatchRGB = rngInteriorColor = RGB(R, G, B)
End Function
示例:
增加辅助列F:
F1输入公式:
=IF(OR(AND(E1="大",IF(ISERR(FIND(E1,D1)),0,1)=1),AND(E1="中",IF(ISERR(FIND(E1,D1)),0,1)=1),AND(E1="小",IF(ISERR(FIND(E1,D1)),0,1)=1)),"红",IF(OR(AND(E1="大",IF(ISERR(FIND(E1,D1)),0,1)=0),AND(E1="中",IF(ISERR(FIND(E1,D1)),0,1)=0),AND(E1="小",IF(ISERR(FIND(E1,D1)),0,1)=0)),"黄",))
然后选种A列,格式——条件格式——公式:
=F1="红" 设置背景颜色为红色
=F1="黄" 设置背景颜色为**
无色不用设置!
OVER!
===========================================
当然你也可以直接用格式——条件格式——公式,一步到位。公式怎么写,参考上面的。
在表格中,部分日期数据使用了单元格背景色,部分任务数据设置了字体颜色,下面以此表格为例,介绍如何按照颜色排序。
分别在C1、D1中输入文字Color1、Color2。
选定C2,按<Ctrl+F3>组合键,在“定义名称”对话框的“在当前工作簿中的名称”文本框中输入Color1,然后在引用位置输入:
=GETCELL(63,’06’!A2)+RAND()0
单击“确定”按钮关闭“定义名称”对话框。
选定D2,按<Ctrl+F3>组合键,在“定义名称”对话框的“在当前工作簿中的名称”文本框中输入Color2,然后在引用位置输入:
=GETCELL(24,’06’!B2)+RAND()0
单击“确定”按钮关闭“定义名称”对话框。
在C2中输入“=Color1”,在D2中输入“=Color2”。选定C2∶D2,往下拖曳到C17∶D17,完成对公式的复制。
单击C2,单击工具栏上的“降序排列”按钮,就能够以日期列的单元格背景色来排序,
如果需要以任务列的字体颜色排序,则应以D列为标准进行排序。
在本例中,使用了Excel宏表函数在C列和D列分别求出A列每个单元格的背景色对应的值和B列每个单元格的字体颜色对应的值,从而使按颜色排序成为可能。
在使用Excel的筛选功能时,也可以按照单元格的背景色或字体颜色来筛选数据,原理相同
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)