EXCEL中单元格颜色统计.doc
文本预览下载声明
EXCEL中单元格的颜色其实,这个问题要用到一个特别的函数:get.cell
解决这个问题的思路是,你首先得让系统知道你每种颜色的代码是多少。得到这个代码就用到这个函数。设你要统计的单元格在A列,B列为空列,操作如下:
1,点插入,名称,定义,弹出的窗口第一行名称名内写入一个自定义的名称名字,可以是中文也可以是英文,比如XX,最下边一行的引用位置一行内填入:
=get.cell(63.A1) 确定。
2,在B1中输入=XX,光标指向B1单元格右下角的小黑点,光标变成小黑实心十字时,双击左键。完成填充。
这样操作以后,在B列中会出现各个单元格中底色的代码。
3,用countif()函数对你要统计的单元进行统计,如:
=countif($B$1:$B$100,5)
这个统计公式意思是统计B1至B100中颜色代码是5的单元格有多少个。
用辅助列可以做到假设列A为原数据列,选择列B为第一辅助列1.在插入-名称-定义里定义一个名称,X=GET.CELL(24,SHEET1!A1)2.在B1中输入=X这样你就会看到列B中有对应的列A颜色返回的数值,假定黑色格子的颜色数值为1再利用一辅助列C,在列C输入公式=IF(OR(B:B=1,B:B=57,B:B=0),A:A+3,A:A),即可得所需变更后的全部数值列最后便是利用选择性拷贝的方法,将C列的值复制到A列,就可以完成全部操作了
注意:1、GET.CELL(24,SHEET1!A1)??其中24代表字体颜色,换成38代表背景颜色用EXCEL来根据单元格的颜色来计数和求和
1 :打开你的excel;2 :3 :Visual Basic 编辑器菜单栏: 插入-模块4 :贴下面这段函数Function Countcolor(col As Range, countrange As Range)Dim icell As RangeApplication.VolatileFor Each icell In countrange???? If icell.Interior.ColorIndex = col.Interior.ColorIndex Then???????? Countcolor = Countcolor + 1???? End IfNext icellEnd Function步骤5 :保存6 :贴下面这段函数Function Sumcolor(col As Range, sumrange As Range)??Dim icell As Range??Application.Volatile??For Each icell In sumrange??????If icell.Interior.ColorIndex = col.Interior.ColorIndex Then???????? Sumcolor = Application.Sum(icell) + Sumcolor??????End If??Next icellEnd Function步骤7:保存并关闭Visual Basic 编辑器使用函数 countcolorcountcolor(所要统计的颜色所在单元格,统计的区域)????????????????????
使用函数sumcolor(所要统计的颜色所在单元格,统计的区域)///若是字体颜色Function Sumfontcolor(col As Range, sumrange As Range)??Dim icell As Range??Application.Volatile??For Each icell In sumrange??????If icell.Font.ColorIndex = col.Font.ColorIndex Then???????? Sumfontcolor = Application.Sum(icell) + Sumfontcolor??????End If??Next icellEnd Function
1、 ? ? ? ? ? ? ? ? ? ? ? ? 建立Excel对象 ? ? ? ? set ? ? objExcelApp ? ? = ? ? CreateObject(Excel.Application) ? ? ? ? objExcelApp.DisplayAlerts ? ? = ? ? false ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不显示警告 ? ? ? ? objExcelApp.Application.Visible ? ? = ? ? false ? ? ? ? ?
显示全部