Excel ISNUMBER函数与公式实例

  • Share This
Michael Brown

该教程解释了什么是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列中的数值来突出显示行。 更准确地说,我们将突出显示包含 "红色 "一词的项目。 下面是方法。

    1. 选择所有的数据行(本例中为A2:C6)或只选择你想突出显示的单元格的那一列。
    2. 关于 首页 选项卡,在 风格 组,点击 新规则 > 使用一个公式来决定哪些单元格需要格式化 .
    3. 格式化该公式为真的值 框,输入以下公式(请注意,列坐标被$符号锁定)。

      =ISNUMBER(SEARCH("red", $A2))

    4. 点击 格式 按钮并选择你想要的格式。
    5. 点击两次 "确定"。

    如果你对Excel条件格式化没有什么经验,你可以在这个教程中找到详细的步骤和截图:如何创建一个基于公式的条件格式化规则。

    结果,所有红色的项目都被突出显示。

    与其在条件格式化规则中 "硬编码 "颜色,你可以在一个预定义的单元格中输入它,例如E2,并在你的公式中引用该单元格(请注意单元格的绝对引用$E$2)。 此外,你需要检查输入单元格是否为空。

    =and(isnumber(search($e$2, $a2)), $e$2"" )

    结果,你将得到一个更灵活的规则,根据你在E2中的输入突出显示行。

    这就是如何在Excel中使用ISNUMBER函数。 感谢你的阅读,希望下周能在我们的博客上见到你

    可用的下载

    Excel ISNUMBER公式实例

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.