公式中右括号前的反斜杠:=ISNUMBER(A1\) 是什么意思?

公式中右括号前的反斜杠:=ISNUMBER(A1\) 是什么意思?

今天,我在写 时打错了=ISNUMBER(A2\)。我以为 Excel 会抱怨,但事实并非如此——相反,它计算公式时好像没有反斜杠一样。这对某些函数有效,但对其他函数无效。=COUNTIF(B:B,A2\)有效,但=LEN(A2\)会引发错误。它似乎只适用于某些函数的范围引用或名称后跟右括号。

为什么 Excel 在此处没有抛出错误?是否有我不知道的功能,或者此符号有其他用途?

答案1

将@Darren Bartrup-Cook 的评论转换为答案,A2\会出现#NAME?错误,但ISNUMBER()可以处理#NAME?错误,结果恰好与我预期的相同。我从未真正检查过我的公式是否像我想象的那样依赖于单元格 A2。

答案2

在 Excel 中,反斜杠是几个转义字符之一;特别是,它用于自定义格式字符串中以生成文字。

另一个涉及使用反斜杠的函数具体来说在公式输入范围内的可能是 Excel 的name 管理功能,其中反斜杠是合法字符(事实上,Excel 公式无法识别它们)。这让我产生了以下猜想:

  • 当输入到公式中时,超出自定义数据格式或转义序列的语法范围……
    • Excel 不识别“\”作为特殊字符(仅作为转义字符)。
    • Excel 仅将“\”识别为 的一部分name
    • 因此,在所有使用“\”的情况下,Excel 都会将输入解释为name引用。

为了支持我的猜想,你可以观察你引用的每个公式的公式评估:=ISNUMBER(A2\) =COUNTIF(B:B,A2\) =LEN(A2\)。请注意,在评估时,所有三个功能导致#NAME?错误

现在,回答 OP 的另一部分:为什么这些函数似乎以不一致的方式处理错误?在这里,我再次提出个人猜想:我相信它与函数本身有关,或者更具体地说,与 Excel 函数的分类分组有关。

在 Excel 中具体来说,该LEN()功能受控于TEXT函数类别,即,它被视为字符串操作或查询函数. 当此类函数发生错误时,它只能抛出异常(在大多数标准用例中)。

另一方面,和ISNUMBER()COUNTIF()受到LOGIC函数类别,即它们条件求值函数,也涉及布尔函数。现在,碰巧的是,在几种主要的编程语言(例如 Python 等)中,有一种特定的行为惯例是普遍观察到的:布尔值FALSE可以表示为数值0,就像布尔值TRUE可以表示为数值一样1。这据说是受到二进制表示的性质的影响,因为 TRUE 或 FALSE 表示为 1 或 0,但在ISNUMBER(),预期输出是纯布尔值,而预期输出COUNTIF()数字,也可以是布尔值(免责声明:后一个结论纯粹基于我自己的推测)。为了支持我的推测,如果您在单元格中输入一个数字B1,然后将单元格命名为B1“A2\”,请注意所有三个函数都会立即更改其输出:

截屏

相关内容