具有多个条件和 table 的 COUNTIF 公式

COUNTIF formula with multiple criteria and table

我有四个开发人员的列表(A1="Dev1"、A2="Dev2"、A3="Dev3" 和 A4="Dev3")。

在工作周日历中,我有 5 列,一周中的每一天(C1="Monday"、D1="Tuesday"、E1="Wednesday"、F1= "Thursday, G1="星期五").

如果开发者 Dev3 在星期二休息,我会去 D2 输入:"Dev3"。

在 H2 上,我有以下公式:

=COUNTIF(C2:G2,"*Dev1*")+COUNTIF(C2:G2,"*Dev2*")+COUNTIF(C2:G2,"*Dev3*")+COUNTIF(C2:G2,"*Dev4*")

在上面的场景中,我将 H2 的值为“1”。如果我将 D2 单元格编辑成这样:"Dev3,Dev4",H2 的结果将是“2”。

这个公式很适合我的需要,但我知道有一种更优雅的方法可以使用 A:A 列上的开发人员列表,而不是为每个开发人员创建一个 COUNTIF 元素。

谁能帮我实现列表的使用 A:A 而不是为每个开发人员创建一个 COUNTIF 元素?

sheet's screenshot:

如果在 Dev12[=30 中没有 Dev1 之类的 'false positives',那么 SUM/COUNTIF function array¹ formula or a SUMPRODUCT function 应该能够正确计数=].

'array formula
=SUM(COUNTIF(C2:G2, "*"&A:INDEX(A:A, MATCH("zzz",A:A ))&"*"))
'SUMPRODUCT
=SUMPRODUCT(--ISNUMBER(SEARCH(A:INDEX(A:A, MATCH("zzz",A:A )), C2:G2)))

请注意,在这两种情况下,A 列中的开发人员列表已减少到最小单元格数,

A:INDEX(A:A, MATCH("zzz",A:A ))


¹ 数组公式需要用Ctrl+Shift+Enter↵。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试将整列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将参考范围缩小到最小值。有关详细信息,请参阅 Guidelines and examples of array formulas