注册 筑龙首页 我的筑龙 我的博客
愧无好酒共醉◇奉君一杯浓情——左左
首页 | 档案 | 文章 | 帖子 | 留言
  jun8866的博客
加为好友
打个招呼
我的文章
我的作品
  我的公告
按此在新窗口浏览图片
本人算量博客转移至左左部落,欢迎大家来我的博客,只发布实用及原创EXCEL算量教程
左左部落:Www.ZuoZuo86.Com
  我的好友
 
  BLOG统计信息
日志总数:16作品总数:0
回复总数:178留言总数:8
访问次数:24939

 
 
【EXCEL】得到含有备注的算式的计算结果解析
文章发表于:2007-8-22 11:06:43  
 我们知道宏表函数EVALUATE(formula_text)可以用来将文字计算式的转化为公式并计算结果,且常用于工程预算等。 
比如A1单元格输入=3+5*2-6^2之类的,我们既想在A列显示公式,又想兼得计算结果,这时候就可以用Evaluate函数了,方法:在B1单元格,插入〉名称〉定义一个名称比如Result=Evaluate(A1) 然后在B1输入=Result就可以得到上式的计算结果“-23”了。这并不难理解。 
然而,出于一些实际需要,往往写公式的人要做一些文字说明让人清楚地了解计算式的由来,比如A1单元格 =20[長]*35[高]+5.5[長]*23[高]-0.9*1.5[扣門洞],让人一目了然地知道计算依据,并且不容易犯漏项等错误,那么怎么得到去掉这些文字备注之后的计算结果呢? 
同样,在B1插入〉名称〉定义名称:X=Evaluate(SUBSTITUTE(SUBSTITUTE(A1,"[","*ISTEXT(""["),"]","]"")")),然后在B1输入=X就可以了。 
这么一个公式到底是什么意思呢,不要看着一堆的"["之类的符号发晕:首先Evaluate我们是知道的,Substitute也是知道的,不妨,在B1输入一个公式=SUBSTITUTE(SUBSTITUTE(A1,"[","*ISTEXT(""["),"]","]"")")——既Evaluate里面的部分,看看得到了什么: 
20*ISTEXT("[長]")*35*ISTEXT("[高]")+5.5*ISTEXT("[長]")*23*ISTEXT("[高]")-0.9*1.5*ISTEXT("[扣門洞]") 
就是——再回头看公式:黄色部分就是把A1里的"["左边的中括号替换成*ISTEXT([",绿色部分,就是把A1里的"]"右中括号替换成]"),仅此而已!比如[高]变成了*istext("[高]"); 
也许你会说——明明公式里是"*istext(""["(蓝色为一对双引号,把里面的东西作为字符串输入)红色部分是一对双引号,怎么得到的结果是单引号呢?呵呵:试想一下,加入红色部分是1个双引号,那么,它首先要和左边的蓝色双引号配对,就没办法把后面的左中括号包进去了。用这个反过来想就知道为什么这里是2个双引号而不是1个了。 
通过上式解说,我们知道定义名称的Evaluate要计算些什么了,因为istext("[高]")是判断[高]这么个东西是否文本,当然答案是True了,20*True*35*True+……就是20*1*35*1……所以返回的正是我们想要得到的计算结果了。 
 


本文发表在 〓EXCEL算量交流〓 分类

网友回复(0) | 阅读次数(258) | 引用通告(1) 

本文的引用通告地址:http://blog.zhulong.com/myblog/tb.asp?id=4136701

共 1 页 第 1 页

 发表回复
回复方式: 匿名回复    提示: 匿名回复无法获得编辑奖励的筑龙币
使用我的会员名  会员名:   口令:
当前心情:                  
                 
                 
回复内容:
上传附件:
  上传附件说明:
    1、附件只允许上传JPG和GIF图片;
    2、附件上传后,请将光标移动到内容中要显示附件的位置,然后点击[插入光标位置]按扭。
 

欢迎反馈不良信息 反馈电话:88362233 EMAIL:master@zhulong.com QQ:404097417 4272027
筑龙简介
| 筑龙首页 | 筑龙论坛 | 筑龙画廊 | 筑龙网校 | 筑龙人才 | 图书竞拍 | 图片资料
Copyright 2000-2006 ZHULONG.COM.All Rights Reserved.