不区分字符的先后顺序,只要全部包含在关键字列表中,就判定为Y,有一个字符不在列表中就判定为N:
首先想到的是要拆分关键字一个一个的去关键字列表中比对。
关键字拆分我们要用到MID+ROW+INDIRECT+LEN组合公式:
我们要把“弹力球”拆分为“弹”、“力”、“球”:
=MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1)
ROW+INDIRECT+LEN是构建一个列表{1;2;3},作为MID第二参数,是截取字符的起始位置列表:
用FIND函数比对关键字列表:
用FIND函数到关键字列表中去查找“弹”、“力”、“球”三个字对应的位置:
=FIND(MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1),$A$1,1)
逻辑判断
查找的结果有三种可能,全部包含、部分包含、不包含,对于FIND函数来说只有全部包含才能有数值返回,其他两种情况会返回错误值,就需要用ISERROR函数来处理错误。
就是说如果ISERROR返回TRUE,就表示FIND查找失败,不过这是不包含才出现的情况,那么部分包含时,如果第一个字符能找到,也会返回FALSE,这时就需要用OR函数来判断一下,就是说,只要有一个字符没找到,返回的是TRUE,那么这个逻辑判断整体就返回TRUE,部分包含与不包含都返回TRUE。
=OR(ISERROR(FIND(MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1),$A$1,1))=TRUE)
判断结果
对于逻辑判断返回结果:
- TRUE:N
- FALSE:Y
=IF(
OR(ISERROR(FIND(MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1),$A$1,1))=TRUE),"N