Excel中的MAXIFS函数--用多个条件查找最大值

  • Share This
Michael Brown

本教程展示了如何在Excel中使用MAXIFS函数来获得有条件的最大值。

传统上,当你需要在Excel中寻找有条件的最高值时,你必须建立自己的MAX IF公式。 虽然对有经验的用户来说不是什么大问题,但这可能给新手带来一定的困难,因为,首先,你要记住公式的语法,其次,你需要知道如何处理数组公式。 幸运的是,微软最近推出了一个新的函数,让我们以一种简单的方式来做条件性的最大限度。

    Excel的MAXIFS函数

    MAXIFS函数根据一个或多个条件返回指定范围内的最大数值。

    MAXIFS函数的语法如下。

    MAXIFS(max_range, criteria_range1, criteria1, [critical_range2, criteria2], ...)

    在哪里?

    • 最大范围 (必填)--你想找到最大值的单元格范围。
    • 标准_范围1 (要求) - 第一个要评估的范围,用 标准1 .
    • 标准1 - 在第一个范围内使用的条件。 它可以用数字、文本或表达式表示。
    • 标准_范围2 / 标准2 ...(可选)--额外的范围及其相关标准。 最多支持126个范围/标准对。

    这个MAXIFS函数在Windows和Mac的Excel 2019、Excel 2021和Excel for Microsoft 365中可用。

    作为一个例子,让我们来寻找当地学校中最高的足球运动员。 假设学生的身高在D2:D11单元格(max_range),运动项目在B2:B11单元格(critical_range1),使用 "足球 "一词作为critical1,你会得到这个公式。

    =MAXIFS(D2:D11, B2:B11, "足球")

    为了使公式的用途更加广泛,你可以在某个单元格(比如说G1)中输入目标运动,并将单元格的引用包含在 标准1 争论。

    =maxifs(d2:d11, b2:b11, g1)

    注:该 最大范围 标准_范围 参数必须具有相同的大小和形状,即包含相同数量的行和列,否则将返回#VALUE!错误。

    如何在Excel中使用MAXIFS函数--公式实例

    正如你刚才所看到的,Excel的MAXIFS是相当直接和容易使用的。 然而,它确实有一些小的细微差别。 在下面的例子中,我们将尝试充分利用Excel中的条件性最大值。

    根据多个标准查找最大值

    在本教程的第一部分,我们以最简单的形式创建了一个MAXIFS公式,以获得基于一个条件的最大值。 现在,我们将进一步发挥这个例子,评估两个不同的标准。

    假设你想找到初中生中最高的篮球运动员。 要做到这一点,请定义以下论据。

    • 最大范围 - 一个包含高度的单元格范围 - D2:D11。
    • 标准_范围1 - 一个包含运动的单元格范围 - B2:B11。
    • 标准1 - "篮球",它被输入到单元格G1。
    • 标准_范围2 - 定义学校类型的单元格范围 - C2:C11。
    • 标准2 - "junior",这是在单元格G2中输入的。

    把这些论点放在一起,我们得到这些公式。

    有了 "硬编码 "标准。

    =MAXIFS(D2:D11, B2:B11, "篮球", C2:C11, "初级")

    在预定的单元格中设有标准。

    =maxifs(d2:d11, b2:b11, g1, c2:c11, g2)

    请注意,Excel中的MAXIFS函数是 不区分大小写 因此,你不需要担心你的标准中的字母大小写。

    如果你打算在多个单元格上使用你的公式,请确保用绝对的单元格引用锁定所有的范围,像这样。

    =maxifs($d$2:$d$11, $b$2:$b$11, g1, $c$2:$c$11, g2)

    这将确保公式正确地复制到其他单元格--标准引用根据复制公式的单元格的相对位置改变,而范围保持不变。

    作为额外的奖励,我将向你展示一个快速的方法,从另一个单元格中提取一个与最大值相关的值。 在我们的案例中,这将是最高的人的名字。 为此,我们将使用经典的INDEX MATCH公式,在MATCH的第一个参数中嵌套MAXIFS作为查找值。

    =index($a$2:$a$11, match(maxifs($d$2:$d$11, $b$2:$b$11, g1, $c$2:$c$11, g2), $d$2:$d$11, 0)

    这个公式告诉我们,初中时最高的篮球运动员的名字是利亚姆。

    带逻辑运算符的Excel MAXIFS

    在你需要评估数字标准的情况下,使用逻辑运算符,如。

    • 大于 (>)
    • 小于 (<)
    • 大于或等于 (>=)
    • 小于或等于 (<=)
    • 不等于()

    在大多数情况下可以省略 "等于 "运算符(=)。

    通常情况下,选择一个运算符不是问题,最棘手的部分是用正确的语法建立标准。 下面是方法。

    • 逻辑运算符后面的数字或文本必须用双引号括起来,如">=14 "或 "运行"。
    • 如果是单元格引用或其他函数,使用引号来开始一个字符串,使用安培号来连接引用并结束字符串,例如">"&B1或"<"&TODAY()。

    为了看看它在实践中是如何运作的,让我们把年龄列(C列)添加到我们的样本表中,并找到13至14岁的男孩中的最大身高。 这可以通过以下标准来完成。

    Criteria1: ">=13"

    标准2:"<=14"

    因为我们比较的是同一列中的数字,所以两种情况下的critical_range是一样的(C2:C11)。

    =MAXIFS(D2:D11, C2:C11, ">=13", C2:C11, "<=14" )

    如果你不想在公式中硬编码标准,可将它们输入不同的单元格(如G1和H1),并使用以下语法。

    =MAXIFS(D2:D11, C2:C11, ">="&G1, C2:C11, "<="& H1)

    下面的屏幕截图显示了结果。

    除了数字之外,逻辑运算符还可以与文本标准一起使用。 特别是,当你希望从计算中排除某些东西时,"不等于 "运算符就会派上用场。 例如,要找到除排球之外的所有运动项目中最高的学生,可以使用以下公式。

    =MAXIFS(D2:D11, B2:B11, "volleyball")

    或者这个,G1是被排除在外的运动。

    =MAXIFS(D2:D11, B2:B11, "" &G1)

    带有通配符的MAXIFS公式(部分匹配)。

    要评估一个包含特定文本或字符的条件,在你的条件中包括以下通配符之一。

    • 问号(?)来匹配任何单一字符。
    • 星号(*)用于匹配任何序列的字符。

    在这个例子中,让我们找出游戏运动中最高的人。 因为在我们的数据集中,所有游戏运动的名称都以 "球 "字结尾,所以我们把这个词包括在标准中,并使用星号来匹配前面的任何字符。

    =MAXIFS(D2:D11, B2:B11, "*ball")

    你也可以在某些单元格中输入 "球",例如G1,并将通配符与单元格引用连接起来。

    =MAXIFS(D2:D11, B2:B11, "*"&G1)

    结果将如下所示。

    在一个日期范围内获得最大值

    因为在Excel内部系统中,日期是以序列号的形式存储的,你用处理数字的方式来处理日期标准。

    为了说明这一点,我们将取代 年龄 柱子上有 出生日期 为了完成这项任务,我们需要 "过滤 "那些大于或等于2004年1月1日和小于或等于2004年12月31日的出生日期。

    当建立你的标准时,重要的是你要以Excel能理解的格式提供日期。

    =MAXIFS(D2:D11, C2:C11, ">=2004年1月1日", C2:C11, "<=2004年12月31日" )

    =MAXIFS(D2:D11, C2:C11, ">=1/1/2004", C2:C11, "<=12/31/2004" )

    为了防止误解,利用DATE函数是有意义的。

    =MAXIFS(D2:D11, C2:C11, ">="&DATE(2004,1,1), C2:C11, "<="& DATE(2004,12,31))

    在这个例子中,我们将在G1中输入目标年份,然后使用DATE函数来提供日期。

    =MAXIFS(D2:D11, C2:C11, ">="&DATE(G1,1,1), C2:C11, "<="& DATE(G1,12,31)

    注意:与数字不同,在标准中单独使用时,日期应该用引号括起来。 例如:。

    =maxifs(d2:d11, c2:c11, "10/5/2005")

    用OR逻辑在多个标准的基础上寻找最大值

    Excel的MAXIFS函数被设计为用AND逻辑测试条件--即它只处理那些在 最大范围 然而,在某些情况下,你可能需要用OR逻辑来评估条件--即处理所有指定条件为TRUE的数字。

    为了使事情更容易理解,请考虑下面的例子。 假设你想找到打篮球或踢足球的人的最大身高,你会怎么做? 用 "篮球 "作为标准1,用 "足球 "作为标准2是行不通的,因为Excel会认为这两个标准都应该评估为真。

    解决办法是制作2个独立的MAXIFS公式,每个运动项目一个,然后使用好的老式MAX函数来返回一个更高的数字。

    =MAX(MAXIFS(C2:C11, B2:B11, "篮球"), MAXIFS(C2:C11, B2:B11, "足球")

    下面的截图显示了这个公式,但标准是在预定义的输入单元格,即F1和H1。

    另一种方法是使用具有OR逻辑的MAX IF公式。

    关于Excel MAXIFS需要记住的7件事

    下面你将看到一些有助于改进你的公式和避免常见错误的意见。 其中一些意见已经在我们的例子中作为提示和说明进行了讨论,但对你已经学到的东西进行一个简短的总结可能会有帮助。

    1. Excel中的MAXIFS函数可以得到基于以下的最高值 多重标准 .
    2. 在默认情况下,Excel MAXIFS的工作方式为 和逻辑 ,即返回满足所有指定条件的最大数字。
    3. 为了使函数发挥作用,最大范围和标准范围必须具有 同样大小 形状 .
    4. SUMIF函数是 不区分大小写 也就是说,它不能识别文本标准中的字母大小写。
    5. 当为多个单元格编写MAXIFS公式时,记住要 锁定范围 含有绝对的单元格引用的公式才能正确复制。
    6. 注意 你的标准的语法 以下是主要规则。
      • 当单独使用时,文本和日期应该用引号括起来,数字和单元格引用不应该。
      • 当数字、日期或文本与逻辑运算符一起使用时,整个表达式必须用双引号括起来,如">=10";单元格引用和其他函数必须用安培号连接起来,如">"&G1。
    7. MAXIFS仅在Excel 2019和Excel for Office 365中可用。 在早期版本中,此功能不可用。

    这就是如何在Excel中用条件找到最大值的方法。 感谢你的阅读,希望很快在我们的博客上见到你

    下载实践工作手册。

    Excel MAXIFS公式实例(.xlsx文件)。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.