Excel formula 在没有脚本[Excel]的公式中使用单元格值作为逻辑运算符

Excel formula 在没有脚本[Excel]的公式中使用单元格值作为逻辑运算符,excel-formula,Excel Formula,我想使用逻辑运算符(>,,≥, 我能想到的唯一方法是为每种类型的比较运算符编码公式。例如,如果您希望在以下公式中同时支持: IF((A1-A2) OP A4, 1, 0) 然后,您可以包含小于和大于的公式,并根据A3选择一个公式: IF(A3="<", IF((A1-A2) < A4, 1, 0), IF(A3=">", IF((A1-A2) > A4, 1, 0), -1)) IF(A3=”,IF((A1-A2)>A4,1,0),-1)) 在上面的公式中,我返回-

我想使用逻辑运算符(>,,≥, 我能想到的唯一方法是为每种类型的比较运算符编码公式。例如,如果您希望在以下公式中同时支持

IF((A1-A2) OP A4, 1, 0)
然后,您可以包含小于和大于的公式,并根据
A3
选择一个公式:

IF(A3="<", IF((A1-A2) < A4, 1, 0), IF(A3=">", IF((A1-A2) > A4, 1, 0), -1))
IF(A3=”,IF((A1-A2)>A4,1,0),-1))

在上面的公式中,我返回
-1
应该
A3
包含我们没有预料到的运算符(在这个简单的示例中不是

您可以使用下面的公式:

=NOT(ISERROR(FIND(A3, MID("<≤≥>", 2 + SIGN((A1-A2) - A4), 2))))
=NOT(iError(FIND(A3,MID(“),2+符号((A1-A2)-A4),2)))
因此,一般来说,你的公式如下:

=NOT(ISERROR(FIND(#OPERATOR#, MID("<≤≥>", 2 + SIGN(#OP1# - #OP2#), 2))))
=NOT(ISERROR(FIND(#OPERATOR#,MID(“),2+符号(#OP1#-#OP2#),2)))
这样做的好处是,您需要指定只比较一次的数字(这样就可以对这些数字使用任意长公式,而不用担心重复)


这是通过将符号映射到数字1、2、3、4,然后将其与初始数字差异的符号进行比较来实现的。

,HTH。感谢链接,但两者都使用脚本,正如标题中所述,这是我想要避免的。这不是最好的解决方案,但肯定是可行的。谢谢:)作为说明,你写了两次A4而不是A3,我的Excel抱怨我是否使用了“and,->,所以我需要使用”and;
=if(A3=“”;if((A1-A2)>A4;1;0);-1))
=NOT(ISERROR(FIND(#OPERATOR#, MID("<≤≥>", 2 + SIGN(#OP1# - #OP2#), 2))))