加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用excel函数choose()、match()实现多条件计算

(2013-12-06 18:29:49)
标签:

excel

choose

match

多条件

excel中,如果进行条件计算,一般用if()函数,如果有多个条件,则采用多个if()嵌套的方式实现,例如计算函数:

f(x)=-x^2,当x<0;0,当x=0;x^2,当x>0

假设x的值在A1f(x)的值在B1,则在B1单元格中采用If()函数嵌套的公式为:

=if(a1<0,-(a1^2),if(a1>0,a1^2,0))

采用if()函数的缺点是:

1、                  逻辑关系混乱。若干平行的条件经过嵌套以后成了若干个主从关系的条件,很难看懂。

2、                  容易出错,如果条件越多,嵌套的if()函数就越多,就要套越多的括号,一不小心就弄错了。

能否找到一组函数,使多条件能够并列显示,一目了然。可以采用choose()match()相结合的公式来解决这个问题。上例在B1单元格中填入公式:

=choose(match(TRUE,choose({1,2,3},a1<0,a1=0,a1>0),0),-(a1^2),0,a1^2)

解读:

1、                 内层用choose()构建一个数组,这个数组由3个值组成,按顺序分别为a1<0a1=0a1>0的逻辑值,当a1符合某个条件是,那个值为TRUE,其它值为FALSE,例如当A1=4时,3个值得排列为{FALSEFALSETRUE}

2、                 中间层的match()函数用TRUE逻辑值来匹配内层choose()构建的数组第几个值为TRUE,注意最后的match_type要为0,例如,当A1=4时,match()返回的值为3,当A1=-1时,match()返回的值为1

3、                 外层的choose()函数利用match()返回的值匹配第几个式子,例如当A1=4时,match()返回的值为3,外层choose()函数返回的值为A1^2,即16,当a1=-1时,match()返回的值为1,外层choose()函数返回的值为-(a1^2),即-1

当有4个条件的时候,内层数组构建4个值,用{1,2,3,4}匹配,以此类推,条件再多也可以构建,而公式相当简单直观!

0

阅读 收藏 喜欢 打印举报/Report
前一篇:天地方圆
后一篇:镜看世界
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有