excel - 当至少一行满足条件时对所有行求和
问题描述
我有一个数据库如下:
当至少一个组的“包含”标志为 Y 时,我在尝试按组对所有数量求和时遇到问题;也就是说:如果第 3 组中的至少一行有 Y ,则将第 3 组中的所有行相加,不管其余的是否不包括在内。
输出应该是这样的:
谢谢!
解决方案
您将需要使用数组函数来解决这个问题。要输入和排列函数,请像往常一样键入一个函数,然后按 Ctrl+Shift+Enter 而不是 Enter。(Apple 键盘不同,但我没有 Apple。)
我将解释如何将函数组合在一起,然后最后将它们组合在一起。
首先,我想要一组组编号,其中包含的列中至少有一个“Y”。该数组由IF(B2:B14="Y",A2:A14,0)
. 结果将{0,0,0,0,0,0,3,...etc}
在示例案例中。
MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0)
接下来,我使用该函数标记在组编号列表中具有条目的每个组行。
由于它使用完全匹配,因此在没有匹配时会产生错误。ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0))
没有匹配时给我一个真,有匹配时给我一个假,所以我否定它。NOT(ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0)))
另一个 IF 将其转换为 1 或 0。
IF(NOT(ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0))),1,0)
最后,我使用 SUMPRODUCT 将其与 Quantity 结合在一起:
=SUMPRODUCT(C2:C14,IF(NOT(ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0))),1,0))
同样,请记住使用 Ctrl+Shift+Enter 来完成这项工作。
在 Excel 2013 中测试,它工作正常。
推荐阅读
- linux - CygWin 配置脚本发现错误的 Python 版本
- c++ - 为 VScode 配置 CMake raylib-cpp
- android - 如何在 android studio 中正确实现 ProGuard?
- python - Django - 尝试更新模型对象时出现 ValueError
- c# - 如何使用 aync 文件操作在程序关闭时保存程序状态
- c - 将EXE注入另一个进程的C问题
- python - Python 不编程不结束
- bash - 在字符串替换期间使用 sed 替换变量
- git-bash - 为什么我不能在 Git Bash 中使用“更多”命令?
- bash - 在 Bash 中用另一个文件内容替换文件内容的最有效(就速度和行数而言)方法是什么?