如果单元格A1的值为“600 T”,是否可以根据数字应用小于/介于/大于条件格式的数字,基本上忽略单元格中可能包含的任何文本?
答案 0 :(得分:1)
=VALUE(LEFT(A1,3))<=X
=VALUE(LEFT(A1,3))>=X
检查A1的前3个字符(如果是数字)是否小于或大于X.
=IF(AND(VALUE(LEFT(A1,3))>=X,VALUE(LEFT(A1,3))<=Y),TRUE,FALSE)
检查A1的前3个字符(如果是数字)是否在X和Y之间。
可以使用MID或RIGHT来检查字符串中间或末尾的数字。
答案 1 :(得分:1)
AND
之类的布尔运算符已经返回TRUE或FALSE。
所以这个:
=IF(AND(VALUE(LEFT(A1,3))>=X,VALUE(LEFT(A1,3))<=Y),TRUE,FALSE)
......相当于:
=AND(VALUE(LEFT(A1,3))>=X,VALUE(LEFT(A1,3))<=Y)
<小时/> 您可以通过乘以1将字符串转换为数字。
所以这个:
=VALUE(LEFT(A1,3))
......相当于:
=LEFT(A1,3)*1
<小时/> 使用这些技术可以减少您的公式:
=IF(AND(VALUE(LEFT(A1,3))>=X,VALUE(LEFT(A1,3))<=Y),TRUE,FALSE)
......对此:
=AND(LEFT(A1,3)*1>=X,LEFT(A1,3)*1<=Y)
<小时/> 由于您的数字也可能有4位数,因此您可以返回数字部分,如下所示:
=LEFT(A1,FIND(" ",A1))
这个确实返回空格:“600”......但这不是问题,因为你将它转换为数字。
所以你的最终公式看起来像这样:
=AND(LEFT(A1,FIND(" ",A1))*1>=X,LEFT(A1,FIND(" ",A1))*1<=Y)
<强>更新强>
如果您的数字不包含文字,则上述公式将因#VALUE!而失败,因为FIND
正在寻找不存在的空格。
你可以通过在FIND
的第二个参数附加一个空格来解决这个问题。所以你真正的最终公式将是这样的:
=AND(LEFT(A1,FIND(" ",A1&" "))*1>=X,LEFT(A1,FIND(" ",A1&" "))*1<=Y)