今天任然为大家带来QQ群小伙伴咨询的问题,他的问题是别人写的一个公式,他不太理解,希望我为他分析一下,公式如下所示:
=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet2!$A:$A,"[","*ISTEXT(""["),"]","]"")"))
看到前面标注颜色的函数了吗?这是一个宏表函数,早在前期文章就已经为大家介绍过其用法了,没有看过的可以移步【Excel VBA】- 如何通过文本公式表达实现真实计算?进行学习。
该公式是用于名称管理器中,因为宏表函数EVALUATE无法直接在工作表中使用。
为了更加直观的演示,我模拟了两份表格,我们先来查看一下第一份数据,如下图所示:
学习过前面介绍文本公式表达真实计算文章的小伙伴,对于这个问题应该知道如何计算出结果,具体操作如下动态图所示:
今天其实主要介绍的是计算第二种数据格式的计算,数据格式如下图所示:
通过上图可以看出,该文本公式附带了描述信息,知道每一个数字代表什么意思,最后随机加了一个数,不用管它。上面的文本公式使用自定义函数,是很好计算的,今天还是来介绍该小伙伴遇到的函数问题,我们把上面的介绍的公式复制一下,再新增名称,为了更加直观的演示,我会对部分公式进行分步演示:
为了演示,我把公式拆分出来了,其实就是使用两个SUBSTITUTE函数进行嵌套,把附带描述的文本公式[替换为*ISTEX("[,把]替换为]"),其实这就是构造函数,把[长]替换为*ISTEXT("[长]")。这里拿A1单元格为例,通过SUBSTITUTE公式嵌套,最终得到8.2*ISTEXT("[长]")*1.2*ISTEXT("[宽]")*5*ISTEXT("[高]")+100,再通过EVALUATE函数就可以计算出相应的值了。
其实ISTEXT函数判断是否是文本,如果是的话,返回TRUE,相当于1,如果否的话,返回FALSE,相当于0。这样的讲解是不是就非常容易理解啦?
这里插播一个小技巧,如何批量去掉单元格前面的英文单引号,有时候我们为了把数值类型变为文本类型,可以直接在单元格前面加上英文单引号。例如超过15位的身份证号,如果直接在Excel中输入,就会被截断,就可以通过在输入数值前先输入',再输入数值即可。那如果我们需要批量清除单元格前面的英文单引号,那该怎么办呢?
通过如上动态图,可以发现,使用替换不成功,可能是我的替换姿势不对。所以只能借助选择性粘贴的方法来批量去掉单引号。步骤为:空白单元格区域复制,然后选中要移除单引号的数据区域,右键选择性粘贴,在弹出的对话框中选择加即可。
本文地址:
http://www.njanyou.cn/news/1382.html
Tag:
描述 文本 公式
专业服务:
南京网站制作,
南京网站制作公司,
南京网站建设公司
联系电话:025-65016872
上一篇:
MID与FIND函数结合提取括号内内容
下一篇:
如果要选一条路走到黑,我选择做内容运营