首页 > 解决方案 > 仅计算满足区分大小写标准的行并且如果相邻行不为空

问题描述

我正在尝试计算表 1 的 A 列中包含区分大小写的数据的单元格,并且如果同一张表中的 B 列不为空白。目前,我可以使用以下公式计算区分大小写的单元格:

=IFERROR(IF($C2="","",COUNT(INDEX(FIND("mMMm",Sheet1!$A:$A),))),"-")

下一个要合并的标准(除上述标准外)将仅计算 B 列中相邻单元格不为空白的值。到目前为止,我已经尝试合并一个MATCH(<>"",Sheet1!B:B,0)*和一个 IF 语句来实现这一点,但无济于事。我也尝试将它作为数组公式返回,但仍然没有。我可以请你指导一下吗?我不确定我所做的是否真的符合我想要做的,但我很想知道并学习一个可以完成这项工作的函数。谢谢!

这里有一些样本数据可以更好地理解这个问题:

Column A       Column B
12mMMmqq          1
sdmMmMqqq         1
ssmMMmree         1
wemMMmm12
mMMm11111
mMmMmM1121        1

所以在上面的示例数据中,我当前的公式将返回计数 4(包含区分大小写的“mMMm”的单元格)。但是,我希望达到的计数为 2(那些符合前面的标准并且旁边有一个非空白单元格)。

谢谢!

标签: excel

解决方案


编辑:

根据您在评论中的解释,使用:

=SUMPRODUCT(--(INDIRECT(C1&"!F2:F7")<>""),--(ISNUMBER(FIND("mMMm",INDIRECT(C1&"!A2:A7")))))

这假定当前工作表中的 C2 具有工作表名称,例如 Sheet1。该表的 A 列和 F 列是感兴趣的。您将调整范围以确保它们的长度相同


您可以使用

=SUMPRODUCT(--(B2:B7<>""),--(ISNUMBER(FIND("mMMm",A2:A7,1))))

如果在另一个工作表中,则在范围前面添加工作表名称,例如

=SUMPRODUCT(--(B2:B7<>""),--(ISNUMBER(FIND("mMMm",Sheet1!A2:A7,1))))

如果想要 B 列中的空白,请使用=""

相同的工作表示例:

同一张

笔记:

Find, 不像Search是区分大小写的。

您可以使用SUMPRODUCT来处理这两个数组。数组 1 是 B 列的布尔数组<> "",数组 2 是 A 列,其中 Find 找到了“mMMm”,因此返回了一个数字。这包含在ISNUMBER生成布尔数组中。

两个布尔数组都转换为各自的10使用--.



推荐阅读