excel - 仅计算满足区分大小写标准的行并且如果相邻行不为空
问题描述
我正在尝试计算表 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(那些符合前面的标准并且旁边有一个非空白单元格)。
谢谢!
解决方案
编辑:
根据您在评论中的解释,使用:
=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
生成布尔数组中。
两个布尔数组都转换为各自的1
或0
使用--
.
推荐阅读
- python - 在 python 中使用 PhantomJS 时网页尚未完全加载时截取屏幕截图
- python-3.x - I am unable to fetch return value from a function in python
- c# - "There is no row at position 0 how to fix it"
- python - CSV 到 Python 字典
- c# - 在 C# 中有什么方法可以限制 int 变量的范围吗?
- java - 找不到文件 (getResource)
- android - 我正在做一些计算,但无法将字符串解析为 int 甚至是 float
- php - 如何将表单的 $id 传递给另一个表单
- mysql - Rails:将外键添加到多列的主键
- javascript - 如何从 CSS 获取链接文本到字符串对象?