TL;博士
如果您有无限的时间并使用 64 位版本的 Excel,那么您可以使用 Excel 与任何其他数据分析工具一样远。
时间
我提到时间是我的第一个因素,因为 Excel 只有内置的基本功能,例如求和、随机数生成、查找等。这些对应于一种标准库,Python 和 R 也有。使用这些基本功能,只要有足够的时间,您就可以构建几乎任何分析工具。不要期望良好的运行时性能。然而,在 Python 和 R 中,人们已经创建了许多包,它们性能良好,并且已经过很多人的测试,因此是值得信赖的。
记忆
我关于 64 位 Excel 的第二点是因为它允许Excel 的单个实例使用更多的内存。它允许填充更多的单元格。使用 32 位 excel 会将您的项目限制在 2Gb 左右。这是相当数量的数据,但这是一个硬性限制。
然后进入 64 位 Excel,这基本上意味着不再有内存限制 - 只有那些来自您的硬件的限制,这意味着 Python 和 R 也将停止运行。
为了提供一些数字,我们可以简单地计算每个版本中能够存储的位数。在 Python 的交互式提示中:
In [1]: (2**32) / 10**9 # 10^9 means the result is 4.3 Gb
Out[1]: 4.294967296
In [9]: (2**64) / 10**18 # 10^15 means the result is 18.4 Eb
Out[9]: 18.446744073709553
Eb
表示exa-bytes。这意味着 1840 万千兆字节。
我注意到计算显示 32 位为 4Gb,而我在上面说的是 2 Gb。我读到32 位版本有一种硬性限制。我不知道也不关心为什么……我使用 Python 和 R ;-)
无论如何,我希望这足以让您相信记忆不是问题,如果您是一个愿意投入所有时间从头开始构建工具的勇敢者!
概括
如果您有复杂的业务逻辑,而实际分析在数学上很简单,请坚持使用 Excel。商界人士会因此而爱上你。
如果您想做的不仅仅是线性回归,请使用 Python 或 R。
注意事项
据我所知,您无法使用 Excel 运行远程或分布式任务,而使用 Python 和(在我看来稍微不那么简单)R 相对容易。所以在这一点上,我会放弃 Excel。您可能必须使用 .Net 框架在 C# 或 C++ 中实现自己的工具。