Excel VLOOKUP与SUM或SUMIF函数--公式示例

  • Share This
Michael Brown

在本教程中,你会发现一些高级公式的例子,演示如何使用Excel的VLOOKUP和SUM或SUMIF函数,根据一个或几个标准来查询和计算数值。

你是否试图在Excel中创建一个摘要文件,以确定一个特定值的所有实例,然后对与这些实例相关的其他值进行求和? 或者,你需要在一个数组中找到符合你指定条件的所有值,然后对另一个工作表中的相关值进行求和? 或者,你可能面临一个更具体的挑战,比如通过一个表的你公司的发票,确定某个特定供应商的所有发票,然后将所有发票价值相加?

任务可能有所不同,但本质是一样的--你想在Excel中用一个或几个标准来查询和求和。 什么样的值? 任何数字值。 什么样的标准? 任何:)从一个数字或对包含正确值的单元格的引用开始,到逻辑运算符和Excel公式返回的结果结束。

那么,Microsoft Excel有没有什么功能可以帮助完成上述任务呢? 当然有!你可以通过将Excel的VLOOKUP或LOOKUP与SUM或SUMIF函数结合起来,制定出一个解决方案。 下面的公式例子将帮助你了解这些Excel函数的工作原理以及如何将它们应用于真实数据。

请注意,这些是高级的例子,意味着你已经熟悉了VLOOKUP函数的一般原理和语法。 如果不是,我们的VLOOKUP初学者教程的第一部分肯定值得你注意--Excel VLOOKUP语法和一般用法。

    Excel VLOOKUP和SUM--查找匹配值的总和

    如果你在Excel中处理数字数据,很多时候你不仅要从另一个表中提取相关数值,还要对几列或几行的数字进行求和。 要做到这一点,你可以使用SUM和VLOOKUP函数的组合,如下图所示。

    来源数据。

    假设,你有一个产品清单,其中有几个月的销售数字,每个月有一列。 源数据在名为 月销售额 :

    现在,你想制作一个汇总表,列出每个产品的总销售额。

    解决办法是在第三个参数中使用一个数组( col_index_num 下面是一个通用公式。

    SUM(VLOOKUP( 查询值 , 查询范围 , {2,3,...,n}, FALSE))

    正如你所看到的,我们在第三个参数中使用了一个数组常数,在同一个VLOOKUP公式中进行多次查找,以获得第2、3、4列的数值之和。

    现在,让我们为我们的数据调整这个VLOOKUP和SUM函数的组合,以找出上表中B-M列的销售总额。

    =SUM(VLOOKUP(B2, '月销售额'! $A$2:$M$9, {2,3,4,5,6,7,8,9,10,11,12,13}, FALSE)

    重要的是! 因为你正在建立一个数组公式,所以当你完成输入时,一定要按下Ctrl + Shift + Enter键,而不是简单的Enter键。 当你这样做时,Microsoft Excel会将你的公式包围在大括号里,就像这样。

    {=SUM(VLOOKUP(B2, 'Monthly sales'!$A$2:$M$9, {2,3,4,5,6,7,8,9,10,11,12,13}, FALSE)}。

    如果你按下 进入 像往常一样,只有数组中的第一个值会被处理,这将产生不正确的结果。

    提示:你可能很好奇,为什么在上面的截图中,公式显示[@Product]为查询值。 这是因为我把我的数据转换为表格( 插入 标签> 我发现使用功能齐全的Excel表格及其结构化引用非常方便。 例如,当你在一个单元格中输入公式时,Excel会自动将其复制到整列中,这样就为你节省了几秒钟的宝贵时间 :)

    正如你所看到的,在Excel中使用VLOOKUP和SUM函数是很容易的。 然而,这并不是理想的解决方案,特别是当你在处理大的表格时。 关键是,使用数组公式可能会对工作簿的性能产生不利影响,因为数组中的每个值都会单独调用VLOOKUP函数。 因此,数组中的值越多,数组公式就越多。你的工作簿,Excel的工作速度就越慢。

    你可以通过使用INDEX和MATCH函数的组合来绕过这个问题,而不是使用SUM和VLOOKUP,我将在下一篇文章中向你展示几个公式例子。

    下载这个VLOOKUP和SUM样本

    如何用Excel VLOOKUP函数进行其他计算

    刚才我们讨论了一个例子,即如何从查找表中的几列提取数值并计算这些数值的总和。 以同样的方式,你可以用VLOOKUP函数返回的结果进行其他数学计算。 下面是几个公式例子。

    运作 公式示例 描述
    计算平均数 {=AVERAGE(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE)}。 该公式在 "查找表 "中搜索单元格A2的值,并计算同一行中B、C和D列的平均值。
    寻找最大值 {=MAX(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} 该公式在 "查找表 "中搜索A2单元格的值,并在同一行的B、C和D列中找到最大值。
    寻找最小值 {=MIN(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE)} 该公式在 "查找表 "中搜索A2单元格的值,并在同一行的B、C和D列中找到最小值。
    计算总和的百分比 {=0.3*SUM(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} 该公式在 "查找表 "中搜索单元格A2的值,对同一行中B、C和D列的值进行求和,然后计算出30%的和。

    注意:由于上述公式都是数组公式,记得按Ctrl+Shift+Enter键,在单元格中正确输入这些公式。

    如果我们将上述公式添加到前面例子中的 "销售摘要 "表中,结果将类似于这样。

    下载这个VLOOKUP计算样本

    LOOKUP AND SUM - 在数组中查找并对匹配的值进行求和

    如果你的查询参数是一个数组,而不是一个单一的值,那么VLOOKUP函数就无能为力了,因为它不能在数据数组中查询。 在这种情况下,你可以使用Excel的LOOKUP函数,它与VLOOKUP类似,但对数组和单个值都有作用。

    让我们考虑下面的例子,以便你能更好地理解我在说什么。 假设,你有一个表,列出了客户名称、购买的产品和数量( 主桌 你还有一个包含产品价格的第二个表( 查询表 ).你的任务是制定一个公式,找出某个客户所有订单的总数。

    正如你所记得的,你不能利用Excel的VLOOKUP函数,因为你有多个实例的查找值(数据数组)。 相反,你使用SUM和LOOKUP函数的组合,像这样。

    =SUM(LOOKUP($C$2:$C$10,'查询表'!$A$2:$A$16,'查询表'!$B$2:$B$16)*$D$2:$D$10*($B$2:$B$10=$G$1))

    由于这是一个数组公式,记得要按Ctrl + Shift + Enter来完成。

    现在,让我们分析一下这个公式的成分,以便你了解每个函数是如何工作的,并能根据自己的数据进行调整。

    我们先把SUM函数放在一边,因为它的作用是显而易见的,而把重点放在被乘的3个部分。

    1. LOOKUP($C$2:$C$10,'查询表'!$A$2:$A$16,'查询表'!$B$2:$B$16)

      这个LOOKUP函数查找主表C列中列出的商品,并从查找表中的B列返回相应的价格。

    2. D$2:D$10

      这个组件返回每个客户购买的产品的数量,这些数量列在主表的D列中。 乘以上面LOOKUP函数返回的价格,就可以得到每个购买产品的成本。

    3. $b$2:$b$10=$g$1

      这个公式将B列中的客户名称与G1单元格中的名称进行比较,如果发现匹配,则返回 "1",否则返回 "0"。 你使用它只是为了 "切断 "G1单元格中名称以外的客户名称,因为我们都知道任何数字乘以0都是0。

    因为我们的公式是一个数组公式,它对查找数组中的每个值都进行了上述过程。 最后,SUM函数对所有乘法的乘积进行求和。 一点都不难,是吗?

    注意:为了使LOOKUP公式正常工作,你需要将Lookup表中的查找列按升序排序(从A到Z)。 如果你的数据不能接受排序,请查看Leo建议的一个很棒的SUM / TRANSPOSE公式。

    下载这个LOOKUP和SUM样本

    VLOOKUP和SUMIF - 查找&;用标准求和值

    Excel的SUMIF函数与我们刚才讨论的SUM类似,也是对数值进行求和。 不同的是,SUMIF函数只对那些符合你指定条件的数值进行求和。 例如,最简单的SUMIF公式是 =SUMIF(A2:A10,">10") 将A2至A10单元格中大于10的数值相加。

    这很简单,对吗? 现在让我们考虑一个更复杂的情况。 假设你有一个表,列出了销售人员的姓名和ID号码( 查询表 你有另一个表,其中包含相同的ID和相关的销售数字( 主表 ).你的任务是根据某个人的ID找到其销售总额。 在这一点上,有两个复杂的因素。

    • 邮件表包含同一ID的多个条目,顺序随机。
    • 你不能把 "销售人员姓名 "列添加到主表中。

    现在,让我们做一个公式,首先,找到某个人的所有销售额,其次,将找到的数值相加。

    在我们开始讨论这个公式之前,让我提醒你SUMIF函数的语法。

    SUMIF(range, criteria, [sum_range])
    • 范围 - 这个参数不言自明,只是一个你想通过指定的标准来评估的单元格范围。
    • 标准 - 告诉公式什么值要加的条件。 它可以以数字、单元格引用、表达式或其他Excel函数的形式提供。
    • 总数_范围 - 这个参数是可选的,但对我们来说非常重要。 它定义了要添加相应单元格值的范围。 如果省略,Excel将对范围参数(第一个参数)中指定的单元格值进行求和。

    牢记上述信息,让我们为SUMIF函数定义3个参数。 正如你所记得的,我们想对主表F2单元格中输入的某个人的所有销售额进行求和(请看上图)。

    1. 范围 - 因为我们是通过销售人员的ID来搜索,所以 范围 我们的SUMIF函数的参数是主表中的B列。 因此,你可以输入范围B:B,或者如果你将数据转换为表格,你可以使用列的名称来代替。 Main_table[ID]
    2. 标准 - 因为我们在另一个表中有销售人员的名字(查找表),所以我们必须使用VLOOKUP公式来查找与某个人相对应的ID。 这个人的名字写在主表的F2单元格中,所以我们使用这个公式来查找它。 VLOOKUP($F$2,Lookup_table,2,FALSE)

      当然,你可以在VLOOKUP函数的查找条件中输入名字,但使用绝对的单元格引用是一个更好的方法,因为这创建了一个通用的公式,对特定单元格中的任何名字输入都有效。

    3. 总和范围 - 由于我们的销售数字是在名为 "销售 "的C列中,我们只需把 Main_table[销售] .

      现在,你只需要将公式的各个部分组合起来,你的SUMIF+VLOOKUP公式就准备好了。

      =SUMIF(Main_table[ID], VLOOKUP($F$2, Lookup_table, 2, FALSE), Main_table[Sales] )

    下载这个VLOOKUP和SUMIF样本

    在Excel中做Vlookup的无公式方法

    最后,让我向你介绍一个工具,它可以在没有任何函数或公式的情况下查询、匹配和合并你的表格。 我们的Excel终极套件所包含的合并表格工具是作为Excel的VLOOKUP和LOOKUP函数的一个省时且易于使用的替代品而设计和开发的,它对初学者和高级用户都很有帮助。

    你只需指定你的主表和查找表,定义一个或多个公共列,并告诉向导你想获取什么数据,而不是弄清公式。

    如果你认为这个插件对你的工作有帮助,我们非常欢迎你使用下面的链接下载试用版。

    可用的下载

    带有SUM和SUMIF的VLOOKUP - 公式示例(.xlsx文件)

    终极套房 - 试用版 (.exe文件)

    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.