Excel(实战):INDEX函数和MATCH函数

目录

经典用法两者嵌套查值

题目

  • 根据左表查询这三个人的所有数据

解题分析

  • INDEX函数的参数:第1个参数是选定查找范围,第2个参数是要查找的行号,第三个参数是要查找的列号...它是根据你提供的行列号、来返该区域指向的值!
  • MATCH函数的参数:第1个参数是要查找的值,第2个参数是值所在的范围
sql 复制代码
公式=INDEX($A$1:$H$13,MATCH($K6,$B:$B,0),MATCH(L$5,$A$1:$H$1,0))


INDEX巧妙用法

让数组公式,自动填充所有、有数据的行/列

  • 题目:输入分数自动给他评级
  • 解决办法推导:可以用lookup函数数组的方式来查找返回值,如果直接给定,确定的单元格的话,如下列,我们选的是D2这个单元格,如果新增数据的话,并不能做到实时的更新!
sql 复制代码
公式 =LOOKUP(D2,{0,60,80,90},{"不及格","及格","良好","优秀"})

所以我们把第二改成一个范围,取到D列的整列 D2:Dn

我也只需要获取到D列的最后一个位置就可以!

所以就要用到counta函数了,他可以统计最后一个非空单元格!

利用index的特俗写法:INDEX(D:D,COUNTA(D:D)) 这种查找最后一个非空单元格,于是公式就可以写成:

sql 复制代码
=LOOKUP(D2:INDEX(D:D,COUNTA(D:D)),{0,60,80,90},{"不及格","及格","良好","优秀"})
  • 优化:如果输入的内容是空值,我们可以先定位到、一定不为空值一列,然后利用OFFSET函数把它右移一个位置!
sql 复制代码
=LOOKUP(D2:OFFSET(INDEX(C:C,COUNTA(C:C)),0,1),{0,60,80,90},{"不及格","及格","良好","优秀"})
  • 再优化:只需再加上一个IF函数的新增对空值的判断!

公式

sql 复制代码
=IF(D2:OFFSET(INDEX(C:C,COUNTA(C:C)),0,1)="","",LOOKUP(D2:OFFSET(INDEX(C:C,COUNTA(C:C)),0,1),{0,60,80,90},{"不及格","及格","良好","优秀"}))

当然也可以直接再lookup数组中新增一个空值选项,只需要新增一个0,并且指向空!啊啊。

sql 复制代码
=LOOKUP(D2:OFFSET(INDEX(C:C,COUNTA(C:C)),0,1),{0,1,60,80,90},{"","不及格","及格","良好","优秀"})
相关推荐
我命由我123455 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
抱抱宝6 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
嘻哈∠※6 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
用户938515635077 小时前
Next.js 笔记系统(二):Redis 数据服务与侧边栏组件拆分实战
javascript·全栈
白狐_7987 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2588 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
码匠许师傅8 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
极创信息10 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate
Heo10 小时前
大厂前端调试不能只会debugger
前端·javascript·面试
汉字萌萌哒10 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++