excel - SumIF 使用表/命名范围而不是单单元格标准

标签 excel vba excel-formula formula sumifs

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

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

  • 要点
  • 家庭
  • 服装
  • 燃料
  • 杂货

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

  • 费用名称
  • 费用总计

现在,我想做的是:

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

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

  • BP
  • 加德士
  • 麦当劳
  • 肯德基

在范围 2 (C6:C16) 内:

  • 300
  • 400
  • 200
  • 150

现在,我想做的就是将外卖(麦当劳、肯德基)的值相加,并排除任何不符合条件的内容。

因此,我的总数将是所有出现的外卖 - 前提是它们列在我的表格中 - 在本例中为 350。

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

我使用了这些来源:

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

Selecting a Specific Column of a Named Range for the SUMIF Function

最终得到这个公式:

=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”。

编辑:

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

这是包含引用文献的表格:

enter image description here

该表包含数据:

enter image description here

公式:

单元格 C4(“要点”旁边):=SUMIF($B$6:B$16;Table1[Takeaways];C6:C16)

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

公式中似乎仅检测到 BP。

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

enter image description here

公式:

单元格 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(KFC 旁边):=SUM(SUMIFS(C6:C16;B6:B16;"KFC"))

最佳答案

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

您似乎正在尝试跟踪费用,并且每项费用(或收款人)都分配到一个类别(“外卖”、“家庭”等)。来自relational-model从观点来看,您的第二个表(定义每个费用/收款人的类别)应该只有两列(或变量):费用名称费用类别。 p>

enter image description here

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

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

enter image description here

然后,您可以对与该类别匹配的所有收款人的费用进行求和。

enter image description here

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

关于excel - SumIF 使用表/命名范围而不是单单元格标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54941221/

相关文章:

excel - 基于数组复制整个列并将其粘贴到同一工作簿中的工作表中

vba - 如何在异常的 Excel 矩阵中查找

Excel VBA 程序太大用户窗体

python - 我如何告诉 python 整个值是一个字符串?因为我的Excel公式中有撇号

excel - 如何在单元格的一侧应用粗边框

ms-access - 使用先前的条目计算 MS Access vba

excel - 如何删除具有 4 个名称的单元格的第三个名称

excel - 返回下一个包含值范围的所有单元格

excel - 当单元格中的新数据发生更改时,将一行数据移到顶部

java - 使用 Apache POI 4.1.1 从 excel 文件中读取值时出错