Excel MAX IF 公式:按条件获取最大值
我们已经在之前的教程中介绍了 MAX 函数的实现、定义和示例。MAX 函数用于返回数据集中的最大值。然而,在某些情况下,您可能需要进一步针对特定条件查找最大值。
本教程将介绍一些不同的方法,根据您指定的一个或多个条件从 Excel 工作表中获取最大值。
- 通过一个条件与 MAX IF 公式进行配合使用
- 通过多个条件与 MAX IF 公式进行配合使用
- 不使用数组的 MAX IF 公式
- 将 Excel MAX IF 与 OR 逻辑集成
- 实现 MAXIFS 函数
Excel MAX IF 公式:一个条件
最近,微软 Excel 在 2019 版本中引入了内置的 MAXIFS 函数,以便轻松实现条件最大值。
在此之前,使用 Excel 2016 及更早版本,用户需要通过将 MAX 函数与 IF 语句相结合来自定义公式。
{=MAX(IF(criteria_range=criteria, max_range))}
以实时示例来了解传统的MAX IF函数如何工作。下面是给定各个代理商销售报告的数据表格。
表格包括了为期三个月的销售报告,您正在寻找最佳销售员Eva的数值。请按照以下步骤进行操作:
- 将销售员姓名放在A1:A15单元格,并将销售报告放在C1:C15单元格,公式将变为:
应用的公式=MAX(IF(A1:A15=”Eva”, C1:C15))
注意:由于我们使用了一个数组函数,所以不能使用传统的回车键。数组公式必须通过同时按下Ctrl + Shift + Enter键输入。
- 这个公式将返回销售员”Eva”的最高销售值。
- 相比直接在公式单元格中添加条件,将它们放在单元格中更为合适。在这种情况下,我们不需要反复更改公式;只需更改条件单元格即可。我们可以使用以下公式得出结论并获得输出结果:
应用的公式 =MAX (IF(A2:A10=F1, C2:C10))
- 您将注意到这两个公式将返回相同的输出。
如何使用该公式
首先,IF函数会在内部将给定条件范围(A1:A15)与目标名称Eva进行匹配。这个操作的输出将返回TRUE或False;如果条件匹配,则返回TRUE,否则返回FALSE。在我们的例子中,因为找到了“Eva”,所以会返回true。
对于value_if_true参数,我们提供了长跳的结果(C2:C10),因此如果逻辑测试评估为TRUE,则返回从列C中对应的数字。value_if_false参数被省略,意味着在条件不满足的情况下只有一个FALSE值:
这个数组被输入到MAX函数中,它返回忽略FALSE值的最大数字。
注意:要获取内部数组,您只需要在Excel表格中选择相应的公式部分,然后按F9键。如果您想退出公式评估模式,只需按Esc键。
MAX IF公式用于处理多个条件
在上面的部分中,我们介绍了如何根据一个单一条件实施MAX IF公式。如果您想根据两个或更多条件找到最大值,可以选择以下任一方法:
- 嵌套IF:处理多个条件
{=MAX(IF(criteria_range1=criteria_1,IF(criteria_range2=criteria_2, max_range)))}
- 使用乘法运算符:以包括额外的条件
{=MAX(IF((criteria_range1=criteria_1) * (criteria_range2=criteria_2), max_range))}
注意:公式开头和结尾的大括号表示这是一个数组公式。
例如,我们给出了一家公司的季度销售报告,并要求找出在四月份销售额最高的女销售员的姓名。为了解决上述问题,请按照以下步骤进行操作:
- 我们将输入两个条件,第一个条件(女性)放在C1中,第二个条件(四月份)放在C2中,并使用IF函数将这些条件整合在一起。它将以以下公式形式呈现:
应用的公式 = MAX(IF(C2:C11=H3, IF(D2:D11=H4, E2:E11)))
- 要获取数组公式的输出,请同时按下Ctrl + Shift + Enter键,它将通过匹配给定的条件返回最大值。
使用乘法运算符
- 对于此操作,我们将在C1中输入第一个条件(女性),在C2中输入第二个条件(四月份),并使用乘法运算符(*)应用这两个条件。公式如下:
应用的公式 = MAX(IF((C2:C11=H3)*(D2:D11=H4), E2:E11))
- 你将得到以下输出:
当您比较这两个结果(参见下图),您会注意到它们返回了相同的输出。虽然这两个公式都很简单,但相对而言,使用布尔逻辑的公式更受欢迎,因为它使用户能够轻松添加任意数量的条件,而无需嵌套多个If函数。
不使用数组的MAX IF公式的工作原理
许多Excel用户认为数组公式在Excel中有些复杂,并且总是尽可能避免使用它们。为了迎合这些用户,Microsoft Excel提供了一些内置函数来处理数组。其中一个内置的Excel函数是SUMPRODUCT函数。
可以使用以下给定的语法将SUMPRODUCT和MAX函数共同放在一个公式中:
=SUMPRODUCT(MAX((criteria_range1=criteria1) * (criteria_range2=criteria2) * max_range))
在上述语法中,我们已经整合了两个条件,但如果需要,您可以轻松在上述语法中插入更多的范围/条件对。
我们使用了相同的数据(与之前的示例中使用的数据相同)以查看这个公式的运行情况。使用这个公式,我们想要获取在“四月”月份中销售人员“Reema”完成的最大销售报告。
应用的公式 =SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
选择它而不是上面的公式的优点是,您无需按下CTRL+ SHIFT + Enter键即可运行此公式;您只需按下一个回车键即可得到结果。您将得到以下输出:
将Excel的MAX IF与OR逻辑集成
在之前的例子中,我们使用了乘法运算符,它的行为类似于AND运算符。使用AND运算符的优点是只有当所有条件都满足时才返回输出。那么如果你想找到最大值,即使只满足一个条件呢?
为了满足上述要求,我们将使用OR逻辑,即在MAX IF公式中将条件相加,而不是相乘。
语法
{=MAX(IF((criteria_range1=criteria1) + (criteria_range2=criteria2), max_range))}
例如,我们有一家公司的季度销售报告,想要找到在一月和二月份中销售额最高的销售人员的姓名。为了解决上述问题,按照以下步骤进行:
- 我们将输入两个条件,在单元格C1中输入第一个条件(一月份),在单元格C2中输入第二个条件(二月份)。我们将使用IF函数中的+运算符来整合这些条件。它将以以下公式形式呈现:
应用的公式 = =MAX(IF((C2:C11=”Jan”) + (D2:D11=”Feb”), E2:E11))
- 要得到数组公式的输出结果,请同时按下 Ctrl + Shift + Enter 键,它将通过匹配给定的条件返回最大值。
您还可以使用SUMPRODUCT函数来解决上述问题。使用以下SUMPRODUCT函数:
应用的公式 =SUMPRODUCT(MAX(((C2:C11=”Jan”) + (D2:D11=”Feb”)) * C2:C10))
由于它不是一个数组公式,因此只需按下回车键即可运行输出。
注意:SUMPRODUCT函数仅适用于数值数据,对于文本值,它将返回0作为输出。
实施MAXIFS函数。
到目前为止,在本教程中,我们已经涵盖了不同的MAX IF公式组合来满足我们的要求。然而,您不再需要与那些麻烦的数组公式玩耍了!使用最新的Excel版本,2019、2021和Excel 365,用户可使用MAXIFS公式并集成多个条件,而无需使用IF或乘法运算符。使用此函数的优点是,它可以处理同时包含数值和文本数据的范围。由于它不是数组公式,因此可以通过按回车键来获取输出。
语法
MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
要更好地理解,我们将使用相同的数据(如前面的示例中使用的数据)。使用MAXIFS公式,我们将获取销售人员“Reema”在“四月”月份完成的最大销售报告。以下是步骤:
- 在第一个参数中,我们将输入要查找最大数的范围。在后面的参数中,我们将输入条件范围(您可以输入最多126个条件/范围)。
应用的公式 =MAXIFS(E2:E11, C2:C11, H3, D2:D11, H4)
- 由于MAXIFS不是一个数组公式,按下回车键,它将返回以下输出。
今天我们介绍MAX IFS。尝试所有可能的MAX IFS选项。在下一个教程中,我们将介绍一些令人着迷的Excel主题和实时示例。