EvaluateFormula带公式取值 excel中的evaluate函数_pyqt 取鼠标处文字


evaluate函数在WPS表格文件中可以直接使用,像其他函数一样直接书写,但是在Office Excel中却不能像其他函数一样直接使用,需要定义名称后才能正常使用

步骤如下:

1.鼠标定位在需要计算的单元格,找到【公式】菜单栏,单击【定义名称】


EvaluateFormula带公式取值 excel中的evaluate函数_自定义_02


2. 定义名称打开后弹出如下对话框,“名称(N)”可以自定义输入,这里输入“公式”示例


EvaluateFormula带公式取值 excel中的evaluate函数_自定义_03


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


EvaluateFormula带公式取值 excel中的evaluate函数_pyqt 取鼠标处文字_04


EvaluateFormula带公式取值 excel中的evaluate函数_菜单栏_05


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


EvaluateFormula带公式取值 excel中的evaluate函数_菜单栏_06


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


EvaluateFormula带公式取值 excel中的evaluate函数_自定义_07


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


EvaluateFormula带公式取值 excel中的evaluate函数_pyqt 取鼠标处文字_08


原理说明:

因为公式中带有文字,所以不能完成计算,处理方式是将公式中的文本字符,替换成可以被计算的值,比如true。

每一个公式中的 [文字说明] 都是一串字符,如果用istext函数进行判断,则会输出一个true的值,将 [文字说明] 替换成 *istext(“ [文字说明]”) ,3[长]=3*istext(“ [长]”)=3*true=3,从而完成计算,得到一个值。

需要做的操作,利用substitute函数,将左边的中括号 [ ,替换成为 *ISTEXT("[ ,右边的中括号 ] ,替换成为 ]”)


EvaluateFormula带公式取值 excel中的evaluate函数_菜单栏_09


5.利用substitute函数完成替换


EvaluateFormula带公式取值 excel中的evaluate函数_lua_10


输入函数:SUBSTITUTE(SUBSTITUTE(A1,"[","*ISTEXT(""["),"]","]"")")

里面的SUBSTITUTE函数,将左边的中括号 [ ,替换成为 *ISTEXT("[ ,外面的SUBSTITUTE函数,将右边的中括号 ] ,替换成为 ]”)

6.将substitute函数嵌套到evaluate函数中,在定义名称的“引用位置”完成公式书写,


EvaluateFormula带公式取值 excel中的evaluate函数_lua_11


可以通过【公式】菜单栏【名称管理器】进入名称管理,在弹出的对话框中双击公式进行书写,偷懒的话可以直接复制一下这串字符,粘贴后修改引用单元格,完成定义名称。

=EVALUATE(SUBSTITUTE(SUBSTITUTE(A2,"[","*ISTEXT(""["),"]","]"")"))

注意:修改定义名称中的函数参数是,只能通过移动鼠标来移动光标,用方向键移动会出现错误!


EvaluateFormula带公式取值 excel中的evaluate函数_自定义_12


EvaluateFormula带公式取值 excel中的evaluate函数_自定义_13


EvaluateFormula带公式取值 excel中的evaluate函数_pyqt 取鼠标处文字_14


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


EvaluateFormula带公式取值 excel中的evaluate函数_lua_15