基于包含文本和数字的单元格中的数字进行条件格式化

如果单元格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中间或末尾的数字。