excel用vlookup怎样返回匹配单元格右侧的单元格内容??

本人想在excel中的一行查找到某个项目,比如电话费或者手机费,然后返回其右侧的单元格内容(注:每行中电话费或者手机费位置不固定)
就是把上面表格的项目后面对应的金额填写在下面的表格对应格子里

假设数据如下图格式

要在D2单元格得出C2单元格姓名所对应的A列的编号

那么可以在D2单元格写入公式

=VLOOKUP(C2,IF({1,0},B2:B5,A2:A5),2,)

 

公式中IF({1,0},....)起到了将两列数据调换的作用,

{1,0}这样的写法是常数数组

在IF公式中常数数组中的1可以转化成真值TRUE,0可以转化成假值FALSE。

我就以上面的公式和表格结构说明一下演绎的过程

IF({1,0},B2:B5,A2:A5)

IF({TRUE,FALSE},{"张三","李四","王二","麻子"},{1,2,3,4})

在下一步中真值TRUE将返回B2:B5单元格对应的数据,假值FALSE将返回A2:A5单元格的数据,形成新的数组 

{"张三",1;"李四",2;"王二",3;"麻子",4}

所以

=VLOOKUP("王二",{"张三",1;"李四",2;"王二",3;"麻子",4},2,)

值为3

 

但还是建议用INDEX和MATCH组合函数公式来做更简单一些

=INDEX(A:A,MATCH(C2,B:B,))

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-02
因为你这里看不到行号和列号,我先做个假设,第一行就是最顶行,下表月租费那个蓝框是在C16

于是,在C17,可以填上下面这个公式:
=OFFSET($A$2,MATCH($A17,$A$2:$A$15,0)-1,MATCH(C$16,OFFSET($A$2:$M$2,MATCH($A17,$A$2:$A$15,0)-1,0),0))

直接复制粘贴到其它格就OK
第2个回答  2013-04-02

请看看是不是这效果了?详细见图。

公式如下:


=VLOOKUP(D2,A:B,2,)


追问

图片已经上传,麻烦帮忙看下

第3个回答  2013-04-02

使用Vlookup函数就可以搞定

追问

图片已经上传,麻烦帮忙看下

追答

你把源文件发给我,我给你做

第4个回答  2013-04-02
匹配位置不固定,是不能直接用VLOOKUP的,你把详细列表说说,看有没有解决办法。追问

图片已经上传,麻烦帮忙看下

追答

这个有点复杂,可考虑用INDEX()+MATCH()进行匹配,同时还需发考虑不存在的限目。

相似回答