EVALUATE 方法:

声明 Function Evaluate ( _ Name As Object _ ) As Object 用法 Dim instance As _Application Dim Name As Object Dim returnValue As Object returnValue = instance.Evaluate(Name)

Evaluate函数不是通常可以在公式栏里面运行的函数

Evaluate函数必须和名称配合使用

Evaluate函数可以将单元格中的表达式直接运算得出结果


我们模拟一下应用场景:乘积

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(1)

录入数据时直接录入的运算符号我们要获得计算结果

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(2)

我们定义一个名称:ev_1

=EVALUATE(Sheet1!D3)

注意要去掉位置锁定符号$,这样这个名称就可以在其他的单元格使用。

接着在公式栏里输入:=ev_1,就直接得出结果了。

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(3)

看到这个我们会想到符号分列,然后用Average计算平均值

Average(4,5,6)

如果前面的单元中是上面的样子,我们就可以直接用刚才的ev_1来计算了。

=EVALUATE("average("&Sheet1!D3&")")

我们用字符串链接的方式组合出来,定义成:ev_av

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(4)

这样就可以方便的计算出平均值了,也可以用这个方法来计算其他的统计值。

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(5)


还可以再增加难度么?

答案是必须的:非标准的分割符号如何计算

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(6)

把逗号替换成“*”就好了

=EVALUATE(SUBSTITUTE(Sheet1!J12,",","*"))

用上面的公式定义:ev_s

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(7)

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(8)


既然如此,是不是平均值的非标准分隔符的情况也能搞得定?

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(9)

=EVALUATE("average("&SUBSTITUTE(Sheet1!D8,";",",")&")")

使用这个定义ev_avs我们来试一试

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(10)

能不能成呢?

excelevaluate函数大全(Excel宏表函数Evaluate的奇妙用途)(11)

今晚的Evaluate实验大获全胜

我们又多了一个Excel利器

好像我们可以自定义函数一样,不用通过VBA

用名称管理器,自定义自己需要的函数,来计算数据,输出结果。

,