vlookup函数求教,以及单元格文本与数字格式求教!

现有一个excel文件,共有两个sheet,sheet1是正式文件,要打印出来的,sheet2是一个小数据库,里面有A、B共2列,A列为数字字母为组合的代码,B列为这个代... 现有一个excel文件,共有两个sheet,sheet 1是正式文件,要打印出来的,sheet 2是一个小数据库,里面有A、B 共2列,A列为数字字母为组合的代码,B列为这个代码对应的生产厂家。例如:A1为52305 ,B1为:中国第一厂,A2为 47E05,B2为 中国第二厂,A3为:4D021,B3为北京第十厂,A4为23601,B4为沈阳第五厂,以此对应。sheet 2 样式 如下
A B
1 52305 中国第一厂
2 47E05 中国第二厂
3 4D021 北京第十厂
4 23601 沈阳第五厂

零件代码为8位,例如,中国第一厂生产的第一个零件代码为:52305001,中国第二厂生产的第10个零件代码为:40E05010

现要求,在 sheet 1 的一个单元格(例如:E1)里输入零件代码,E2自动出现这个零件代码的生产厂家。
我在E2单元格输入函数:=vlookup(left(E1,5),sheet2!A:B,2,0),但出现错误,不能查找。

查找原因,发现sheet 2 里面输入的代码“47E05”被识别为 47 乘以 10的五次方,被识别为科学计数法,显示成4700000。因此把所有单元格改为“文本”格式重新输入,这时,sheet1 的 E1 里输入 零件代码“52305180”,E2 公式的计算报错:#N/A
,但E1 输入代码“4D021046”E2 正确显示“北京第十厂”,后验证,只要E1 里输入带字母的代码,都可以正常计算,如果是全数字的代码就不行。
后来网上搜索答案,发现一个解决方案:将E2的公式变为:=VLOOKUP(LEFT(E1,5)+0,Sheet2!A:B,2,0),就是在 left(E1,5)后面 +0 ,这时输入零件代码“52305180”,可以正常显示“中国第一厂”,但输入“4D021046”计算结果报错:“#VALUE!”,这次变成全数字可以计算,带字母的又不行了。
就没有一个两种情况都可以的吗?
可以再vlookup函数里再加入 if 函数 或者 and 函数解决这个问题吗?
搜索了很久,都找不到答案,问遍了身边的人,没一个人会的。没办法,到这个来等待高手!还望不吝赐教!
太好了!真是碰到高手了!谢谢你, redstarw
按照你的操作,成功了!
能请你顺便说说原理吗?而且操作完之后,Sheet 2 里面的代码 全部带个绿三角形,点击提示:以文本形式储存的数字!

谢谢“hzrvqb”的回答。你说的操作方法我试过了,和我在vlookup公式里加一个left公式的结果是一样的。还是不行。确实是 单元格 文本格式和数字格式的问题。
sheet 2 里面的 A列,我虽然手动的将整列选择在单元格属性里选择了文本,但还不是真正的文本,按照“redstarw”的数据、分列操作后,才变成真正的文本。才解决了问题!

但是我不知道为什么 单元格属性 里不能转换成真正的文本,为什么要这样做,而且不知道分列这个功能到底是干什么的
展开
 我来答
redstarw
推荐于2016-02-22 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5246
采纳率:100%
帮助的人:3369万
展开全部
说起来问题很简单:
选中sheet2中A列数据,单击菜单“数据”——》“分列”:下一步,下一步,选“文本”格式,完成。
经过以上步骤处理后,sheet2的A列就变成真正的文本格式了。
然后用你原来的公式就行了。即:=vlookup(left(E1,5),sheet2!A:B,2,0)
hzrvqb
2010-12-29 · TA获得超过187个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:102万
展开全部
先问你一个问题,sheet2中A列前5个有没有重复的,然后B列对应的厂家不一样的,如果没有就好办了。第1步在sheet1中在E1列输入你要输入的零件代码8位或10位。第2步在E2列做公式=left(E1,5).第3步在E3列使用VLOOKUP公式=VLOOKUP(E2,Sheet2!A:B,2,0).OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式