首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

连续数据的条件判断

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

当含有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:G20,1,0))

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

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

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

第二个:CONCAT函数

公式为:

=CONCAT(IF(B2:G20,1,0))

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

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

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

公式为:

FIND("1111",CONCAT(IF(B2:G20,1,0)))

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

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

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

公式为:

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

好了,如果你有更好的方法,请留言分享给大家,一起交流。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210113A04PE800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券