四时宝库

程序员的知识宝库

Excel122|TEXT函数应用之三——条件判断

问题来源

前天和昨天讲的TEXT函数的用法,都是通过变换格式代码,即TEXT函数的第二个参数,来实现定义不同的格式。

(语法:TEXT(value, format_text))

有不少朋友问韩老师,那格式代码与[设置单元格格式]中的[自定义]格式代码,是那么的相像,是不是所有的[自定义]格式中的代码都能应用于TEXT函数中?

不是的,有少部分代码仅适用于自定义格式,比如TEXT函数无法实现以某种颜色显示数值的效果。

另:设置单元格格式与TEXT函数还有以下区别:

① 设置单元格的格式,仅仅是数字显示外观的改变,其实质仍然是数值本身,不影响进一步的汇总计算,即得到的是显示的效果。

② 使用TEXT函数可以将数值转换为带格式的文本,其实质已经是文本,不再具有数值的特性,即得到的是实际的效果。


今天,韩老师给大家讲一讲TEXT函数按区段代码返回格式文本。

操作提示默认条件区段

四个条件区段:

TEXT函数的格式代码默认分为4个条件区段,各区段之间用半角分号间隔。

默认情况下,这四个区段的定义为:

[>0];[<0];[=0];[文本]

【举例1】按区段条件判断,然后返回相应结果:

公式:=TEXT(A2,"0.00;-0;0;文本")的含义是:

A2单元格的值,按照四种情况返回结果:

  • >0,保留两位小数;

  • <0,只保留整数;

  • =0,返回0值;

  • 文本,返回“文本”二字。

【举例2】按区段条件,强制返回相应结果:

公式:=TEXT(A8,"1!0!0;5!0;0;文本")的含义是:

A8单元格的值,按照四种情况返回结果:

  • >0,返回100;

  • <0,返回50;

  • =0,返回0值;

  • 文本,返回“文本”二字。

公式中使用的感叹号(英文半角)是转义字符,强制其后的第一个字符不具备代码的含义,而仅仅是数字。比如:1!0!0,将两个0强制成数字0,而不是数字格式代码0。

在实际应用中,可以使用部分条件区段。

三个条件区段:

三个区段为:

[>0];[<0];[=0]

【举例3】

公式:=TEXT(A15,"盈利;亏损;平衡")的含义是:

A15单元格的值,按照三种情况返回结果:

  • >0,返回“盈利”;

  • <0,返回“亏损”;

  • =0,返回“平衡”;

两个条件区段:

两个区段的为:

[>0];[<0]

【举例4】

公式:=TEXT(A22,"盈利;亏损")的含义是:

A22单元格的值,按照两种情况返回结果:

  • >0,返回“盈利”;

  • <0,返回“亏损”;

一个区段的,就不讲了,昨天前天的两篇文章,都算是一个区段的。

自定义条件区段

TEXT函数除了可以使用默认区段以外,还可以自定义条件区段。

四个自定义条件区段:

四个区段的定义为:

[条件1];[条件2];[不满足条件的其他部分];[文本]

【举例5】

公式:=TEXT(A38,"[>=85]优秀;[>=60]合格;不合格;无成绩")的含义是:

A38单元格的值,按照自定义的四种情况返回结果:

  • >=85,返回“优秀”;

  • >=60,返回“合格”;

  • 不满足以上条件的数值,返回“不合格”;

  • 非数值,返回“文本”二字。

三个自定义条件区段:

三个区段的定义为:

[条件1];[条件2];[不满足条件的其他部分]

【举例6】

公式:=TEXT(A46,"[>=85]优秀;[>=60]合格;不合格")的含义是:

A46单元格的值,按照自定义的四种情况返回结果:

  • >=85,返回“优秀”;

  • >=60,返回“合格”;

  • 不满足以上条件,返回“不合格”;

两个自定义条件区段:

两个区段的定义为:

[条件];[不满足条件的其他部分]

【举例7】

公式:=TEXT(A54,"[>=60]合格;不合格")的含义是:

A54单元格的值,按照自定义的四种情况返回结果:

  • >=60,返回“合格”;

  • 不满足以上条件,返回“不合格”;

巧用TEXT嵌套自定义多条件区段

以上举例中,我们可以看到,成绩只能判断到“优秀、合格、不合格”级别,如果再多级别,一个TEXT就解决不了了。TEXT函数也可以嵌套解决这个问题:

【举例8】

要求:

90分及以上,返回“优秀”;

70分及以上,返回“良好”;

60分及以上,返回“合格”;

60分以下,返回“不合格”。

结果如下:

公式:TEXT(TEXT(A62-60,"[>=30]优秀;不合格;0"),"[>=10]良好;合格"),分解来解释:

TEXT(A62-60,"[>=30]优秀;不合格;0")

对A62-60进行分段计算:

  • 如果>=30,返回“优秀”;

  • 如果<0,返回“不合格”;

  • 不满足以上条件,返回成绩的整数。

    如果成绩中有小数,最后一个区段可以写成0.0,或0.00.

通过这个公式,把成绩分段成了>=90,<60,60~89三个区段。

TEXT(TEXT(A62-60,"[>=30]优秀;不合格;0"),"[>=10]良好;合格")

这一部分,对60~89的成绩,减去60,然后计算:

  • 如果>=10,返回“良好”;

  • 否则,返回“合格”;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接