说到按条件查询并返回值,大家都不陌生。但是常用的 vlookup, hlookup 函数只能解决一维查询,即单一条件查询。
查询二维表,比如既要满足行条件,又要满足列条件,怎么做?
用 index 和 match 函数组合可以解决这个需求。
我用的版本是 Excel 2016,其他版本的界面可能略有不同。
示例:
比如下表是学生的考试成绩原始表,需要查找某学生的某科成绩,怎么做?
我做了一个结果示例,姓名和学科列,都是可选的下拉菜单,当这两列选定以后,成绩列会显示出赵六同学的政治成绩。
解决方案:
当当当当~ index 和 match 函数组合拳闪亮登场!
=INDEX(B2:I7,MATCH(B11,A2:A7,0),MATCH(A11,B1:I1,0))
我把机器语言翻译成人类语言帮助大家理解一下阿:
B2:I7:查找的数据源的区域,这里是所有成绩区域
MATCH(B11,A2:A7,0):在第几行
MATCH(A11,B1:I1,0)):在第几列
再把 match 函数翻译一下:
MATCH(B11,A2:A7,0):根据B11 (学科)的值,查找并返回该学科所在的行数
MATCH(A11,B1:I1,0)):根据A11 (姓名)的值,查找并返回该同学所在的列数
* 请注意:index 函数规定,行和列值的返回顺序不可以反过来,也就是说,上面两个 match 函数的位置不能互换。
啥?下拉菜单怎么做?好吧,那也说一下,虽然在本文教这个有点拉低技术含量。
1. 选择菜单 Data --> Data Validation --> Data Validation
2. 在第一个下拉菜单里选择 List
3. 点击 Source 中的输入区域 --> 拖动选择需要的下拉菜单项,这里是所有姓名 --> OK
4. 同理制作学科列的下拉菜单
想找时间好好学学excel