返回Excel催化剂目录

产品文档 / Excel催化剂

第134波-批量遍历工作薄表公式,识别跨薄表公式并修改。

在工作薄表的功能中,绝大部分通用性插件都提供了工作薄表的拆分功能,但这些功能埋下了一个巨坑,当存在跨工作薄公式和跨工作表公式时,拆分出来后,有许多不可预料的问题潜伏着,最好的作法是,拆分前先作一个检查,使用本篇的功能。 业务场景 除非是很有数据素养的人,一般人很难分清如何规划不同工作薄表的内容,以致

在工作薄表的功能中,绝大部分通用性插件都提供了工作薄表的拆分功能,但这些功能埋下了一个巨坑,当存在跨工作薄公式和跨工作表公式时,拆分出来后,有许多不可预料的问题潜伏着,最好的作法是,拆分前先作一个检查,使用本篇的功能。

业务场景

除非是很有数据素养的人,一般人很难分清如何规划不同工作薄表的内容,以致在作表过程中,非常容易出现大量的跨薄跨表的引用,然后表格用久了,就各种异常,特别是以下的熟悉的弹窗。

image.png

根基打不牢,地动山摇也就在所难免,不规范的作表,在跨工作薄表间引用公式可以算一个。

站得高一点层次思考问题时,随意建多个工作薄,就如随意建多个数据库,很容易出现灾难。

同时如果在这些不规范的工作薄表基础上,再作二次加工如拆分工作表,想不中招都难。

所以非常有必要在作表过程中,特别是需要对工作薄表大动干戈时,需要先进行检查一下,遍历一下整个工作薄表的公式是否有异常。

同时,促使本篇功能的开发,还有另外一个场景,将工作薄表上的透视表进行数值化后再共享,后续会有此功能的推出,届时再展开说明。

不小心使用了透视表函数来生成其他数据结果时,如果将透视表进行数值化后,函数将失效,故此时也需要遍历一下公式,检查是否有透视表函数,是否必须存在,否则数值化透视表就不可行。

功能说明

本篇针对工作薄表的公式部分提取,使用了原生的查找定位公式功能。

image.png

但如果工作薄表上存在大量的公式时,可能性能上仍然是一个问题,请使用时要小心缩减范围。

功能上可满足多个工作薄表的批量遍历,

image.png

如果有大量的工作薄,仅需精确到遍历某个工作薄内某特定工作表,请使用两列引用数据,否则就一列遍历整个工作薄。可使用之前的【多工作薄表组合拆分】的步骤一,速度非常快,用了NPOI非COM的方法打开访问工作薄表来实现,此处不再重复开发。

image.png

最终遍历出来的结果如下:

image.png

有了遍历,就有回写,可对上述红圈部分内容进行修改后回写。除了提供公式回写,也加上单元格数字格式,顺带有必要修改的话,也可以一起修改。

[!NOTE] 回写功能原理就是读取上述的【公式导出表】定位到具体的单元格,然后进行公式和数字格式属性的修改,大量的单元格操作可能性能受影响,可分批处理,用好自动筛选功能,仅是非隐藏行记录才会进行操作。

同时理论上可以在此基础上新增记录,但非必要不建议,自己直接输入公式,比在这里维护修改公式要简单和不出错。

同样地可以删除单元格内容,将【单元格公式】清空,就会回写时将其公式去掉,变成空单元格,可能也仅在极小部分场景适用。

结语

有了本篇功能,下意识地多使用,相信在对Excel环境下数据处理水平又上一个大台阶,防范于未然,科学作图时关键,在Excel催化剂功能输出的过程中,同时大量携带这些方法论一并输出,祝你作表进步。