消失的excel公式
更新日期:2021年4月15日
客户反馈:模板的单元格里设置了excel公式,填报单子后再打开看这个单子,单元格的公式消失了,只剩下值。这个问题大部分客户都遇到过,很多人都是一头雾水。今天就专门讲一下这个问题。
大家都知道勤哲Excel服务器模板上设置的Excel公式在填报时默认是锁定的,鼠标无法点击到有Excel公式的单元格上面,也无法修改有Excel公式的单元格里的公式或者公式计算出的值。那么如果我们需要修改Excel公式的值,该怎么办呢?勤哲在模板属性的填报设置里为我们提供了一个选项:保护时,锁定Excel公式。如果勾选此选项,用户在填表时有excel公式的单元格是锁定的,不能选择,不能编辑。选“不保护”或者选“保护全部工作表”并不选“保护时(默认是选的),锁定excel公式”就可以在填报时编辑有excel公式的单元格。但是这个功能是有“毒”副作用的,会直接造成excel公式的消失。
勤哲Excel服务器程序在用户查看或者修改表的时候,是否显示Excel公式的判断机制是当模板不选“锁定Excel公式”时,程序在打开表格的时候会把已经保存在数据库里的值(也就是在我的工作台里看到的值)和excel公式计算结果的值进行对比,如果值不一致,表格的单元格里不显示公式,只显示值。有些用户可能会说我的表格上excel公式计算的值和我的工作台的值是一样的,怎么还公式还消失了呢?!我只能说你的基础知识还是有点欠缺,只看到了表面,没有看到本质,还是多学学多看看吧。
下面我们就举个例子来说明这个问题吧。先做如下一个表格,如下图:
表格上E5单元格里的计算不含税金额通常我们都是直接按图里的公式写成“=C5/(1+D5)”,也就是101/1.13,因为单元格格式设置的是数值里的小数位数2,所以表格上显示的计算结果是89.38,那么他的实际结果是多少呢?是个除不尽的很长的一个小数,我们用计算器算一下:
这样的表格填报后,在我的工作台里保存的结果是多少呢?假如我们把不含税金额的字段类型设置为“金额”的情况下,保存的结果是89.38,如下图:
这就是引起excel公式消失的原因,表格上excel公式计算的结果值虽然显示的是89.38,实际上并不是,只是因为单元格格式设置的原因,所以你才看到89.38,89.38后面的值不显示而已。所以就出现了公式计算结果和保存结果不一致的问题,触发了程序的设定规则,导致了公式的消失。
那么么怎么避免这个问题呢?很简单,让他们的值一致即可。根据字段类型小数位数,比如字段类型是两位小数的“金额”型,我们用四舍五入函数把计算结果保留两位小数。如下图:
最后还是老规矩,我们用动图完整演示一下:
总结一下:
1、 如果不选保护工作表,公式写的不规范不严密,一样会出现此问题。
2、 如果选了保护工作表,没有勾选保护excel公式,必须要根据字段类型的小数位数把excel公式加上四舍五入。
3、 Excel表格上显示的值并不一定就是最终的保存结果,这个一定要注意。单元格格式控制表格上的显示结果,字段类型控制保存的结果。
4、 搞清楚功能的原理,才能更加合理的使用该项功能,避免掉坑。