我正在尝试计算工作表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(那些符合先前的标准并且与之相邻的单元格为非空白)。
谢谢!
答案 0 :(得分:1)
编辑:
根据您在注释中的解释,使用:
=SUMPRODUCT(--(INDIRECT(C1&"!F2:F7")<>""),--(ISNUMBER(FIND("mMMm",INDIRECT(C1&"!A2:A7")))))
这假设当前工作表中的C2具有工作表名称,例如工作表1。该工作表的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
中,生成布尔数组。
两个布尔数组都使用1
转换为它们各自的0
或--
。