跨多个工作表和列具有IF / OR逻辑的Countif标准

时间:2019-08-01 13:18:45

标签: excel excel-formula

我一直在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函数,尽管我从未使用过该函数。

1 个答案:

答案 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)有关,这有点奇怪,我不确定我对状况的解释是否正确。如果没有,请重述您的最后条件,我可以相应地修改答案。

Try1

如我的屏幕截图所示,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。我也想知道是否存在不使用任何辅助列的基于公式的解决方案...? :)