小弟遇到的问题是这么回事:我们有一张表格,是让全国很多事业部的统计员填好发回总部的,表格中有些单元格是规定填数字的,有些是单元格是自动生成的运算结果,例如(加班费每小时30元计算)要求他们填写加班小时数2小时,后面那个加班费60元是自动生成的。但现在老是有手贱的人啊,偏偏往有公式的单元格里填数字,他填报时先在加班费上写了个60元,然后又填了2小时。当月发现不了,下个月他们这一块的数据可能就不对了。我现在要做这么件事,请教一下方法:
1、筛查过去1年中有哪些单元格本来是公式的,被他们直接修改成了数字,有没有相关函数?
2、有没有一种设置,让某一列单元格只能是公式自动计算,无法手动输入数字?
检查是否使用了单元格进行计算(引用,公式函数计算结果):用"ISFORMULA()"函数进行检查,结果是'true' 则是经过计算的结果,结果是'false' 则是手动填的。比如 60 元的那一格是 A2, 在空白的单元格使用:=ISFORMULA(A2)得到的值可以看出来。
【但是】:即便如此也只能说明数据是公式计算出来的,并不能保证是准确的公式(或者准确的计算方法,如果他们输入错误的公式呢?),如果公式是错的它一样返回true,从数据的准确性来说,这方法不能达到纠错的目的!
检查这一关就算过了,其实更简单的做法是:用正确的公式填充一遍要计算的区域并保存就可以了,相当于修复了。当然,若要追究是谁干的,可以用ISFORMULA()这个函数【开玩笑的,能不能查出啦是谁干的,得看表格的填法了,如果是一层一层汇总的,那还是不要追究了,谁都有可能,毕竟表格没做限制,与其追究责任,不如组织培训,提高大家的做表/用表技能】。(:》
避免错误操作,以及保证数据的有效性,可以对自动计算区域进行锁定,禁止编辑即可(输入密码才能编辑)。对手填的数据单元格区域进行有效性检查。这两个操作讲清楚需要不小的篇幅,我就略过了,教程很多的,核心搜索:“EXCEL 表格锁定”、“excel 允许编辑区域”