美文网首页
Excel中如何对数据的连续性进行条件判断

Excel中如何对数据的连续性进行条件判断

作者: 查查老师讲Excel | 来源:发表于2021-04-13 11:59 被阅读0次

    前几天有学员问了一个问题,如果他的单元格中包含某些字符,那么在最后一列中就显示有用,否则显示不可用。如下:

    当含有carpet时,最后一列中显示有用。

    其实,这个函数非常简单,既然是查找某个字符,直接用FIND函数就可以了,然后搭配着IF函数进行判断,结果不就出来了么?

    有了这个思路,来看一下另外一个同学碰到的问题,看看该如何解决?表格是这样的:

    她的问题是这样的:如果有4个连续的衣服码都有库存,那么就在最后一列中标注为齐码,否则就为断码。比如第2行中的T101031,根据上述说明,结果应该是断码;第3行中的结果就是齐码;

    先来分析一下思路,这个题跟开始的那个有点不一样,应该可以说是升级版。

    怎么去判断是连续的呢?我们用1表示有,用0表示无,假设将一行中的码数全部连接在一起,只要遇到了“1111”这种四个1在一起的,那么不就是说明这件款式是齐码的么!

    根据上述这个思路,得出:

    1、先判断库存情况,大于0的转换成1,0的保持不变;

    2、将1中的判断情况连接在一起成为文本串;

    3、判断有没有“1111”这种情况;

    4、根据第3条得出是否是断码或齐码的结果

    一起来分步骤写一下公式:

    转换为1和0,肯定是IF函数了:

    这个利用了数组公式的特性,所以得出的结果是一组数据:

    将这些结果连成一串的函数就比较多了,都分享一下吧:

    第一个:Microsoft365中的Textjoin函数

    公式为:

    =TEXTJOIN("",1,IF(B2:G2<>0,1,0))

    第一个参数是分隔符的意思,第二个参数是是否忽略空值,第三个参数自然就是要连接的文本了;

    缺陷:只有Microsoft 365, Office2019,WPS2019中才有这个函数;

    如果不是上述这些版本怎么办?接下来看:

    第二个:CONCAT函数

    公式为:

    =CONCAT(IF(B2:G2<>0,1,0))

    参数虽然比Textjoin简单得多,但是如果之间要有连接符的话,还是得用Textjoin。

    其实关于连接文本的函数,除了上述两个之外,还有Phonetic函数,它只对文本起作用;Concatenate函数,还有&符号,只是由于本题的限制,这三个都用不上,大家作为了解就好。

    接下来,就是判断是否有连续的库存了。这个直接用FIND函数搞定。

    公式为:

    FIND("1111",CONCAT(IF(B2:G2<>0,1,0)))

    这种结果说明没找到,把公式下拉填充一下看看。

    很明显,能得到结果的,就表示有连续的4个1,结果就应该是齐码。但是这里直接嵌套IF函数并不能得到我们要的结果,因为IF的判断条件值的结果应该是True或False,所以这一步还需要套一个函数ISERROR直接做判断:

    有了结果True和False,最后再用IF函数嵌套就简单多了。

    公式为:

    =IF(ISERROR(FIND("1111",CONCAT(IF(B2:G2<>0,1,0)))),"断码","齐码")

    当然还有比较高级的方法,比如Power Query来解决,也非常的快速和后期一键刷新带来的便利。大家可以自行尝试一下。

    相关文章

      网友评论

          本文标题:Excel中如何对数据的连续性进行条件判断

          本文链接:https://www.haomeiwen.com/subject/tkgqlltx.html