乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > EXCEL如何按颜色筛选?-excel按颜色计数,excel按字体颜色统计个数

EXCEL如何按颜色筛选?-excel按颜色计数,excel按字体颜色统计个数

作者:乔山办公网日期:

返回目录:excel表格制作


EXCLE
本身并没有这两项功能,我们必须要通过宏与
VBA
才能实现,方法很简单,以
EXCEL2003
为例:

首先,打开你的
EXCEL2003
工作表,点工具
--

--Visual Basic
编辑器
EXCEL
进阶

如何在
EXCEL
中实现按单元格背景颜色求和或计数

我们在
EXCEL
工作表中,
如果要对多个单元格的数值进行求和,
一般都会用到
SUM
函数,
SUM
函数的计算结果可以根据各个对象单元格数值的变化而发生变化,
满足了大多数
EXCLE
用户的需求。
但是7a64e4b893e5b19e334,在
SUM
函数中,当被求和单元格的位置发生变化时,
SUM
函数是无法进行自动求和的,这
就需要用到
SUM
COLOR
函数,它能根据单元格的背景颜色进行求和,无论是单元格的位置发生了变
化还是单元格数值发生变化,只要被求和单元格的背景颜色一致,
SUM
COLOR
函数都可以实现对她
们的求和。如果要对相同颜色单元格进行计数,也可以运用
COUNTCOLOR
函数实现。

可是,
EXCLE
本身并没有这两项功能,我们必须要通过宏与
VBA
才能实现,方法很简单,以
EXCEL2003
为例:

首先,打开你的
EXCEL2003
工作表,点工具
--

--Visual Basic
编辑器,得到以下界面:

在界面左上角
Sheet1
点右键
--
插入
--
模块,打开以下编辑界面:

然后在打开的编辑框中输入以下代码:(有需要的朋友可以找作者索取此代码直接粘贴即可)
Function CountColor(col As Range, countrange As Range) As Integer Dim icell As Range Application.Volatile
For Each icell In countrange
If icell.Interior.ColorIndex = col.Interior.ColorIndex Then CountColor = CountColor + 1 End If Next icell End Function
Function SumColor(col As Range, sumrange As Range) As Integer 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 icell End Function
然后关闭此界面,返回到工作表。点击工具--宏--安全性--安全级--低--确定。保存并关闭工作表,再打开工作表就可以使用SUMCOLOR和COUNTCOLOR函数了。
现在我们再来根据单元格的背景颜色进行求和与计数,方法如下: 按颜色求和公式为:sumcolor(颜色示列格,求和区域或列); 按颜色计数公式为: countcolor(颜色示列格,求和区域或列)
要对A1到A11这个区域内的蓝色格进行求和,在E1单元格中编辑公式=sumcolor(D1,$A$1:$A$11);
要对A1到A11这个区域内的蓝色格进行计数,在E6单元格中编辑公式=countcolor(D6,$A$1:$A$11),一定要在半角模式下编辑公式哦!
如果A1到A11这个区域内单元格背景颜色发生变化,只需双击E1单元格,再按回车键,E列单元格中的数值就会随着颜色的改变而变化过来。

颜色如果是手工加上的,可以按“格式”来“查找”:
即在“查找”对话框中点“选项”按钮,点击出现的“格式”按钮,设置要查找的颜色或其它格式,最后点查找全部,再按Ctrl+A,就选中所有需要的单元格了。

颜色如果是用条件格式加上的,就把条件格式中的公式拿来作辅助列,再按此列自动筛选。
第一题,关于背景色的筛选:
假设a,b,c,d列都有数e69da5e6ba90e79fa5e98193366据,第一行是标题,一直到20行,假设A列中有颜色(因为你说的是整行是一个颜色)
1.在E1中输入Color1
2.ctrl+f3,定义名称,名称为color1,在引用位置中输入‘=GET.CELL(63,Sheet1!A2)+RAND()*0’(引号不输入)
3.在E2中输入‘=color1’
4.用拖曳的方法将公式复制到第20行,即E20
5.然后以E列为标准筛选即可。

第二题,关于字体的颜色:
类似我回答的第一题,只是将引用位置的输入改成‘=GET.CELL(24,Sheet1!A2)+RAND()*0’即可。

这种方法就是用了一个参照列和宏表函数get.cell,可以实现筛选和排序有颜色的数据。

有什么问题可以再讨论

=============================
对啊,就是出现的颜色值,而不是显示的颜色名,目前我就想到了这种方法了,呵呵,筛选时选择相应的值就行了

=============================
呵呵,是啊,宏表函数在修改时不能自动变化,是我的错,忘记说了,修改数值后必须重新计算下,你可以使用快捷键F9(在修改完后,按F9,就会把所有=color1的地方重新计算)。
再有,如果你感觉显示数字不好的话,可以使用if函数将其转换为颜色的名称,不过那样又需要添加辅助列了。
一个小例子已发给你了。

建议可以用辅助列,标红色的设为1,然后做数据透析就可以了,辅助列一定要有名字,不然透析不出来。不过这个办法有点麻烦就是要手动添加1。祝你早日解决问题

相关阅读

关键词不能为空
极力推荐
  • excel行列转换-Excel办公技巧——行列互换

  • 选中需要转换的表格选中表格3.复制选中复制4.选择需要粘贴的区域需要粘贴区域5.选择粘贴中的转置选择转置6.这样就完成啦完成步骤:你学会了么。-excel行列转换

ppt怎么做_excel表格制作_office365_word文档_365办公网