这个公式有点长,怎么理解呢?
① --LEFT(B2,4)用于提取号码前4位数字。
为什么要在LFET函数前加个“--”呢。看上去,加不加“--”的结果都一样啊。
这就和MATCH函数相关啦。
② 用MATCH(查找值,去哪找,精确查找吗)在手机号码段表中查找号码段,找到后返回号码段位置,找不到就返回“#N/A”。
由下图可知,只有在LEFT函数前添加了“--”,才能得到正确结果。这又是为什么呢?
其实,这是格式在作怪,手机号码段中的数字是数值格式,而用LEFT函数直接提取到的是文本格式,二者格式不一,用MATCH函数自然得不到正确的结果。只有添加“--”将文本格式转换为数值格式。
③ MATCH函数查找不到的单元格会得到“#N/A”,所以用IFERROR公式过滤,最后再用IF公式判断正误。
判断手机号属于哪个运营商有了前面的基础,判断手机号的归属运营商就容易啦。MATCH获得号码段位置后,用INDEX函数获取同一行D列的运营商名称。这样,公式就变成了:
=IFERROR(INDEX(手机号码段!D:D,MATCH(--LEFT(B2,4),手机号码段!C:C,0)),"号码错误")
最终公式结合判断长度和运营商公式,最后可以得到下面这个公式。
=IF(LEN(B2)=11,IFERROR(INDEX(手机号码段!D:D,MATCH(--LEFT(B2,4),手机号码段!C:C,0)),"号码错误"),"号码长度错误")