我一直在SUMPRODUCT和COUNTIFS公式之间挣扎,因为我的数据中有很多特定的依赖项。想知道是否有人可以对此问题提供更多的启示。
尝试了SUMPRODUCT和COUNTIFS,它们可以基于1组进行计算,但是我需要包括其他if / or语句。
我有以下内容:
| ID | Size | Dead/Alive | Duration | Days | Pass/Fil | Reason |
|----|---------|------------|-----------|------|----------|----------|
| 1 | Full | Dead | Permanent | 125 | Pass | Comments |
| 2 | Partial | Alive | Permanent | 500 | Pass | |
| 3 | Other | Dead | Temporary | 180 | Fail | Comments |
| 4 | No | Dead | Temporary | 225 | Fail | Comments |
| 5 | Yes | Alive | Permanent | 200 | Pass | |
具有以下规则:
仅在以下情况下计算ID / ROW:
1)A列中的值=全部,部分或其他
或...
2)A列中的值=无AND B列中的值=无效
或...
3)如果C列中的值=永久AND列中的值=> = 100或<= 200
OR
4)如果C列中的值=临时AND列中的值=通过,则FAND列中的Fail AND不为空
根据我的计算,总数应为5,但这只是我的全部数据的一小部分。只是不确定如何在Excel中使用Sumproduct,Countifs甚至有人建议使用Lookup函数,尽管我从未使用过该函数。
答案 0 :(得分:0)
鉴于您有许多不同的条件,我必须将其一一分解,并创建一些帮助器列以说明每个条件。
在我的解决方案中,我创建了10个帮助器列,如下所示,并且我添加了一些示例数据(ID 6至29)来测试该解决方案。
我在解决方案中还命名了 7个条件:
Cond_1 在A列中的值=全部,部分或其他
Cond_2 :A列中的值=无AND B列中的值=无效
Cond_3A C列中的值=永久
Cond_3B D列中的值> = 100
Cond_3C D列中的值<= 200
Cond_3A, Cond_3B and Cond_3C must be TRUE at the same time
Cond_4 C列中的值= E列中的临时AND值=通过
Cond_5A C列中的值= E列中的临时AND值=失败
Cond_5B 列F不为空白(我没有为此条件指定名称)
Cond_5A and Cond_5B must be TRUE at the same time
请注意,我的Cond_4,Cond_5A和Cond_5B都与您的原始状况 4)有关,这有点奇怪,我不确定我对状况的解释是否正确。如果没有,请重述您的最后条件,我可以相应地修改答案。
如我的屏幕截图所示,I2到Q2中的公式列在U列中。我只使用了 MAX , AND , SUM , = ,&和/或 <> 来解释每个条件。请注意,有些公式是 Array Formula (数组公式),因此您需要按Ctrl+Shift+Enter
使其起作用。
要计数列只是在询问前9列的SUM是否大于1,这意味着至少满足一个条件。如果是,则返回1,否则返回0。
然后,您只需要计算要计数列的总数。在我的示例中为 22 。我已突出显示了不符合任何给定条件的条目。
您只能使用一个助手列来捕获一个公式中的所有条件,但是我不建议您这样做,因为它太长了,以至于将来不易理解和修改。
{=--(SUM(MAX(--(A2=Cond_1)),MAX(--(A2&B2=Cond_2)),--(SUM(--(C2=Cond_3A),--(AND(D2>=Cond_3B,D2<=Cond_3C)))=2),MAX(--((C2&E2)=Cond_4)),--(SUM(MAX(--((C2&E2)=Cond_5)),--(F2<>""))=2))>0)}
Ps。我也想知道是否存在不使用任何辅助列的基于公式的解决方案...? :)