文章目录

今天有人问了我一下数据透视表的事,在说完了透视表是做数据的汇总统计之后,我稍微又说了一下只是要把数据排列一下的话,用组合排序和条件格式就可以了。
组合排列蛮简单的,设置好几级排列之后,再自定义一下排序序列就可以做得比较漂亮了。
而条件格式如果不需要去设置自定义条件的话也蛮简单的,只要鼠标点点就能设置当格子内容怎么怎么样的时候,格式怎么怎么样。但是如果我想设置一些比较复杂的条件的时候,就得自己去设置公式了。
比如说我这张表,我想要的效果是如果是上海的人,整个一行都变成绿色的,是北京的就是橙色的,无锡的就是蓝色的。
同时如果是IT部的人,整个一行字体加粗,用白色字体显示。
就是这个效果:
07
点开条件格式,创建一条规则
01
我们选择自定义规则然后来写公式
02
这里公式的要求是用等号(=)开始,然后等号后面的公式要返回一个布尔值(Ture或False;是或否;1或0),举例说明的话,=1>0 就是一个合格的公式,1>0返回一个Ture的值。=sum(A:A)就不行,因为这个返回的是A列的和。
知道了基本原理了,让我们来写自己的公式,这里我们要验证的是,对于这张表中的一个格子,如果它这一行的C列的值等于IT的话,这个格子要设置为绿色的底色,北京的话就是橙色,无锡就是蓝色。我们要对比的就是这个格子那行C列的值是不是等于上海或者北京或者无锡。
让我们先定位那个格子,定位格子的公式是Index(区域,第几行,第几列)
因为对于任何一个单元格,我们只要找这一行的C列,所以区域就直接写$C:$C就可以了,C前面加$表示是绝对引用,这样在自动公式的时候就不会根据不同的单元格变化,因为只选择了一列的区域,所以列数直接写1就可以了,现在我们还要确认一下是第几行。
取得单元格在第几行的公式是Row(),这个公式很简单,直接返回行数。
结合一下,Index($C:$C,ROW(A1),1)这个公式就取到了A1单元格那一行C列的值,也就是C1的值,然后我们让他和上海比对一下,如果是上海的话就返回1,不是就是0,一个If函数就可以了。
于是检测是不是上海的公式就是这样的:
If(Index($C:$C,ROW(A1),1)="上海",1,0)
把这个填到函数区域里面,然后我们定义一下格式:
03
按两次OK确认一下
04
05
然后我们就能看到结果了
06
再做同样的两条规则给北京和无锡,然后再给IT部设置一个字体规则,这样就是我们要的最终效果了:
07
当然我们也能设置复合规则,例如选择在上海的IT部的人,然后字体加粗,底色设置为绿色,用一条条件格式就可以了,公式可以这样写,嵌套一个If:
If(Index($C:$C,ROW(A1),1)="上海",If(Index($D:$D,Row(A1),1)="IT",1,0),0)
然后在格式里同时设置字体和填充的格式就可以了
08
还可以用AND;OR;NOT之类的逻辑函数来做判断,比如:
OR(If(Index($C:$C,ROW(A1),1)="上海",1,0),If(Index($D:$D,ROW(A1),1)="IT",1,0))
这样就选择了所有在上海或者是IT部的人
09
点击下面的链接可以查看原Excel文件
条件格式