首页 > 解决方案 > SumIF 使用表/命名范围而不是单个单元格条件

问题描述

我在工作簿中有 2 张工作表(Sheet1、Sheet2)。

工作表 2 包含一个包含 5 列的表(命名为 Table1):

在第一张纸上,我有 2 列:

现在,我想做的是:

  1. 设置费用名称的范围(范围 1)
  2. 设置费用总计的范围(范围 2)
  3. 将范围 1 与表中的相应列进行比较,仅将匹配的值相加

例如,在范围 1 (B6:B16) 中:

在范围 2 (C6:C16) 中:

现在,我要做的就是将外卖(麦当劳、肯德基)的值加起来,并排除任何不符合标准的东西。

所以我的总和将是所有出现的外卖 - 只要它们列在我的表中 - 在这种情况下为 350。

但我似乎无法让公式起作用。

我使用了这些来源:

https://exceljet.net/excel-functions/excel-sumifs-function

为 SUMIF 函数选择命名范围的特定列

最后得到这个公式:

=SUMIF($B$6:$B$16;Table1[Takeaways];C6:C16)

这个来源:

https://excelchamps.com/blog/sumif-sumifs-or-logic/

最后得到这个公式:

=SUM(SUMIFS(C6:C16;B6:B16;Table1[Takeaways]))

两个公式都返回 0。

但是,对于它们两者,如果我将 Table1[Takeaways] 更改为“McDonalds”,那么它会正确识别范围 1 中每个出现的“McDonalds”一词。

编辑:

我已经更新了上面的公式以匹配下面的图像。

这是包含引用的表:

在此处输入图像描述

此表包含以下数据:

在此处输入图像描述

公式:

单元格 C4(在外卖旁边):=SUMIF($B$6:B$16;Table1[Takeaways];C6:C16)

电池 C5(燃料旁边):=SUM(SUMIFS(C6:C16;B6:B16;Table1[Fuel]))

似乎只有 BP 在公式中被检测到。

当我将公式与单个单元格引用而不是表或使用的范围一起使用时,这是一个输出表:

在此处输入图像描述

公式:

单元格 F4(BP 旁边):=SUMIF($B$6:B$16;"BP";C6:C16)

单元格 F5(加德士旁边):=SUM(SUMIFS(C6:C16;B6:B16;"Caltex"))

F6 单元格(麦当劳旁边):=SUMIF($B$6:B$16;"McDonalds";C6:C16)

F7 单元格(肯德基旁边):=SUM(SUMIFS(C6:C16;B6:B16;"KFC"))

标签: excelvbaexcel-formulaformulasumifs

解决方案


如果我正确理解您要实现的目标,我认为您的设置在概念上是不正确的。

看起来您正在尝试跟踪费用,并且每项费用(或收款人)都被分配到一个类别(“外卖”、“家庭”等)。从关系模型的角度来看,您的第二个表(定义每个费用/收款人的类别)应该只有两列(或变量):Expense NameExpense Category

在此处输入图像描述

您设置的表(“表 2”)使用类别(即,可能的值)作为不同的列(即,变量)。但是只有变量,即“费用类别”,类别本身就是可能的值。

如果您像这样设置它,问题就会改变:您可以使用VLOOKUP()第二个表中的 a 在第一个表中添加一个从属列,该列显示每个收款人的类别(或“费用名称”)。

在此处输入图像描述

然后,您可以汇总与该类别匹配的所有收款人的费用。

在此处输入图像描述

注意:我使用LibreOffice Calc创建了插图,因此可能会有一些细微差别,但逻辑是相同的。


推荐阅读