公式开头的一对减号(= – – )

我偶然发现这个公式:

=--ISNUMBER(IFERROR(SEARCH($B$3,E3,1),"")) 

这个公式的开头是什么意思?

我似乎无法find答案。

ISNUMBER()函数返回布尔值TRUEFALSE

通常这个序列被称为双重一元运算符。 这不是真的,因为Excel没有这样的操作符,但它等于相同的事情。

它所做的是将布尔值强制转换为数字等值。 在Excel工作表公式中,这意味着10

这个序列实际上只是两个减号。 下面是它的工作原理。 如果ISNUMBER()的布尔结果是TRUE,那么第一个负值是-1 。 第二个负面变成+1 。 当然,如果布尔值已经为零,那么负值是零,负值也是零。

布尔值可以来自任何地方; ISNUMBER()没有什么特别之处。

有时用户宁愿报告这些数值而不是布尔值,有时候一些更复杂的公式实际上需要数字等值才能正常工作。

这种技术在Excel公式中非常常见。

你会看到它在数组公式中经常使用,它可以把整个布尔数组变成1和0的数组,就像在这里使用的一样简洁。

最初的等号是所有公式应该如何开始的。

在你的问题中的公式不是如何使用这种技术的好例子。 当IFERROR()被设置为返回零长度string时,永远不会有任何理由使用它。 从公式中删除IFERROR()函数会将其设置为直线。