如何在 Excel 中执行公式计算 问题:Office软件 相关文章: 打开excel文件速度慢 Excel如何冻结首行首列 多行多列 “自动保存未保存文档”功能使用简介 Excel 2010批量求和的应用操作 快速处理 Excel表格中的重复数据 确定当前的计算模式的说明 操作步骤: 早于 Microsoft Excel 2002 的 Excel 版本 在早于 Excel 2002 的版本的 Excel,公式计算基于工作表的工作表,从 Excel 工作簿的 Sheet1 开始执行。在工作表 Sheet1 上完成计算后,Excel 会计算 Sheet2 上的公式直到计算工作簿的所有工作表上所有公式。此进程工作正常,只要引用单元格和从属单元格处于同一工作表。如果引用单元格和从属单元格不同的工作表上,但跨工作表引用,这可能会导致一些问题。 例如,如果工作表 Sheet1 中的公式!A1 是= Sheet3!A4 + 1,这两个工作表 Sheet1!A1 和 Sheet3!A4 必须计算。工作表 Sheet1 的开头。当您尝试计算 A1 时,您可能会发现您不能因为 Sheet3!A4 不具有尚未计算。尝试计算工作表 Sheet1 上您可以继续进行。当您用完工作表 Sheet1、 计算 Sheet2。然后计算 Sheet3,最后更新 Sheet3!A4。 此时,您点击了所有的工作表。但是,工作表 Sheet1!A1 仍尚未计算,因此请返回并开始重新计算工作表 Sheet1。最后,工作表 Sheet1!可以计算 A1。将循环尝试计算任意数量的时间,具体取决于有多少跨工作表依赖项的所有工作表和它们的布局方式。 已确定此过程效率低下的方法用于计算工作簿中的公式。 Excel 2002 和 Microsoft Office Excel 2003 在 Excel 2002 和 Excel 2003 中,将保留计算公式引用的单元格的一个庞大的列表。也就是说,包含工作簿中的所有公式被都放入内存作为一个连续的列表中的公式。当您输入一个新的公式并计算出它完全在第一次时,将它置于计算链中其正确的位置。 Excel 启动计算的公式从列表顶部的任务。如果尚未计算引用的公式,Excel 公式的列表中向下跳转,并计算从属公式。然后 Excel 返回的引用的公式,并完成计算。 完成列表中的公式后,Excel 将移动到下一个公式,并将继续直到计算列表中的所有公式计算公式。 与此新过程中的计算公式,Excel 将只能进行一次工作簿中计算公式时。 一些其他计算更改要注意如下所示: ·现在不允许可重入的计算。您无法进行调用range.calculate方法中 Microsoft Visual Basic for Applications (VBA) 如果您已经在计算中。单元格 A1 中包含用户定义函数时,可以在用户定义的函数range.calculate。您会收到运行时错误。 ·不能在用户定义函数中执行Name.Add方法或Name.delete方法。 ·如果您正在使用SUMIF()函数或countif ()函数其中任一条件都超过 255 个字符,将引发#VALUE立即错误消息。 ·如果您要复制整张工作表中的单元格包含超过 255 个字符,请立即脏计算的整个表。 ·当您有多个选中的工作表时,您无法执行range.calculate 。这也将引发运行时错误。 ·在某些情况下,Excel 可能会非常缓慢比较到 Excel 2000 及更早版本的尤其是通过使用Ctrl + Alt + F9或执行完全重新计算时第一次从早期版本的 Excel 在 Excel 2002 中或在 Excel 2003 中打开文件时,将执行完全重新计算时计算。Microsoft Office Excel 2007 和 Excel 2010 Excel 2007 中的一组函数以执行公式计算。若要优化性能,函数集聚集到尽可能少的查询尽可能。其他 Excel 功能均处于空闲状态时,通常是在后台执行这些聚合的查询。 在聚合查询中,将保留计算公式引用的单元格的一个庞大的列表。作为一个连续的列表中的函数包含工作簿中的所有函数都放在内存中。 当您在工作簿中输入一个新的公式时,然后第一次计算新的公式。当第一次计算新的公式时,Excel 2007 将生成一组属于新公式中,函数和集中函数的每个函数会计算链中所在的正确位置。 根据处理计算链时,计算每个单元格。如果在另一个函数没有依赖项的单元格,该单元格立即接收其值。如果单元格在另一个函数上有依赖项,单元格收到的#GETTING_DATA...,占位符错误值,然后计算传递到链中的下一个单元格。 有一次计算的所有单元格之后,Excel 2007 会触发聚合的查询或查询中检索数据所需的。正在等待数据的单元格时处理的聚合的查询后,继续显示占位符错误值#GETTING_DATA.... 聚合的查询或查询的处理完成后,重新计算包含占位符的#GETTING_DATA...错误值的单元格,并且单元格收到的值。
如何在 Excel 中执行公式计算-联想乐享知识库
⚡ 核心结论
本文来源联想官方,解答关于 如何在 Excel 中执行公式计算 的常见问题,包括:Excel 2002或Excel 2003中跨工作表公式计算失败,显示#VALUE!或结果不更新,怎么办、Excel 2007或Excel 2010中公式显示#GETTING_DATA...错误,长时间不刷新,怎么办、为什么Excel 2002及以后版本禁止在用户定义函数中调用range.calculate方法等。
内容来源:联想官方
常见问题解答
Excel 2002或Excel 2003中跨工作表公式计算失败,显示#VALUE!或结果不更新,怎么办
原因是早期版本(Excel 2002/2003)采用按工作表顺序单向扫描计算链,若Sheet1中公式引用未计算的Sheet3单元格,会因依赖未就绪而跳过或循环重算,导致结果错误或卡滞。解决步骤:1. 按Ctrl+Alt+F9强制完全重新计算;2. 确保所有被引用工作表已打开且无保护;3. 避免深层跨表依赖,可将关键中间结果复制到同一表;4. 若使用VBA,禁用range.calculate嵌套调用。注意事项:不可在用户定义函数中调用range.calculate、Name.Add或Name.Delete,否则触发运行时错误;SUMIF/COUNTIF条件超255字符会直接报#VALUE!。
Excel 2007或Excel 2010中公式显示#GETTING_DATA...错误,长时间不刷新,怎么办
原因是Excel 2007+引入异步聚合查询机制,当公式依赖外部数据源或存在跨函数依赖时,系统先为待计算单元格分配#GETTING_DATA...占位符,待后台聚合查询完成后再回填真实值。解决步骤:1. 检查是否启用了‘自动计算’(文件→选项→公式→计算选项设为‘自动’);2. 手动按F9执行普通重算,或Ctrl+Alt+F9强制全工作簿重算;3. 若涉及外部链接,确认数据源可用且网络通畅;4. 关闭其他大型工作簿释放内存。注意事项:多表选中状态下无法执行range.calculate;整表复制含超255字符内容会触发全表脏计算,应分段操作。
为什么Excel 2002及以后版本禁止在用户定义函数中调用range.calculate方法
因为Excel 2002起取消了可重入计算机制,即不允许在已有计算流程中嵌套启动新计算任务。当用户定义函数正在执行时,Excel已处于计算上下文中,此时调用range.calculate会破坏计算链完整性,导致运行时错误。该限制适用于所有支持计算链优化的版本(Excel 2002至2010)。解决方案是避免在UDF内触发计算操作,改用静态值预处理或通过工作表事件(如Worksheet_Calculate)间接响应变化。同时注意:UDF中也不允许调用Name.Add或Name.Delete方法。