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

时间:2014-12-13 15:10:06

标签: excel excel-formula conditional-formatting

如果单元格A1的值为“600 T”,是否可以根据数字应用小于/介于/大于条件格式的数字,基本上忽略单元格中可能包含的任何文本?

2 个答案:

答案 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)
相关问题