excel - SumIF 使用表/命名范围而不是单个单元格条件
问题描述
我在工作簿中有 2 张工作表(Sheet1、Sheet2)。
工作表 2 包含一个包含 5 列的表(命名为 Table1):
- 外卖
- 家庭
- 衣服
- 汽油
- 杂货
在第一张纸上,我有 2 列:
- 费用名称
- 费用总额
现在,我想做的是:
- 设置费用名称的范围(范围 1)
- 设置费用总计的范围(范围 2)
- 将范围 1 与表中的相应列进行比较,仅将匹配的值相加
例如,在范围 1 (B6:B16) 中:
- 英国石油公司
- 加德士
- 麦当劳
- 肯德基
在范围 2 (C6:C16) 中:
- 300
- 400
- 200
- 150
现在,我要做的就是将外卖(麦当劳、肯德基)的值加起来,并排除任何不符合标准的东西。
所以我的总和将是所有出现的外卖 - 只要它们列在我的表中 - 在这种情况下为 350。
但我似乎无法让公式起作用。
我使用了这些来源:
https://exceljet.net/excel-functions/excel-sumifs-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”一词。
编辑:
我已经更新了上面的公式以匹配下面的图像。
这是包含引用的表:
此表包含以下数据:
公式:
单元格 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"))
解决方案
如果我正确理解您要实现的目标,我认为您的设置在概念上是不正确的。
看起来您正在尝试跟踪费用,并且每项费用(或收款人)都被分配到一个类别(“外卖”、“家庭”等)。从关系模型的角度来看,您的第二个表(定义每个费用/收款人的类别)应该只有两列(或变量):Expense Name和Expense Category。
您设置的表(“表 2”)使用类别(即,可能的值)作为不同的列(即,变量)。但是只有变量,即“费用类别”,类别本身就是可能的值。
如果您像这样设置它,问题就会改变:您可以使用VLOOKUP()
第二个表中的 a 在第一个表中添加一个从属列,该列显示每个收款人的类别(或“费用名称”)。
然后,您可以汇总与该类别匹配的所有收款人的费用。
注意:我使用LibreOffice Calc创建了插图,因此可能会有一些细微差别,但逻辑是相同的。
推荐阅读
- html - 为什么我的整篇文章在 flex 容器中时会溢出它的边界?
- python - Pyspark 动态过滤数据框
- python - 有时即使循环任务结束,循环线程也会卡住而没有结束
- ios - 使用 init 实例化 UIViewController(来自解码器:解码器)
- mysql - 根据条件在 Spark SQL 或 MySQL 中生成新列
- reactjs - 如何在 React Native 中使用 Animated.View 的变换来翻译视图,而不保留原来的空白空间
- sql - SQLSTATE 58004,在 DB2 LUW 中将 JSON_OBJECT() 中的 NULL 与 LISTAGG 一起使用时出现错误“无效的 qnc 分配”
- python - 谷歌云功能的临时文件夹不起作用
- javascript - 如何为特定时间设置计时器
- swift - 将现有子视图移动到另一个子视图上方