1. 问题
我们在使用Excel做数据记录的时候经常会有一个需求:需要区分某个值所在的行并且标记它。
通常我们的做法是,给特定值的行标出颜色,作为区分。
如下图:我们希望能自动填充周次不同的行,提高辨识度。
考虑到Excel有条件格式功能,我们使用它来实现相应的效果。
2. 分析
程序是人思维力的反映,如果将这种工作化成人力实现的话,我们会判断周次的单双数性质,并且给单数行标注为特定格式,来实现效果。
3. 实现
a) 首先考虑对 周次数进行取模
Excel的求模函数 mod(被除数,除数)
b) 我们看到周次中有W,这就需要先将 W 提取出来,获取数值
Excel的截取字符串函数 mid(文本,开始索引,个数)
c) 组合公式
=mod(mid(单元格,2,2),2)
这里有3个2,分别代表:
1.周次的第二个字符,舍弃W
2.取两个字符,因为一年也就52周,所以不存在多余字符数,所以2个字符很合适,而且实测如果值是W1,也是满足要求的。
实际上更加准确的做法是 mid(单元格,2,len(单元格)-1) , 用len函数计算单元格的个数。不过现在实现效果一样,也就不多纠结。
3.对2取模。
4) 输入条件格式规则
选中 数据区域
点击 新建规则
按照上述分析输入公式,设置格式后,确定:
发现错误:我们实现上是想要实现整行单元格标注为灰色,而现实是独立单元格标色。
查询相关经验文章后发现,对于单元格的指定错误导致了上述情况发生。
修改指定的 A2 为 $A2 后,
结果显示正确。
4. 总结
在Excel公式系统中,Ax 指代的是某个单元格,$Ax 代表的整个A列区域,因此对于效果的实现上有区别。
Excel功能丰富,还是需要多积累,多总结才能做到得心应手。