Table of contents
该教程解释了什么是Excel中的ISNUMBER,并提供了基本和高级用途的例子。
在Excel中,ISNUMBER函数的概念非常简单--它只是检查一个给定值是否是数字。 这里重要的一点是,该函数的实际用途远远超出了它的基本概念,特别是当它与其他函数在更大的公式中结合时。
Excel的ISNUMBER函数
Excel中的ISNUMBER函数检查一个单元格是否包含一个数值。 它属于IS函数组。
该功能在Office 365、Excel 2019、Excel 2016、Excel 2013、Excel 2010、Excel 2007及以下版本的Excel中均可使用。
ISNUMBER语法只需要一个参数。
=ISNUMBER(value)
在哪里? 价值 是你要测试的值,通常,它由一个单元格引用表示,但你也可以提供一个真实的值或在ISNUMBER中嵌套另一个函数来检查结果。
如果 价值 对于其他任何东西(文本值、错误、空白),ISNUMBER都返回 "空"。
作为一个例子,让我们测试A2至A6单元格中的数值,我们会发现前3个数值是数字,后两个是文本。
关于Excel中的ISNUMBER函数,你应该知道的两件事
这里有几个有趣的点需要注意。
- 在Excel内部表示。 枣庄 和 时间 是数字值,所以ISNUMBER公式对它们返回TRUE(请看上面截图中的B3和B4)。
- 对于以文本形式存储的数字,ISNUMBER函数返回FALSE(见这个例子)。
Excel ISNUMBER公式实例
下面的例子展示了ISNUMBER在Excel中的一些常见的和一些非琐碎的用途。
检查一个值是否是数字
当你的工作表中有一堆数值,而你想知道哪些是数字时,ISNUMBER就是要使用的正确函数。
在这个例子中,第一个值在A2,所以我们用下面的公式来检查它,然后根据需要向下拖动公式到许多单元格。
=ISNUMBER(A2)
请注意,尽管所有的值看起来都是数字,但ISNUMBER公式在A4和A5单元格中返回了FALSE,这意味着这些值是 数字字符串 这可能有不同的原因,例如前导零,前面的撇号等。 因此,如果你的数值不能正确计算,你首先要检查它们在Excel中是否真的是数字,如果需要,再将文本转换为数字。
Excel的ISNUMBER搜索公式
除了识别数字,Excel的ISNUMBER函数还可以检查一个单元格是否包含特定的文本作为内容的一部分。 为此,将ISNUMBER与搜索函数一起使用。
在一般的形式下,该公式看起来如下。
isnumber(search( 子串 , 电池 ))在哪里? 子串 是你想找到的文本。
作为一个例子,让我们检查一下A3中的字符串是否包含一种特定的颜色,例如红色。
=ISNUMBER(SEARCH("red", A3))
这个公式对单个单元格很有效,但由于我们的示例表(请见下文)包含三种不同的颜色,为每一种颜色编写单独的公式将是浪费时间。 相反,我们将参考包含感兴趣的颜色的单元格(B2)。
=isnumber(search(b$2, $a3))
为了使公式正确地向下和向右复制,请确保用$符号锁定以下坐标。
- 在 子串 列的引用是相对的,因为我们希望它能为每一列进行调整,即当公式被复制到C3时,子串的引用将变为C$2。
- 在 源细胞 参考,锁定该列($A3),以便所有公式都能检查A列的值。
下面的截图显示了结果。
ISNUMBER FIND - 区分大小写的公式
由于搜索功能是 不区分大小写 ,上述公式不区分大写和小写字符。 如果你正在寻找一个大小写敏感的公式,请使用FIND函数而不是SEARCH。
ISNUMBER(FIND( 子串 , 电池 ))对于我们的样本数据集,该公式将采取这种形式。
=isnumber(find(b$2, $a3))
这个公式如何运作
该公式的逻辑相当明显,也很容易理解。
- SEARCH / FIND函数在指定的单元格中寻找子串。 如果找到子串,则返回第一个字符的位置。 如果没有找到子串,该函数会产生一个#VALUE!错误。
- ISNUMBER函数从这里开始处理数字位置。 因此,如果找到了子串并且它的位置以数字形式返回,ISNUMBER输出TRUE。 如果没有找到子串并且发生#VALUE!错误,ISNUMBER输出FALSE。
IF ISNUMBER公式
如果你的目的是获得一个公式,输出TRUE或FALSE以外的东西,请使用ISNUMBER和IF函数。
例1.单元格包含哪些文本
进一步看前面的例子,假设你想用 "x "标记每个项目的颜色,如下表所示。
要做到这一点,只需将ISNUMBER SEARCH公式包入IF语句。
=IF(ISNUMBER(SEARCH(B$2, $A3)), "x", "" )
如果ISNUMBER返回TRUE,IF函数输出 "x"(或任何其他你提供给 value_if_true 如果ISNUMBER返回FALSE,IF函数将输出一个空字符串("")。
例2.单元格中的第一个字符是数字或文本
想象一下,你正在处理一个字母数字字符串的列表,你想知道一个字符串的第一个字符是数字还是字母。
要建立这样一个公式,我们你需要4个不同的函数。
- LEFT函数从一个字符串的开头提取第一个字符,例如在A2单元格。
LEFT(A2, 1)
- 由于LEFT属于文本函数的范畴,其结果总是一个文本字符串,即使它只包含数字。 因此,在检查提取的字符之前,我们需要尝试将其转换为数字。 为此,可以使用VALUE函数或双单数运算符。
值(left(a2, 1))
或(--left(a2, 1))
- ISNUMBER函数确定提取的字符是否为数字。
isnumber(value(left(a2, 1)))
- 基于ISNUMBER结果(TRUE或FALSE),IF函数分别返回 "数字 "或 "字母"。
假设我们在A2中测试一个字符串,完整的公式是这样的。
=IF(ISNUMBER(VALUE(LEFT(A2, 1)), "数字", "字母")
或
=IF(ISNUMBER(--LEFT(A2, 1)), "数字", "字母")
ISNUMBER函数在以下方面也很有用 提取数字 下面是一个例子:从一个字符串的任何位置获取数字。
检查一个值是否不是数字
尽管Microsoft Excel有一个特殊的函数,ISNONTEXT,来确定一个单元格的值是否不是文本,但对数字却没有一个类似的函数。
一个简单的解决方案是将ISNUMBER与返回相反逻辑值的NOT结合使用。 换句话说,当ISNUMBER返回TRUE时,NOT将其转换为FALSE,反之亦然。
要看到它的作用,请观察以下公式的结果。
=not(isnumber(a2))
另一种方法是同时使用IF和ISNUMBER函数。
=IF(ISNUMBER(A2), "", "不是数字")
如果A2是数字,公式不返回任何东西(一个空字符串)。 如果A2不是数字,公式会预先说明:"不是数字"。
如果你想用数字进行一些计算,那么把一个方程式或其他公式放在 value_if_true 参数,而不是一个空字符串。 例如,下面的公式会将数字乘以10,对于非数字值,会产生 "非数字"。
=IF(ISNUMBER(A2), A2*10, "不是数字" )
检查一个范围是否包含任何数字
当你想测试整个范围的数字时,可以使用ISNUMBER函数与SUMPRODUCT相结合,像这样。
总产品(--isnumber( 范围 ))>0 SUMPRODUCT(ISNUMBER( 范围 )*1)>0例如,要找出A2:A5区域是否包含任何数字值,公式如下。
=SUMPRODUCT(--ISNUMBER(A2:A5))>0
=SUMPRODUCT(ISNUMBER(A2:A5)*1)>0
如果你想输出 "是 "和 "否",而不是 "真 "和 "假",可以利用IF语句作为上述公式的 "包装"。 例如。
=IF(SUMPRODUCT(--ISNUMBER(A2:A5))>0, "是", "否")
这个公式如何运作
在公式的核心部分,ISNUMBER函数对指定区域的每个单元格进行评估,例如B2:B5,对数字返回TRUE,对其他东西返回FALSE。 由于该区域包含4个单元格,数组有4个元素。
{true;false;false;false}
乘法运算或双单数(--)将TRUE和FALSE分别胁迫成1和0。
{1;0;0;0}
SUMPRODUCT函数将数组中的元素相加,如果结果大于0,说明至少有一个数字在这个范围内。 所以,你用">0 "来获得TRUE或FALSE的最终结果。
条件格式化中的ISNUMBER可以突出显示包含某些文本的单元格
如果你想突出显示包含特定文本的单元格或整行,可以根据ISNUMBER SEARCH(不区分大小写)或ISNUMBER FIND(区分大小写)公式创建一个条件格式化规则。
在这个例子中,我们将根据A列中的数值来突出显示行。 更准确地说,我们将突出显示包含 "红色 "一词的项目。 下面是方法。
- 选择所有的数据行(本例中为A2:C6)或只选择你想突出显示的单元格的那一列。
- 关于 首页 选项卡,在 风格 组,点击 新规则 > 使用一个公式来决定哪些单元格需要格式化 .
- 在 格式化该公式为真的值 框,输入以下公式(请注意,列坐标被$符号锁定)。
=ISNUMBER(SEARCH("red", $A2))
- 点击 格式 按钮并选择你想要的格式。
- 点击两次 "确定"。
如果你对Excel条件格式化没有什么经验,你可以在这个教程中找到详细的步骤和截图:如何创建一个基于公式的条件格式化规则。
结果,所有红色的项目都被突出显示。
与其在条件格式化规则中 "硬编码 "颜色,你可以在一个预定义的单元格中输入它,例如E2,并在你的公式中引用该单元格(请注意单元格的绝对引用$E$2)。 此外,你需要检查输入单元格是否为空。
=and(isnumber(search($e$2, $a2)), $e$2"" )
结果,你将得到一个更灵活的规则,根据你在E2中的输入突出显示行。
这就是如何在Excel中使用ISNUMBER函数。 感谢你的阅读,希望下周能在我们的博客上见到你
可用的下载
Excel ISNUMBER公式实例