你用 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 的功能非常强大,很多功能除了常规的应用,还可以举一反三解决一些类似的工作,大大提升办公效率。
版权声明: 本文为 InfoQ 作者【Jackpop】的原创文章。
原文链接:【http://xie.infoq.cn/article/01c00952afccbe622f12108ec】。文章转载请联系作者。
评论