excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel函数,从公式到编程的进化

Excel函数公式能解决不少问题,而且使用方便、灵活。函数本身就具有无副作用,可嵌套的优点,这使得函数公式可以像“模块”一样自由搭配组合,求解相对复杂的问题。加上使用过程中也能体现出一些复用的编程思维,这一切看起来仿佛已具编程雏形。

无法循环迭代

这是个致命短板,如果想要和编程语言一样的话。比如我们不会选择在Excel里对自建模型进行优化迭代,也不会处理复杂的文本。因为这些需求统统需要循环操作。所以如果想要以遍历的形式修改一组数据中的特定目标值,必须把它们统统列在表格里,然后重复粘贴公式。这就是所谓的手工操作。

Excel2016版全面集成的Power Query和Power Pivot,可以实现循环迭代。但严格来说,这两个加载项都是Power平台的产品,并非Excel原生。Excel就是个承载运算结果的容器而已。

但在Excel2021里情况发生质的变化。因为从那一版起,Excel可以进行循环迭代计算了(通过递归、数组或者高阶函数Reduce)。实现这个重要功能的,是lambda函数和reduce函数。由于这些高阶函数的出现,Excel完全进化成了一门函数式编程语言。

过去,在Excel里想要自定义函数,只能通过VBA或加载项开发。新版中的Lambda函数,支持用户通过它自定义一个新的匿名函数。当然,利用名称管理器,我们就可以复用这个创建的自定义函数。这使得我们可以以数组或者递归的形式,在Excel里实现循环迭代。

举个例子。比如时间序列中简单的一次指数平滑法,以前在Excel里,我们只能通过手工计算,反复寻找最优参数。手工迭代最大的问题是低效。因为需要重复粘贴公式,手工比较每轮迭代步骤得出的残差结果,以此先判断参数的大致范围。然后将参数的步进值调低,在选定的较小范围内进一步缩小误差。显然这么干太繁琐了,费心费神。而且一不小心还容易出错。数据分析具有管道的特性,前面步骤一旦出错,意味着后面的工作其实都白做了,还得从错误点重新开始。

但是有了lambda函数,我们可以把模型调参的计算过程封装成一个自定义函数,然后简单地调用它就可以了。无论是使用数组还是递归,都相当于实现了循环操作,可极大提升运算体验。模型能够直接以更小的步进值找到最佳参数,求解效率显著提高。于是在Excel里再运用一次指数平滑法将变得轻松。

这是一个很小的例子。结合高阶函数map和reduce,还有很多计算场景因此得到解放。各种过去深度嵌套的公式让人一看就头晕,有了它们,这种情况就不复存在了。公式读起来容易理解,操作也不易出错。

Excel的这个进化意义重大。虽然这意味着掌握函数公式的门槛更高了,但反过来讲,学习掌握它也更值得。因为可以通过Excel解决更多更复杂的问题。一句话,Excel会因此变得更加重要。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接