ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 17411|回复: 26

[已解决] [求助]定义名称的公式为什么不能自动运算?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-4-5 11:33 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:公式基础

v1snoGm8.rar (247.49 KB, 下载次数: 81)


我在文件“报价”中增加了几个插入名称的函数。我的文件原本是包含很多的工作表,由于上传受限,所以,只能上传极少部分的内容。我想让高手帮助的是:

1.在我的工作表“9-2水”中,改变了单元格“R7”中的数值后,单元格M7的值(带插入名称的公式)为什么或怎么改变?

2.在没有精简工作薄以前,我试着从工作表“工程概况”中的单元格“D4"中改变其中的数值如200后,工作表10中的综合工日的数值和工作表“辅材”中综合工日的单价(单元格E2)随之改变。但是,在工作表“办公楼暖通、办公楼给排水和办公楼消防”中“J:J列”中的人工费单价却不随之改变!

注:.现在,我把工作薄精简后,发现:第2项的问题没有。可是,第一项的问题仍然存在。

我想请高手给我指点迷津!谢谢了!

点评

知识树推荐索引内容位于8楼  发表于 2013-10-13 23:25

TA的精华主题

TA的得分主题

发表于 2007-4-5 18:03 | 显示全部楼层

1.在我的工作表“9-2水”中,改变了单元格“R7”中的数值后,单元格M7的值(带插入名称的公式)为什么或怎么改变?

你也把我带入了迷津。

9-2水中的M7并没有公式,更没有与R7单元格关联的公式

所有表的M7都没有。 

[em06][em06][em06]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-6 16:18 | 显示全部楼层

首先谢谢“czzqb”先生(或女士)的帮助!

其次,我非常抱歉地对你说:“对不起!由于我的粗心,把单元格N7误写成M7,浪费了你的宝贵时间。在此,我向你道歉”。

再者,恳请你继续解决:在我的工作表“9-2水”中,改变了单元格“R7”中的数值后,单元格N7的值(带插入名称的公式)为什么或怎么改变?的问题!

我在此先表示感谢!

TA的精华主题

TA的得分主题

发表于 2007-4-6 20:01 | 显示全部楼层

N7的公式是这样:

=ROUND(SUM(IF($P7=1,$G7*SUM(海运费率重量,清关重量费率),H7*SUM(海运费率体积,清关体积费率)),海运保险费率*$L7,),2)

这个公式怎么会和R7有关?不懂。

应该是你的公式写错了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-7 17:37 | 显示全部楼层

朋友,你好

让你为我辛苦了!我的公式是这样的:如果P7=1,则按重量计算海运费:用工程量F7*Q7=G7

                                                            如果P7=2,则按体积计算海运费:用工程量F7*R7=H7

所以,公式就与R7有关联了。是这样的。不知道我是否解释清楚!

如果您方便、不打扰的话。能可以QQ371502913联系就更加方便了。

不管怎样,我在此谢谢了!

[此贴子已经被作者于2007-4-7 17:39:50编辑过]

TA的精华主题

TA的得分主题

发表于 2007-4-7 18:09 | 显示全部楼层

明白了。

这是因为它不会自动计算。

造成此情况的原因不明。

解决办法有三:

1,在名称"海运费"的公式后面加上  +0*RAND()

2,不用名称。直接把公式写在单元格里。

3,最笨的办法,什么也不用改,当需要看N列结果时,按下ALT+CTRL+SHIFT+F9——这个办法谁也不会用吧,呵呵。

TA的精华主题

TA的得分主题

发表于 2007-4-7 18:31 | 显示全部楼层
只会用F9,不知道ALT+CTRL+SHIFT+F9这个办法,请问czzqb老师这个办法起什么作用?

TA的精华主题

TA的得分主题

发表于 2007-4-7 19:46 | 显示全部楼层

只会用F9,不知道ALT+CTRL+SHIFT+F9这个办法,请问czzqb老师这个办法起什么作用?

EXCEL的计算是很“聪明”的。

我们在创建excel文件和写入公式的时候,它就首先在内存中建立一个计算用的“关系链”或者叫“关系树。一个公式以及与它有关联的所有其他公式、名称、单元格一起,构成一个“关系链”。excel随时“监视”这个关系链,一旦发现你动了这个链条上的某个地方,它就把整个关系链重算一遍。而和这个链条无关那部分,它就不会去计算。

但有几个东西例外:

1,宏表函数。估计MS创建“关系链”概念的时候,宏表函数已经处在被淘汰的边缘,所以他们就没把宏表函数纳入关系链中。(我们现在所使用的宏表函数GET.CELL之类其实是化石级的,呵呵)因为这个原因我们在定义宏表函数的名称时,往往要在后面加上一个易失函数,如+0*RAND()或&T(NOW())之类,目的是把不会重算的宏表函数变成包含易失函数的公式,从而自动重算(参见下面的第二点)。

2,易失函数(其实翻译成“非稳定函数”或“非稳函数”可能更贴切些)。不管包含易失函数的公式是不是在关系链上,整个工作薄中只要改动了一个数据,那么所有包含易失函数的公式及其关系链(注意,它“连累”了整个关系链)都要全部重算。——实际上,易失函数的重算范围更广的多:所有在同一个进程中打开的所有工作簿的所有包含易失函数的公式及其所在关系链都要全部重算!

3,高版本打开低版本excel工作簿时,全部自动重算。这种重算包括建立关系链和对关系链上的数据全部重算。

4,如果一个关系链上的单元格超过65536个,那么只要有重算的机会(其他任何一个关系链在重算),它就会把这个“超长链”重算一遍。——这点可不好,越难算的就越要多算几遍!

好了。明白了关系链的概念,就可以区分F9和CTRL+ALT+SHIFT+F9二者的区别了:

F9是不进行重建关系链的重算,而且只是本工作表的重算。

有时为了重建关系链,并把那些不在关系链里的公式也计算一遍,就要进行“强制全部重算”,这就要按下四键。

比如对宏表函数,由于它不在关系链上,所以它的重算就不能只按F9,而必须是四键。对于较低版本(我忘了是哪个版本),可以是三键,即ctrl+alt+F9,而对于高版本,则是四键。由于低版本也可以是四键,所以我就干脆全写成四键了。

我们在写宏表函数的名称公式时,常常加上+0*RAND()这段公式,目的就是把不会重算的宏表函数公式变成时时刻刻重算的易失函数公式。

除了以上说的之外,还有几个功能操作也会引发全部重算,比如筛选、插入行、插入列,而不管这种操作是否改变了关系链。这叫做“易失性操作”。

这样,我们就知道:

 一,当选择“自动计算”时,只要我们每输入或改动一个单元格数据,EXCEL就进行如下的一次计算:本进程所有工作簿中含有易失函数公式所在的关系链全部重算 ;被改动单元格所在的关系链上,所有公式、名称全部重算;超长关系链重算 而其他不符合以上几条的,不会重算。由于使用了“关系链”(或关系树)EXCEL大大减小了每次计算的量。

二,当按下F9键时,EXCEL会计算以下内容:本进程所有工作簿中含有易失函数公式所在的关系链全部重算 ;本工作表所有数据关系链涉及的公式全部重算;超长关系链重算。

三,当按下Alt+Ctrl+Shift+F9键时,EXCEL进行以下计算:本进程所有工作簿中含有易失函数公式所在的关系链全部重算 ;重建本工作表所有关系链,并全部进行重算;本工作表其余不在关系链上的“孤立”公式

还应该注意的是:对于外部链接如果不打开链接工作簿的话,除了打开文件时的更新之外,以上的三种操作都不会重算(即不引发自动更新)(在2003版,隐藏行和取消隐藏行也是易失性操作,但隐藏列和取消隐藏列却不是易失性操作,这和SUBTOTAL函数2003版的新增特性有关。较低版本这个操作就不是易失性操作)

但是楼主的这个文件有点怪。我没看出公式有什么特殊的地方,但它也不会重算。我不知道为什么。我加上易失函数,就是强迫它重算。按下四键也是强迫重算。

[此贴子已经被作者于2008-2-25 18:32:20编辑过]

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2007-4-7 21:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
版主的说明真是好

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-8 08:51 | 显示全部楼层
本帖最后由 dengjq2000 于 2013-10-13 17:13 编辑

QUOTE:
以下是引用czzqb在2007-4-7 19:46:08的发言:

QUOTE:
只会用F9,不知道ALT+CTRL+SHIFT+F9这个办法,请问czzqb老师这个办法起什么作用?

EXCEL的计算是很“聪明”的。

我们在创建excel文件和写入公式的时候,…………QUOTE:

czzqb先生,
QUOTE:
             你好!
QUOTE:
              多多感谢你的再三帮助!谢谢你的深入浅出的讲解!你的学识让我佩服的五体投地!你帮助我解决了工作中的难题的同时,也让我增长了知识!通过本版块,我觉得能认识你是我等新手的大兴!我别的不多说了,一句话:谢谢了啊!祝你好人一生平安!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 07:54 , Processed in 0.050151 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表