本次的练习是:有一列编码,由1个字母接着3个数字组成。这些编码应该以字母和数字排序,但是会出现不连续编码的情况,如下图1所示。
图1
要求使用公式标识出不连续的编码。
先不看答案,自已动手试一试。
解决方案
由于字母和数字的个数都是固定的,因此公式比较容易编写。
在单元格C6中输入公式:
=IF(AND(LEFT(B6,1)=LEFT(B5,1),RIGHT(B6,3)-RIGHT(B5,3)<>1),"x","")
下拉至单元格C13。
由于乘法(*)表示逻辑与,因此,上述公式也可以改写为:
=IF((LEFT(B6,1)=LEFT(B5,1))*(RIGHT(B6,3)-RIGHT(B5,3)<>1),"x","")
还可以使用LEFT/MID函数组合:
=IF((LEFT(B5)=LEFT(B6))*(MID(B5,2,3) 1<>MID(B6,2,3) 0),"x","")
或:
=IF((LEFT(B5)=LEFT(B6))*(MID(B6,2,3)-MID(B5,2,3)<>1),"x","")
注意:
1.LEFT函数省略第2个参数,将默认返回第1个字符。
2.与MID函数返回结果相加或相乘,强制其结果返回数字。
我们可以看到,同一个问题可以有多种解决方案,就看你的偏爱了。