【Excel】根据部门来着色,数据再也看不错
各位表亲好啊,首先看一下今天的题目:
要求在上图所示的工作表中,将不同部门的数据用颜色突出显示,如果部门有变化,会自动更新显示效果。
本题的主要切入点是,自A2单元格开始向下依次判断有多少个不重复值,再判断不重复值的数量是不是2的倍数。将公式运用到条件格式当中,就可以实现题目要求了。
具体操作的方法
先来设置条件格式:
选择A2:C14单元格区域。
依次单击【开始】【条件格式】【新建规则】。
在新建格式规则对话框中选择规则类型:【使用公式确定要设置格式的单元格】。
在【规则编辑说明】对话框中【为符合此公式的值设置格式】,
输入公式:
=MOD(ROUND(SUM(1/COUNTIF($A$2:$A2,$A$2:$A2)),),2)
单击【格式】按钮,在【设置单元格格式】对话框中,单击【填充】选项卡,选择灰色,单击确定。
回到【新建格式规则】对话框,再次单击确定,完成条件格式的设置。
接下来,我们简单说一下条件格式中这个公式的意思。
=MOD(ROUND(SUM(1/COUNTIF($A$2:$A2,$A$2:$A2)),),2)
SUM(1/COUNTIF(区域,区域))是计算不重复个数的经典公式。有兴趣的同学可以点击这里学习一下原理:
当选择A2:C14单元格区域的时候,第一个选中的单元格“A2”叫做活动单元格,在条件格式中可以直接针对这个单元格使用公式,Excel会自动将公式应用到我们提前选中的区域(A2:C14)。
细心的朋友会发现这个公式中第一个A2有两个$($A$2),而第二个A2只有一个$($A2)。
这一美元到底有什么作用呢?刚刚接触Excel的同学可能会有点困惑,下面先来说说绝对引用与相对引用:
A1——相对引用,向右向下复制公式时引用的范围都会变。
A$1——列相对行绝对引用,向右复制公式时列标变化而向下复制时行号不会变。
$A1——列绝对行相对引用,向右复制公式时列标不会变而向下复制公式时行号会变。
$A$1——向右向下复制公式时引用的范围都不会变。
也可以理解成这个$就像一个钉子,订到行号前面,行号就不变了;订到列标前面,列标就不会变了。
这么一说有点像绕口令,大家有时间可以试一下,实际动动手,会更容易理解一些。
在本例中,SUM(1/COUNTIF($A$2:$A2,$A$2:$A2)), $A$2使用的是绝对引用, $A2使用的是列绝对引用。
当公式作用到BC列中时,列标都不会发生变化,所以还会计算A列的内容。
当公式作用到第三行时,$A2的行号发生变化,公式的引用区域就变成:
SUM(1/COUNTIF($A$2:$A3,$A$2:$A3));
当公式作用到第四行时,公式的引用区域就变成
SUM(1/COUNTIF($A$2:$A4,$A$2:$A4))
…………
也就是对A列自A2开始,到公式所在的当前行的数据区域进行不重复的计数。
MOD函数返回两数相除的余数。
如果SUM(1/COUNTIF($A$2:$A2,$A$2:$A2))计算的结果是1、3、5、7…..这样的奇数,MOD函数的计算结果就是1;反之,MOD函数的计算结果就是0。
在条件格式中,如果指定的条件返回逻辑值TRUE或是不等于0,就会返回我们指定的格式。
通过对不重复值出现的次数,实现了不同数值颜色突出显示的目的。
ROUND函数,在这里将SUM函数的运算结果保留到整数,是为了避免因为浮点误差出现的错误判断。