查找函数,查找唯一值,简单实用!

如何根据单元格是否有值得到对应行的标题(应该是对应列的标题,属于问题描述错误)?并且每行只有一个非空单元。

LOOKUP函数查找唯一值,简单又实用!

考虑到数据隐私,我自己模拟了一个简单的表格,看看如何解决这个问题。

LOOKUP函数查找唯一值,简单又实用!

▲教学案例模拟

如图,左边的表格记录了A、B、C、D、E5球员在一场比赛中所用的时间,共计4局。只记录唯一成功的玩家和花费的时间,记录4行。现在要求提取I栏中每场比赛的成功选手,请大家思考1分钟。如果是你,你会用什么方法?今天徐老师和大家分享两个方法。

方法1:数组方法

对于这个问题,大多数人的思维逻辑是:在每一行数据中,判断每个单元格是否非空,如果是,则提取对应的列标题。逻辑很简单,但是写起来真的很难,需要对函数和数组有非常熟练的掌握。

逐个判断每个细胞——用一个数组;

是否为非空单元格-not (isblank())

找到与标题地址相对应的单元格的地址(在行和列中)

选择相应的标题-间接(地址())

所以,你看,首先你得知道有ISBLANK,ADDRESS,INDIRECT等函数。在EXCEL中,然后就有可能把它们想出来,把思路拆开,转化成每一步的公式。否则就算你思路清晰也没用!学习EXCEL是为了帮助我们把思维变成有效的思维,否则就是空中楼阁。拆解之后,我们来看看我写的公式:

LOOKUP函数查找唯一值,简单又实用!

公式:{= indirect (address (2,max (if (not (isblank (C3: G3)),column (C3: G3),0)))

用数组公式判断一行中每个单元格是否非空,如果是,返回对应的列号(列函数),否则返回0。这样,IF函数返回一个数组。以第一局为例,返回的结果是{0,4,0,0,0}。MAX函数嵌套在IF外部,最大值从数组中找到。以第1局为例,是4。然后用address (2,4)计算出对应标题的单元格地址,即$D$2单元格。最后用INDIRECT函数返回文本指向的单元格,得到$D$2-B对应的值,其他行,公式相同。