公式开头的一对减号(= – – )
我偶然发现这个公式:
=--ISNUMBER(IFERROR(SEARCH($B$3,E3,1),""))
这个公式的开头是什么意思?
我似乎无法find答案。
ISNUMBER()函数返回布尔值TRUE
或FALSE
。
通常这个序列被称为双重一元运算符。 这不是真的,因为Excel没有这样的操作符,但它等于相同的事情。
它所做的是将布尔值强制转换为数字等值。 在Excel工作表公式中,这意味着1
或0
。
这个序列实际上只是两个减号。 下面是它的工作原理。 如果ISNUMBER()的布尔结果是TRUE,那么第一个负值是-1
。 第二个负面变成+1
。 当然,如果布尔值已经为零,那么负值是零,负值也是零。
布尔值可以来自任何地方; ISNUMBER()没有什么特别之处。
有时用户宁愿报告这些数值而不是布尔值,有时候一些更复杂的公式实际上需要数字等值才能正常工作。
这种技术在Excel公式中非常常见。
你会看到它在数组公式中经常使用,它可以把整个布尔数组变成1和0的数组,就像在这里使用的一样简洁。
最初的等号是所有公式应该如何开始的。
在你的问题中的公式不是如何使用这种技术的好例子。 当IFERROR()被设置为返回零长度string时,永远不会有任何理由使用它。 从公式中删除IFERROR()函数会将其设置为直线。