假设自定义函数fnTest(XXX)这个函数第一次运行会读取数据库,运行时间2秒左右,然后把数据结果存到一个cache, 下次再用这个函数时就直接读cache里的东西而不连接数据库了。现在有这样的问题,一张表格经常要用好几十万个这个函数,这样即使读cache还是很慢,打开一个这样的sheet需要用到3,4分钟。请问有何办法可以提高效率?另外,这个函数经常这样用:
=IF(fnTest(XXX)=1,TRUE,fnTest(XXX))在这个cell中fnTest要运行2次,如果能简化成运行1次,我想可以大大提高效率,请教如何。
=IF(fnTest(XXX)=1,TRUE,fnTest(XXX))在这个cell中fnTest要运行2次,如果能简化成运行1次,我想可以大大提高效率,请教如何。
可以把这个条件写到fnTest函数中,调用时带参数,函数中判断值得情况根据参数决定返回值调用
=fnTest(XXX,1)函数中fnTest(参数1,参数2) if 参数2="Y then
fnTest=
else
fnTest=
end if
可以把这个条件写到fnTest函数中,调用时带参数,函数中判断值得情况根据参数决定返回值调用
=fnTest(XXX,true)函数中fnTest(参数1,参数2)
……结果=……if 参数2 and 结果=1 then
fnTest=true
else
fnTest=结果
end if
其实道理可能跟几位高手说的一样,但是觉得可以省去,每次都要访问函数的时间。