220 多个excel快捷键速查表 适用Windows和Mac , 工作效率提升10倍 免费下载>>>
下载 “excel快捷键速查表” Excel快捷键速查表.zip – 已下载54次 – 3 MB
通用公式
要计算包含特定文本(即包含子字符串)的单元格,同时考虑大小写,您可以使用基于ISNUMBER和FIND函数的公式以及SUMPRODUCT 函数。在所示示例中,E5 包含以下公式,复制如下:
其中“数据”是命名范围B5:B15。结果是 D 列中列出的每个子字符串的区分大小写的计数。
在此示例中,目标是以区分大小写的方式计算作为子字符串出现的代码。函数COUNTIF和COUNTIFS都是计算文本值的好选择,但是这些函数不区分大小写,因此不能用来解决这个问题。解决方案是使用 FIND 函数和ISNUMBER 函数来检查子字符串和SUMPRODUCT 函数来将结果相加。
FIND 函数始终区分大小写,并采用三个参数: find_text、 within_text和start_num。搜寻文字是我们要寻找的文本,within_text中是我们正在寻找的内文。 Start_num是开始查找find_text 的位置。 Start_num默认为 1,因此在这种情况下我们不提供值,因为我们总是希望 FIND 从第一个字符开始。当搜寻文字 被发现里面 within_text中,FIND返回位置找到的文本多项:
=FIND(“ABC”,“10-ABC-101”) // returns 4
当find_text is not found 时,FIND 返回 #VALUE!错误:
这意味着我们可以使用 ISNUMBER 函数将 FIND 的结果转换为 TRUE 和 FALSE 值。任何数字都会导致 TRUE,任何错误都会导致 FALSE:
这里更详细地解释了这个想法。
在所示示例中,我们在 D 列中有四个子字符串,在 B5:B15 中有各种代码,即 命名范围 数据。我们要计算 D5:D8 中的每个子串在 B5:B15 中出现的次数,这个计数需要区分大小写。
复制下来的 E5 中的公式是:
从内到外,FIND 函数用于查找子字符串,如下所示:
FIND 在data 的所有单元格中检查 D5 (“ABC”) 中的值 。因为我们在within_text参数中给 FIND 多个值,所以它返回多个结果。总的来说,FIND 在一个数组中返回 11 个值(B5:B15 中的每个代码一个),如下所示:
每个数字代表 B5:B15 中包含“ABC”的单元格。每个#VALUE!表示 B5:B15 中不包含“ABC”的值。仔细观察,我们可以看到 FIND 在 11 个单元格中的 4 个单元格中找到了“ABC”。该数组直接返回给ISNUMBER 函数,该函数将每个值转换为 TRUE 或 FALSE:
ISNUMBER 返回一个包含 11 个 TRUE 和 FALSE 值的数组:
因为我们要计算结果,所以我们使用双负(–) 将 TRUE 和 FALSE 值转换为 1 和 0:
结果数组如下所示:
像这样使用双重否定是布尔逻辑的一个例子,这是一种处理 TRUE 和 FALSE 值(如 1 和 0)的技术。生成的数组直接传递给 SUMPRODUCT 函数:
只需处理一个数组,SUMPRODUCT 将数组中的所有数字相加并返回最终结果: 4. 向下复制公式时,它返回 D 列中每个子字符串的计数。对数据的引用 不会改变,因为命名范围 自动表现得像一个 绝对引用。
注意:因为 SUMPRODUCT 可以原生处理数组,所以不需要使用 Control+Shift+Enter 来输入这个公式。
220 多个excel快捷键速查表 适用Windows和Mac , 工作效率提升10倍 免费下载>>>