COUNTIFS 列 A 或 B 作为范围

时间:2021-03-02 09:38:21

标签: excel excel-formula

我正在努力解决这里的逻辑.. COUNTIFS 与 OR 条件的条件相当简单:

=SUM(COUNTIFS(range,criteria range1,{criteria1,criteria1.1},criteria range2,criteria2))

不过..如果我需要在范围本身上有一个 OR 条件怎么办?

我有两列包含“尝试 1”和“尝试 2”的周数,然后是状态,所以我的公式如下所示:

=SUM(COUNTIFS(raw[week1],refToWeekNumberCell,raw[status],{"Success","Try again","Fail","Invalid"}))

...所以我想计算在任何给定的一周我有多少“无效”或“有效”(所有其他状态)。如果状态为“无效”,则只会进行一次尝试。因此,检查“第 1 周”列就足够了。但是,如果我想检查“有效尝试”的次数,则需要同时检查“Week1”和“Week2”列。这可以以某种方式完成吗?我是否需要辅助栏,如果需要,我该如何制定该栏?

示例数据:

原始表:

<头>
Week1 Week2 状态
7 7 成功
7 - 成功
7 - 无效
7 8 成功
7 8 成功
8 8 成功

表格在预览中看起来不错,但在发布时不好看,所以: enter image description here

预期结果:第 8 周的计数在“第 1 周”或“第 2 周”列中都不是无效的。由于 Invalid 始终只有“第 1 周”下的任何内容,因此这很容易。但是在第 5 行,逻辑失败,因为我只能使用一列作为范围..

2 个答案:

答案 0 :(得分:2)

如果它不会比两列复杂得多,您可以使用:

=SUM(IF((A2:A7=8)+(B2:B7=8)>=1,1,0)*(C2:C7<>"Invalid"))

“+”通常用于在此类布尔结构中充当某种“或”验证。但是,如果您有更多列,则 storage duration 变体更易于维护。

=SUM(--(MMULT((A2:B7=8)*(C2:C7<>"Invalid"),{1,1})>0))

答案 1 :(得分:1)

当您使用 Excel365 时,请尝试-

=COUNTA(FILTER(C2:C7,MMULT((A2:B7=8)*(C2:C7<>"Invalid"),SEQUENCE(COLUMNS(A2:B2)))))

enter image description here

相关问题