使用带有Countif的通配符和单元格中的搜索条件

时间:2017-03-13 16:54:43

标签: excel count wildcard countif

我有一组数据单元格B1:C5,其中Tests是字母数字字符及其旁边数据的混合。我正在尝试为细胞B8:C10创建一个公式,它将解析A2:C5中的数据,并使用CountIfS函数计算与样本和值1匹配的细胞数。一些数据会出现问题其测试名称包括多个样本的平均值。我希望对这些测试中的每个标本进行计数。以下是Excel工作表的可视化:

Input
+----+------------+---------+---------+
|    |     A      |    B    |    C    |
+----+------------+---------+---------+
|  1 | Test       | Value 1 | Value 2 |
|  2 | 1          | TRUE    | ...     |
|  3 | 14A        | FALSE   | ...     |
|  4 | 1, 14A Avg | FALSE   | ...     |
|  5 | 1, 53 Avg  | TRUE    | ...     |
+----+------------+---------+---------+

Current Output
+----+------------+---------+---------+
|    |     A      |    B    |    C    |
+----+------------+---------+---------+
|  7 | Specimen   | TRUE    | FALSE   |
|  8 | 1          | 1       | 2       |
|  9 | 14A        | 0       | 2       |
| 10 | 53         | 1       | 0       |
+----+------------+---------+---------+

Desired Output
+----+------------+---------+---------+
|    |     A      |    B    |    C    |
+----+------------+---------+---------+
|  7 | Specimen   | TRUE    | FALSE   |
|  8 | 1          | 2       | 1       |
|  9 | 14A        | 0       | 2       |
| 10 | 53         | 1       | 0       |
+----+------------+---------+---------+

我一直在单元格B8中使用以下公式:(忽略$以便于阅读)

=COUNTIFS(A1:A5, "*" & A8 & "*", B1:B5, B7)

我遇到的问题是公式如何评估Specimen 1;它没有计算第2行中的测试1,它正在计算第3行中的测试14A。我找到了一个解决方案,其中包括在Avg测试中每个样本的末尾放置一个逗号,并使用以下公式:

=COUNTIFS(A2:A5, A8, B2:B5, B7) + COUNTIFS(A2:A5, "*" & A8 & ",*", B2:B5, B7)

使用这种方法的问题是我必须更改平均测试的名称(我想避免的解决方案)以及我将要评估的所有其他值,它将使公式非常漫长而笨拙。我想知道是否有一种更简单的方法可以将上面的两个CountIfS组合成一个而不需要操作测试或标本的名称。

1 个答案:

答案 0 :(得分:0)

您需要使用SUMPRODUCT()和其他一些公式来解析数据:

=SUMPRODUCT((ISNUMBER(SEARCH(" " & $A8 & " "," " & SUBSTITUTE($A$2:$A$5,","," ") & " ")))*($B$2:$B$5=B$7))

通过将,更改为空格并在字符串的前后添加空格,我们还可以将搜索值括在空格中,以确保我们正在查找完整条目而不是部分。

然后,每次在每个字符串中找到完整值时,SUMPRODUCT会计数,而值1等于标题。

enter image description here