LOOKUP函数查找唯一值,简单又实用!
2023-01-26 餐饮美食网 【 字体:大 中 小 】
如何根据单元格是否有值,取到对应行的标题(应该是对应列标题,属于提问描述有误)?并且每行中有且只有一个非空单元格。
考虑到数据隐私,我自己模拟了一个简单的表格,来看如何解决这个问题。
▲ 教学案例模拟
如图,左侧表格记录的是A、B、C、D、E5名选手在一项比赛的用时,总共4局,只记录唯一一个成功的选手及用时,记录了4行。现在要求在I列处,将每一局成功的选手提取出来。请考虑1分钟,如果是你,你会使用什么方法?今天,徐老师跟大家分享两种方法。
方法1:数组法
对这个问题,大多数人的思考逻辑是:在每一行数据中,挨个判断每个单元格是不是非空,如果是,则将对应列标题提取出来。逻辑很简单,但是真的写起来是有难度的,需要对函数、对数组有着非常熟练的掌握。
挨个判断每个单元格——须用到数组;
是不是非空单元格——NOT(ISBLANK())
找到对应标题的单元格地址——ADDRESS(所在行,所在列)
提取对应标题——INDIRECT(ADDRESS())
所以你看,首先你得知道EXCEL里有ISBLANK、ADDRESS、INDIRECT等等这些函数,然后才有可能想起它们,将思路拆解并转化为每一步公式。否则,即使你的思路再清晰也没用!学习EXCEL,就是帮助我们把有思路真正转化为有效思考,否则就是空中楼阁。经过拆解后,下面来看我写的公式:
公式:{=INDIRECT(ADDRESS(2,MAX(IF(NOT(ISBLANK(C3:G3)),COLUMN(C3:G3),0)))) }
利用数组公式判断一行中每个单元格是否为非空,如果是则返回对应的列号(COLUMN函数),否则返回0。这样IF函数返回的就是一个数组,以第1局为例,返回结果为{0,4,0,0,0}。IF外面嵌套MAX函数,从数组中求出最大值,以第1局为例,即为4。再用ADDRESS(2,4)计算出对应标题的单元格地址,即$D$2单元格,最后用INDIRECT函数返回文本指向的单元格,得到$D$2对应值——B。其它几行, 同样的公式。
如何自制蛋挞
肉火烧面怎么和面
奶茶几分糖好喝
过桥米线是哪里的?
面霜和乳液的区别
怎么摘隐形眼镜
粉饼和散粉的区别
冷烫和热烫的区别
高品质香水如何鉴别?用三步就可以解决
如何去除黑眼圈