java字符串中包含_一个字符串中是否包含另一个字符串中的几个字符的判断!...

昨天我们留了个练习题:

122828248_1_20180124093607909

判断A1中是否包含B1单元格字符串中的字符,可以是B1中的任意字符,如果是判断B1中某个或者是某几个相连的字符,那好办,但是现在是任意一个或者是任意几个,没有顺序之分。

所以我们想到了把B1中的字符串打散,然后用find函数在A1里寻找,如果返回数字,那说明存在,如果返回错误值,那说名不存在。

打散的方法,我最近的视频教程里讲mid时已经讲过了,这里直接写公式:

122828248_2_2018012409360850

查找打散后的字符在A1中的位置:

=find(MID(B1,{1,2,3},1),A1),结果返回{1,2,3},各个字符在A1中都存在,那么我们统计数字的个数就知道了存在几个字符了,所以外层加个count。

=count(find(MID(B1,{1,2,3},1),A1))

这时候就得出了A1中包含B1中的字符数,这道题要求包含1个或者2个就显示正确,否则显示错误,所以用if判断下就可以。

=IF(AND(COUNT(FIND(MID(B1,{1,2,3},1),A1))>0,COUNT(FIND(MID(B1,{1,2,3},1),A1))<3),'正确','错误')

上面的公式中:COUNT(FIND(MID(B1,{1,2,3},1),A1))的结果大于0小于3即可,那也就是说等于1或者2就可以,所以我们可以简化下下公式:

COUNT(FIND(MID(B1,{1,2,3},1),A1))={1,2}

如果COUNT(FIND(MID(B1,{1,2,3},1),A1))的结果等于0或者3,那么结果就是{false,false},把逻辑值转化为数字后求和就是0,否则,如果结果为1或者2,那就得到{true,false}或者是{false,true},转化为数字求和就是1,所以就有了下面的简化:

=IF(SUM(--(COUNT(FIND(MID(B1,{1,2,3},1),A1))={1,2}))=1,'正确','错误')

在写公式时能灵活应用数组还是很爽的,所以我们还是很有必要多学学用数组的方式去写公式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值