Excel如何实现与VLOOKUP函数相反的左向查找公式
2017-01-19 09:01
337 查看
大家知道,在Excel中可以利用VLOOKUP函数根据区域中第一列的某个数据查找出其他列中对应行的数据。例如,在下图中要查找对应“值班日期”为“初五”的“姓名”,可以用公式:
=VLOOKUP(A6,A1:D7,2,0)
但VLOOKUP函数只能向右查找,如果要向左方查找数值,可以用INDEX函数和MATCH函数的组合公式。例如要查找上例中“科室”为“财务科”的“姓名”,即通过第4列中的数据在第2列中查找,可以用下面的公式:
=INDEX(A2:D7,MATCH(D6,$D$2:$D$7,0),2)
或:
=INDEX(B2:B7,MATCH(C6,C2:C7,0))
或用LOOKUP函数:
=LOOKUP(1,0/(D2:D7=D6),B2:B7)
还可以仍然使用VLOOKUP函数:
=VLOOKUP(D6,IF({1,0},D2:D7,B2:B7),2,)
上述几个公式都返回“周伯通”。最后一个公式,VLOOKUP函数的第二个参数“IF({1,0},D2:D7,B2:B7)”返回由一个二维数组,其中D2:D7为第一列,B2:B7为第二列。“IF({1,0},D2:D7,B2:B7)”可看作“{IF(1,D2:D7),IF(0,,B2:B7)}”。用TEXT函数也可返回这样的数组,如将公式的第二个参数改为“ TEXT({1,-1},D2:D7&";"&B2:B7)”:
=VLOOKUP(D6,TEXT({1,-1},D2:D7&";"&B2:B7),2,)
这个公式输入完毕后,需按Ctrl+Shift+Enter结束。
如果要查找“科室”为“财务科”的“值班日期”,即通过第4列数据在第1列中查找,只需将第一个公式中最后一个参数“2”改为“1”,即可:
=INDEX(A2:D7,MATCH(D6,$D$2:$D$7,0),1)
将后几个公式中的“B2:B7”,改为“A2:A7”即可:
=INDEX(A2:A7,MATCH(C6,C2:C7,0))
=LOOKUP(1,0/(D2:D7=D6),A2:A7)
=VLOOKUP(D6,IF({1,0},D2:D7,A2:A7),2,)
使用下面的公式可以将“姓名”放到“科室”列左边的任意位置,公式都会返回正确的结果。
=INDEX($A$1:$D$7,MATCH(D6,$D$1:$D$7,0),MATCH("姓名",$A$1:$D$1,0))
注:更多精彩教程请关注三联电脑教程栏目,三联电脑办公群:189034526欢迎你的加入
转自:http://wenda.so.com/q/1461344587723093
=VLOOKUP(A6,A1:D7,2,0)
但VLOOKUP函数只能向右查找,如果要向左方查找数值,可以用INDEX函数和MATCH函数的组合公式。例如要查找上例中“科室”为“财务科”的“姓名”,即通过第4列中的数据在第2列中查找,可以用下面的公式:
=INDEX(A2:D7,MATCH(D6,$D$2:$D$7,0),2)
或:
=INDEX(B2:B7,MATCH(C6,C2:C7,0))
或用LOOKUP函数:
=LOOKUP(1,0/(D2:D7=D6),B2:B7)
还可以仍然使用VLOOKUP函数:
=VLOOKUP(D6,IF({1,0},D2:D7,B2:B7),2,)
上述几个公式都返回“周伯通”。最后一个公式,VLOOKUP函数的第二个参数“IF({1,0},D2:D7,B2:B7)”返回由一个二维数组,其中D2:D7为第一列,B2:B7为第二列。“IF({1,0},D2:D7,B2:B7)”可看作“{IF(1,D2:D7),IF(0,,B2:B7)}”。用TEXT函数也可返回这样的数组,如将公式的第二个参数改为“ TEXT({1,-1},D2:D7&";"&B2:B7)”:
=VLOOKUP(D6,TEXT({1,-1},D2:D7&";"&B2:B7),2,)
这个公式输入完毕后,需按Ctrl+Shift+Enter结束。
如果要查找“科室”为“财务科”的“值班日期”,即通过第4列数据在第1列中查找,只需将第一个公式中最后一个参数“2”改为“1”,即可:
=INDEX(A2:D7,MATCH(D6,$D$2:$D$7,0),1)
将后几个公式中的“B2:B7”,改为“A2:A7”即可:
=INDEX(A2:A7,MATCH(C6,C2:C7,0))
=LOOKUP(1,0/(D2:D7=D6),A2:A7)
=VLOOKUP(D6,IF({1,0},D2:D7,A2:A7),2,)
使用下面的公式可以将“姓名”放到“科室”列左边的任意位置,公式都会返回正确的结果。
=INDEX($A$1:$D$7,MATCH(D6,$D$1:$D$7,0),MATCH("姓名",$A$1:$D$1,0))
注:更多精彩教程请关注三联电脑教程栏目,三联电脑办公群:189034526欢迎你的加入
转自:http://wenda.so.com/q/1461344587723093
相关文章推荐
- 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找
- 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找的方法
- 通过excel自带的VLOOKUP函数实现字符串自动查找替换
- 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找
- 如何实现VB与EXCEL的无缝连接
- 如何给Excel添加用户自定义的公式
- Excel问题处理,如何实现数据表的单元格数值的动态变化。
- 如何用C#在winform中实现简单的查找功能
- 如何实现VB与EXCEL的无缝连接
- 如何C#中实现在TreeView查找某一节点(两种方法)
- 如何实现VB与EXCEL的无缝连接
- 如何实现VB与EXCEL的无缝连接(ZT)
- moss2007 如何实现excel 协同输入表格
- 如何用DELPHI实现把WORD、EXCEL和图片等存储到数据库中
- 如何在 Windows Mobile (WinCE 5.0) 中用Vc++编程查找并连接周围的蓝牙(Bluetooth)设备并实现数据通信
- 如何在C#中实现treeview查找某一节点
- C#中如何实现在TreeView模糊查找某一节点
- 求助!!EXCEL里如何实现模糊查询的输入方式。
- 如何实现VB与EXCEL的无缝连接
- Excel 输入公式时如何让函数知道自己所在单元格的引用