更新时间2018-07-29 10:18:15
X文件A列完整性更强,Y文件更A列是简称,用VLOOKUP求Y文件中B列值?
X文件
Y文件
你可以这样做:
1 在X文件中,把联系人移至C列;
2 增加B列为"简称[须为单个中文字符]":如工行为"工",建行为"建",招行为"招"等 - 这个也符合我们平常的叫法,不要、也不会有重复的;
3 在Y文件中,有两种做法:
一是:增加一列C,人为地打入对应A列的简称,然后在B列联系人下面对应的格子,如B2,录入公式:
=VLOOKUP(C2,【X文件相应Sheet的】$B$2:$C$3,2,0),拷贝至所有B列对应每一银行;
其中:
【X文件相应Sheet的】:在录入公式时直接引用X文件的相应区域即可;
$B$2:$C$3根据你表格的实际情况修正,之后须修改为绝对引用,即确保加上$;
二是:
不用建立Y文件中的C列,改为自动判别:
将公式中的C2改为:
IF(ISERR(FIND(【X文件相应Sheet的】$B$2,A2)),IF(ISERR(FIND(【X文件相应Sheet的】$B$3,A3)),【。。。。。】,【X文件相应Sheet的】C3),【X文件相应Sheet的】C2)
上式中:【。。。。。】表示插入多个IF(ISERR(FIND(。。。)判断,直至包含你在X文件中所有银行的简称。
但excel中对一个公式中的括号嵌套最大层数是有限制的,太多的话即不能增加了。
若真的太多银行了,也有解决办法:
1 直接用VBA,思路简单明了;
2 假设有100家银行,则在Y文件中的每一银行的行后从D列开始增加100列,每一列作上面IF嵌套中的一个,再把比对得出的简称放在该行的C列,即可直接录入最上面的公式。
输入公式后向下填充:
=VLOOKUP("*"&A2,[X文件.XLS]sheet1!A:B,2,)
或
=VLOOKUP("*"&A2,[X文件.XLS]sheet1!A:B,2,0)
=VLOOKUP(Y文件!A2,X文件!$A$1:$B$3,2,TRUE)
这样行吗?
这个是做不了的,要值完全一样才可以抓到值的。
下一篇:二进制转十进制