EXCEL 中evaluate函数计算带文字说明/单位的公式
evaluate函数在WPS表格文件中可以直接使用,像其他函数一样直接书写,但是在Office Excel中却不能像其他函数一样直接使用,需要定义名称后才能正常使用
步骤如下:
1.鼠标定位在需要计算的单元格,找到【公式】菜单栏,单击【定义名称】
2. 定义名称打开后弹出如下对话框,“名称(N)”可以自定义输入,这里输入“公式”示例

3.在“引用位置(R)”处输入“=evaluate(X)”,X为需要引用的单元格,比如示例中在A2。最后点击【确定】,对话框自动关闭,此时我们的evaluate函数已定义完成。


注意:在引用单元格是,如果直接用鼠标单击A2进行引用,系统默认绝对引用,需要把A和2前面的“$”符号删除,变成相对引用。

3.evaluate函数已经定义完成后,在需要输出结果的单元格输入“=公式”,“公式”是自定义名称,回车后可得到计算结果。

4.拖拽鼠标或者右下角双击填充公式,可计算A列所有公式,但是!!!!问题来了,当公式中带了说明或者单位时,evaluate函数则不能正常进行计算。

原理说明:
因为公式中带有文字,所以不能完成计算,处理方式是将公式中的文本字符,替换成可以被计算的值,比如true。
每一个公式中的 [文字说明] 都是一串字符,如果用istext函数进行判断,则会输出一个true的值,将 [文字说明] 替换成 *istext(“ [文字说明]”) ,3[长]=3*istext(“ [长]”)=3*true=3,从而完成计算,得到一个值。
需要做的操作,利用substitute函数,将左边的中括号 [ ,替换成为 *ISTEXT(“[ ,右边的中括号 ] ,替换成为 ]”)

5.利用substitute函数完成替换

输入函数:SUBSTITUTE(SUBSTITUTE(A1,”[“,”*ISTEXT(“”[“),”]”,”]””)”)
里面的SUBSTITUTE函数,将左边的中括号 [ ,替换成为 *ISTEXT(“[ ,外面的SUBSTITUTE函数,将右边的中括号 ] ,替换成为 ]”)
6.将substitute函数嵌套到evaluate函数中,在定义名称的“引用位置”完成公式书写,

可以通过【公式】菜单栏【名称管理器】进入名称管理,在弹出的对话框中双击公式进行书写,偷懒的话可以直接复制一下这串字符,粘贴后修改引用单元格,完成定义名称。
=EVALUATE(SUBSTITUTE(SUBSTITUTE(A2,”[“,”*ISTEXT(“”[“),”]”,”]””)”))
注意:修改定义名称中的函数参数是,只能通过移动鼠标来移动光标,用方向键移动会出现错误!


7.正常情况下结果已经显示正常,如果没有显示则重复步骤3和4。
