你用 Excel 做的最酷的事情是什么?
原文链接:https://www.zhihu.com/question/318065326/answer/2733904373
知乎:Jackpop,粉丝10万+,每日更新精品内容!
你听过说混沌理论吗?
这事情可能和我们对Excel常规的认识并没有太大关系,但是却很有趣,也真的能够体现Excel的强大之处。
混沌理论简单来说就是关于非线性系统在一定参数条件下展现分岔、周期运动与非周期运动相互纠缠,以至于通向某种非周期有序运动的理论。
针对Excel,我做一件事情,把行高和列宽减少到如此小的数量,以至于整个屏幕都被作为像素的小Excel单元格填满,然后我可以用我选择的任何颜色填充,并在上面画东西。
既然是画图,那为啥不用绘图软件呢?
别着急,继续往后看就知道原因了。
有一个三角形,其顶点为A、B和C。请注意,这些顶点可以在任何地方,不一定要按照我上面画的方式。在上图中,P在三角形内,但即使它在三角形外,也没有什么区别。
下一步是开始生成随机数字1、2或3。如果数字是1,你要从P到A移动一半的距离并在那里标记一个点,我们把它叫做P1。
通过上面这个图片,大概能够明白上面表述的含义。
如果你现在得到的是2或3,你要从P1移动一半的距离到B(如果是2)或P1到C(如果是3)并标记一个点。
如果你再次得到1这个随机数,你再从P1移动一半的距离到A点,并标记一个点。
假设,接下来的4个随机数是2、1、3和2,这时的图表将是下面这样:
目前移动次数还比较少,所以这看起来有点混乱,但步骤是这样的。
当我得到2这个随机数时,我从P1移动一半的距离到B,并标记一个点P2。
然后我得到了1,所以我从P2移到了A的一半,并标记了P3。重复这个过程,我得到了P4和P5。
因此,用随机数1、2和3分别代表A、B和C,你重复这个标记过程的次数很多。那么,当无限次重复之后,会出现什么情况呢?
要验证这些结果,如果逐步移动显然是不现实的,这时候就可以用到Excel中非常强大的一项功能--VBA。
我在Excel VBA中对这个游戏进行编码,重复10000次,这是我得到的图像:
是不是很有趣?这个图片看起来非常好看!
那么,如果初始是一个正方形结果又会是什么样呢?
下面来看一下效果:
接下来,我试着让每一个随机选择的顶点都与前一个顶点不一样,再顺时针加一个顶点,我得到了下面这个结果:
然后,我让它每一个随机选择的顶点都不是与前一个顶点对角线相对的。换句话说,前一个顶点加上顺时针/逆时针的两个顶点,会得到一个非常好看的图案:
这就是我在Excel上做的一件自认为比较酷的事情,通过Excel的VBA,可以自动化处理很多重复性工作,可以探索很多有趣、意想不到的事情。
这里只是给大家一个启示,Excel的功能非常强大,很多功能除了常规的应用,还可以举一反三解决一些类似的工作,大大提升办公效率。