vlookup+mid+iferror函数,根据物流单号填写快递公司

在Excel中,如果你想使用`VLOOKUP`函数结合`IFERROR`函数来根据物流单号填写快递公司,你可以这样做。假设你的物流单号在A列,快递公司在B列,你想在C列根据A列的物流单号查找对应的快递公司。
以下是一个示例公式:
```excel =IFERROR(VLOOKUP(A2,范围,2,FALSE), "未找到") ```
在这个公式中: - `A2` 是你要查找的物流单号。 - `范围` 是包含物流单号和快递公司的数据范围,例如 `A2:B100`。 - `2` 表示返回查找范围的第二列,即快递公司。 - `FALSE` 表示精确匹配。
如果你想在C列对每一行都应用这个公式,你可以将公式拖动或复制到C列的其他单元格中。
例如,如果你在C2单元格中输入了上述公式,然后将公式向下拖动到C列的其他单元格,它将自动调整`A2`为`A3`, `A4`等,从而对每一行的物流单号进行查找。
这样,如果找到了对应的快递公司,它将显示在C列;如果没有找到,它将显示“未找到”。

相关内容:

网友求助SOS:如何根据快递匹配分类?啥意思呢?下面我们用案例模拟真实的办公场景。


如下图所示

A:B列是快递编号与对应快递的对照表。A列编号是完整快递单号的前两位。D列是完整的快递单号,我们就是想要根据D列完整的快递单号,将对应的快递公司填写在E列。




小编给到的解决方案是vlookup+mid+iferror函数组合。怎么用呢?下面我们一步一步说。总而言之,这个案例很简单。



我们输入公式:

=MID(D2,1,2)


利用MID函数提取D列单元格完整物流单号的前两位。


MID函数提取D2单元格中的字符串,从第1位开始,提取2位字符长度,所以“YT2553112343019”的前两位就是“YT”。



外面嵌套VLOOKUP函数:

=VLOOKUP(MID(D2,1,2),A:B,2,0)


用MID函数提取到的完整物流单号的前两位,作为VLOOKUP函数的第一参数查找值。在A:B区域内进行查找,用精确匹配的方式,查找A:B区域的第2列“对应快递”。


但是我们发现

只有完整物流单号前两位是字母(文本)的,E列才会显示正确的快递公司查询结果。而完整物流单号全部是数字的,也就是完整物流单号前两位是数字的,E列快递公司的查询结果却显示错误值。



造成这种结果的原因是这样的:

MID函数提取结果返回的是文本形式存储的数据


比如MID函数提取到的D3单元格的前两位“76”

=MID(D3,1,2)


与对照表中的A8单元格的“76”对比:

=F3=A8


结果会返回错误值:

FALSE


也就是说MID函数提取到的“76”文本型数字,而A8单元格的“76”为纯数字,两者其实不相等。所以VLOOKUP查询不到。



其中一种解决方案,就是对对照表进行操作,用“分列”的方式,将A列的“编号”的格式转换为文本格式,也就是说将VLOOKUP的查找值mid函数返回结果与查询区域的首列“编号”统一文本格式。


那么E列结果自然而然就都正确了。




但是小编提倡的是用公式一条龙解决问题,不要用公式+分列两步走战略



我们输入公式:

=MID(D2,1,2)


利用MID函数提取D列单元格完整物流单号的前两位。


注意:

MID函数提取到的前两位如果是数字的情况下,为文本型数字。如物流单号“76495265471561”前两位“76”为文本型数字。


继续完善公式:

=MID(D2,1,2)*1


MID(D2,1,2)*1作用:

将提取的2个字符尝试转换为真正的数字。

若字符是文本型数字(如 "76"),转换成功 → 返回真正的数字 76。

若字符是非数字(如 "YT"),转换失败 → 返回错误值 #VALUE!。



继续完善公式:

=IFERROR(MID(D2,1,2)*1,MID(D2,1,2))


IFERROR(MID(D2,1,2)*1, MID(D2,1,2))作用:

根据上一步结果,返回有效值。

若文本型数字转换为真正的数字成功 → 保留真正的数字(如 76)。

若转换失败 → 返回原始文本(如 "YT")。


逻辑:

优先尝试用真正的数字匹配(针对快递单号以数字开头的场景,如中通单号 76)。

若失败则用文本匹配(针对快递单号以字母开头的场景,如圆通单号 YT)。



最后VLOOKUP函数匹配即可:

=VLOOKUP(IFERROR(MID(D2,1,2)*1,MID(D2,1,2)),A:B,2,0)


VLOOKUP(..., A:B, 2, 0)作用:

在 A:B 对照表中,根据前一步的值查找对应的快递公司名称。


参数解析:

查找值:IFERROR(...) 的结果(真正的数字或文本)。

查找区域:A:B 列(A 列为编码,B 列为快递公司名称)。

返回列:第 2 列(即 B 列)。

匹配模式:0 表示精确匹配。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章