跳至主要内容

如何在 Excel 中计算阶乘:完整指南

轻松掌握在 Excel 中计算阶乘的方法。了解 FACT、FACTDOUBLE、GAMMA 等函数,解决数学与实际问题。
· 7分钟 阅读

使用 AI 探索

阶乘这一概念广泛存在于数学的诸多分支,并被用来解决大量实际问题。

在本教程中,我们将学习什么是一个数的阶乘、它的用途、如何在 Excel 中计算阶乘、在 Excel 中计算阶乘时需要注意的限制与可能问题、可以在 Excel 中计算的一些阶乘变体,以及几个涉及阶乘计算的 Excel 函数。过程中,我们还会结合一些阶乘应用示例。

如需学习或巩固 Excel 知识,您可以参考 Introduction to Excel 课程和 Excel Formulas Cheat Sheet。

什么是阶乘?它有什么用途?

一个正整数的阶乘是从 1 到该数(包含该数)所有整数的乘积。阶乘的数学记号是将感叹号紧跟在要计算阶乘的数字之后。

例如,要计算 7!(读作“7 的阶乘”),我们需要将 1 到 7 的所有整数相乘:7! = 1*2*3*4*5*6*7。该表达式的结果为 5040。

通俗地说,n 的阶乘表示在必须使用全部 n 个彼此不同的对象、且对排列没有额外限制的情况下,我们可以对这 n 个对象进行排列的方式数。

回到上面 7! 的例子,我们可以用该公式求出把 7 本不同的书在书架上一字排开的不同摆放方式有多少种。

作为计算组合与排列的基础,阶乘被广泛应用于数学(包括代数、概率论、组合数学、数论、博弈论等)、统计学、计算机科学、人工智能、工程学、自然科学、经济学、金融与商业等领域。

如何在 Excel 中计算阶乘

如果我们尝试在 Excel 单元格中输入 =7! 来计算 7 的阶乘,软件会给出警告。这是因为 Excel 不将阶乘的数学写法识别为有效运算。

要在 Excel 中计算 n 的阶乘,我们可以使用其他方法:既可以直接将 1 到 n 的所有整数相乘(1*2*3*...*n),也可以组合使用 Excel 函数(例如 PRODUCT(SEQUENCE(n)))。

不过,在 Excel 中计算一个数的阶乘,最直接的方法是使用专用的 FACT 函数。该函数自 Excel 2000 起在所有版本中均可用。

FACT 函数

语法

FACT 函数的语法非常简单,仅有一个必需参数:

FACT(number),

其中 number 是我们要求阶乘的非负数。

该函数返回一个数的阶乘。

注意,我们可以将数字本身传入函数(例如 FACT(7)),也可以传入存放该数字的单元格地址(例如 FACT(A1))。

FACT 函数既可单独使用,也可在公式中与其他函数和数学运算配合使用。例如,FACT(10)/(FACT(2)* FACT(8))。

如需了解 Excel 中其他常用函数,可参考教程 The 15 Basic Excel Formulas Everyone Needs to Know。

用法

我们可以通过以下三种方式之一在 Excel 中使用 FACT 函数:

  1. 单击要显示函数结果的单元格,输入等号,开始输入函数名,并在下拉列表中选择它:

直接在单元格中输入 FACT 函数。

接着,输入我们要求阶乘的数字本身,或存放该数字的单元格地址,关闭括号并按下 Enter。

  1. 单击要显示函数结果的单元格,点击编辑栏,输入等号,开始输入函数名,并在下拉列表中选择它:

在编辑栏中输入 FACT 函数。

接着,输入我们要求阶乘的数字本身,或存放该数字的单元格地址,关闭括号并按下 Enter。

  1. 单击要显示函数结果的单元格,打开 Formulas 选项卡,在 Function Library 组下选择 Maths & Trig 类别,向下滚动到 FACT 函数并点击它:

从 Formulas 选项卡打开 FACT 函数。

在弹出的 Function Arguments 窗口中,我们可以逐一输入要计算阶乘的多个数字或其单元格地址,并在点击 OK 前立即看到每个值的结果;点击 OK 后将显示最后一个输入值的 FACT 函数结果。

此外,此窗口还会提醒我们阶乘的定义、函数语法以及函数文档的获取位置:

查看 FACT 函数的 Function Arguments 窗口:输入不同的输入数值,并回顾阶乘定义、函数语法与函数文档。

特殊情况

  1. FACT(0) = 1
  2. FACT(1) = 1
  3. 对小数应用 FACT 函数:数字会在内部被截断,只返回其整数部分的阶乘。

可能的错误

  • #VALUE!——传入了非数值。
  • #NUM!——传入的值为负数或大于等于 171。

限制

在前一节中我们提到,如果向 FACT 传入一个大于等于 171 的数字,会返回 #NUM! 错误。这是由于 Excel 的内在限制之一:Excel 能计算的正数有上限,而当我们尝试计算 FACT(171) 时会超出该上限。因此,在不触发 #NUM! 错误的情况下,Excel 可计算的最大阶乘是 170 的阶乘(等于 7.257415615308E+306)。

此外,由于数值精度限制,Excel 无法对如此大的阶乘进行精确计算。

考虑到阶乘增长极快,较小的输入就会产生非常大的输出,Excel 能够精确计算阶乘的最大输入(尽管由于四舍五入限制无法精确显示结果)是 22。

如果需要计算大数的阶乘,我们可以通过一些变通方法来克服或缓解这些限制,例如使用 Excel VBA(Visual Basic for Applications,Excel 内置的编程语言)或专用的 Excel 外接程序。

不过,如果确实需要处理如此大的数值,选择除 Excel 之外的其他软件可能更高效。

示例

在本教程开头,我们已经提到过一个阶乘的应用示例:要计算将 7 本不同的书在书架上排成一行的方式数,我们需要用数学记号计算 7!,在 Excel 中则为 FACT(7)。

我们再看两个示例。

  1. 假设书架上有 10 本书(没错,我是个书虫 😉),我们想随机选出其中 4 本作为假期读物。从 10 本中选 4 本共有多少种组合?在数学中,这是不放回的组合。在 Excel 中,我们可以用 FACT 进行计算:FACT(10)/(FACT(4)* FACT(10-4))。结果为 210。
  1. 假设我们有一叠 10 张卡片,每张上面写着一门外语中的一个单词。我们想通过抽取卡片并翻译其上的单词来复习。每次抽取后把卡片放回牌堆,并重复 4 次,这意味着同一张卡可能被抽到多次。从 10 张卡片中(允许重复)抽取 4 次共有多少种组合?在数学中,这是有放回的组合。在 Excel 中,我们可以用 FACT 进行计算:FACT(4+10-1)/(FACT(4) * FACT(10-1))。结果为 715。

在下面讨论与阶乘相关的 Excel 函数时,我们会回到这两个示例。

如果您希望加深对目前内容的理解,Data Analysis in Excel 课程将通过学习数据透视表、中级逻辑函数、假设分析、趋势预测等高级分析技术,帮助您将 Excel 技能提升到新水平。

用于计算特定类型阶乘的 Excel 函数

除了我们在本教程开头定义的常规阶乘外,数学中还有其他类型的阶乘:双阶乘、素数阶乘、超阶乘等。这些阶乘类型较为专业,通常用于复杂数学公式的一部分。下面简要介绍两个可在 Excel 中直接计算这类阶乘的函数:FACTDOUBLE 和 GAMMA。

FACTDOUBLE 函数

FACTDOUBLE 函数用于计算一个数的双阶乘,即小于或等于该输入数、且与该输入数奇偶性相同的所有正整数的乘积。在数学中,双阶乘用两个感叹号表示。例如,8!! = 2 * 4 * 6 * 8 = 384(在 Excel 中为 FACTDOUBLE(8))。

FACTDOUBLE 函数的语法与 FACT 函数非常相似:

FACTDOUBLE(number),

其中 number 是我们要求双阶乘的非负数。

关于 FACT 函数先前讨论的内容(用法、特殊情况、可能错误与限制)在此也同样适用,唯一的例外是 Excel 能计算的双阶乘的最大值不同。

对于常规阶乘,该上限对应的数字是 170;对于双阶乘,是 300。尝试计算 FACTDOUBLE(301) 会返回 #NUM! 错误。

GAMMA 函数

这是数学伽马函数的实现,它将阶乘扩展到复数。 在 Excel 中,我们可以对负小数与正小数使用 GAMMA 函数。

GAMMA 函数的语法如下:

GAMMA(number)

其中 number 是我们要求其伽马函数值的负小数或正数。

注意,向函数传入负整数或 0 会返回 #NUM! 错误。

与阶乘相关的 Excel 函数

一些 Excel 函数在更复杂的公式中包含阶乘的计算。我们快速了解一下可以用于计算组合与排列数量的这些函数。

COMBIN 与 COMBINA 函数

Excel 中的 COMBIN 与 COMBINA 函数都返回组合的数量,即当选择顺序不重要时,从一个集合中选择指定数量项目的方式数。二者的区别在于:COMBIN 不允许项目重复,而 COMBINA 允许。

两者语法相同,下面以 COMBIN 为例:

COMBIN(number, number_chosen)

其中

  • number——集合中的项目总数,
  • number_chosen——每个组合中的项目数。

前面我们讨论过用 FACT 计算组合的两个示例。回到这两个例子,我们可以用 COMBIN 与 COMBINA 更轻松地完成计算。

  1. 假设书架上有 10 本书,我们想随机选出 4 本作为假期读物。从 10 本中选 4 本共有多少种组合?COMBIN(10, 4) = 210。
  2. 假设有一叠 10 张卡片,每张上写着我们学习的一门外语中的一个单词。我们通过抽取一张并翻译其上的单词来复习。每次抽取后把卡片放回,并重复 4 次,意味着同一张卡可能被抽到多次。从 10 张卡片中(考虑可能的重复)抽取 4 次共有多少种组合?COMBINA(10, 4) = 715。

PERMUT 与 PERMUTATIONA 函数

Excel 中的 PERMUT 与 PERMUTATIONA 函数都返回排列的数量,即当选择顺序重要时,从一个集合中选择指定数量项目的方式数。两者的区别在于:PERMUT 不允许项目重复,而 PERMUTATIONA 允许。

两者语法相同,下面以 PERMUT 为例:

PERMUT(number, number_chosen)

其中

  • number——集合中的项目总数,
  • number_chosen——每个排列中的项目数。

结论

我们讨论了数的阶乘定义、阶乘的主要应用领域、在 Excel 中使用 FACT 函数计算阶乘的最直接方法、使用该函数时需要注意的特殊情况、可能错误与限制、一些特定类型的阶乘及其在 Excel 中的计算方法,以及与阶乘计算相关的 Excel 函数。此外,我们还查看了几个涉及阶乘的计算示例,并介绍了如何更高效地完成这些计算。

若您希望向潜在或现任雇主展示自己的 Excel 能力,从而提升就业竞争力与职业发展机会,建议获取 Microsoft Excel 认证。How to Earn a Microsoft Excel Certification in 2024: Top Tips and Resources 指南将为您提供详细的分步说明、考试洞见与专家建议,帮助您获得官方 Excel 认证。

Elena Kosourova

作者

Elena Kosourova

IBM 认证数据科学家(2020)。此前曾在全球油气田担任石油地质学家/地质建模师,拥有 12 年以上国际工作经验。精通 Python、R 和 SQL。专长领域包括:数据清洗、数据处理、数据可视化、数据分析、数据建模、统计、数据叙事、机器学习。具备丰富的数据科学社区管理经验,并长期撰写与审校数据科学及职业发展相关的文章与教程。

主题