一个关于VLOOKUP使用公式中存在的问题,请各位大虾们看看呢,非常感谢

我有两张EXCEL表,分别叫表1、表2表1中的数据是一列员工的编号,如下图表2中的数据是员工编号对应的名字现在我想得到的结果是:将表1员工编号对应为员工的姓名之前有位大虾... 我有两张EXCEL表,分别叫表1、表2
表1中的数据是一列员工的编号,如下图

表2中的数据是员工编号对应的名字

现在我想得到的结果是:将表1员工编号对应为员工的姓名

之前有位大虾给了一个计算公式:
VLOOKUP(--LEFT(A4,FIND("/",A4)-1),表2!A:B,2,)&"/"&VLOOKUP(-LOOKUP(,-MID(A4,FIND("/",A4)+1,ROW($1:$6))),表2!A:B,2,)&IF(LEN(A4)-LEN(SUBSTITUTE(A4,"/",))>1,"/"&VLOOKUP(-LOOKUP(,-RIGHT(A4,ROW($1:$6))),表2!A:B,2,),) 无法得到我想要的结果

但是将员工编号换一下位置,改成11192/14409/4007,就可以用上面的公式?为什么呢?如何修改上诉公式?
展开
 我来答
wykcorp
推荐于2016-02-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:5839
采纳率:85%
帮助的人:3367万
展开全部

提问中公式出错的原因在于那个分隔符 / ,这在EXCEL中是当作除号的,如果把A4的 / 换为其它符号如@,也把公式中的 / 也替换为 @ ,提问中原来的公式也可以用。


B4公式下拉:
=IF(A4="","",VLOOKUP(--LEFT(A4,FIND("/",A4)-1),表2!A:B,2,)&"/"&VLOOKUP(-LOOKUP(,-LEFT(SUBSTITUTE(MID(A4,FIND("/",A4)+1,9),"/","@"),ROW($1:$6))),表2!A:B,2,)&"/"&VLOOKUP(-LOOKUP(,-RIGHT(SUBSTITUTE(A4,"/","@"),ROW($1:$6))),表2!A:B,2,))



追问
但是我如果将工号修改为两个,比如14409/4007/11192修改为14409/4007,用公式就会多出一个:公式最后的结果是:小朱/小徐/小徐 。这是为什么呢
追答

提问中那样的表格设计本身就是中看不中用,那公式也只能固定是显示3个姓名,建议表格改为这样。


B4公式右拉至足够的列再下拉:
=IF($A4="","",IF(LEN($A4)-LEN(SUBSTITUTE($A4,"/",))+1>=COLUMN(A1),VLOOKUP(--MID(SUBSTITUTE($A4,"/",REPT(" ",99)),COLUMN(A1)*99-98,99),表2!$A:$B,2,),""))


如果用的是EXCEL 2007及以上版本,公式可以精简为:

=IFERROR(VLOOKUP(--MID(SUBSTITUTE($A4,"/",REPT(" ",99)),COLUMN(A1)*99-98,99),表2!$A:$B,2,),"")


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式