基于包含文本和数字的单元格中的数字进行条件格式化
如果单元格A1的值为“600 T”,那么是否有一种方法可以根据数字应用小于/大于/大于条件格式的数字,实际上忽略了单元格中可能存在的任何文本?
布尔运算符(如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)
您可以将string转换为数字乘以1。
所以这:
=VALUE(LEFT(A1,3))
…相当于:
=LEFT(A1,3)*1
使用这些技术减less你的公式:
=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)
=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可以用来检查string中间或末尾的数字。