达永编程网

程序员技术分享与交流平台

提取第一次出现内容的列标题,Match与Index入门必学!

1职场实例


小伙伴们大家好,今天我们来学习Excel职场入门必学案例:如何提取每行第一次出现内容的列标题?要想解决这个问题呢,我们又要必须掌握Match函数与Index函数。这两个函数是我们入门Excel必须要掌握的函数。但是很多办公人却不以为然,总感觉只要掌握了“数据透视表”和“Vlookup函数”就可以驰骋职场了,然而实际却是不会Match函数与Index函数在职场中寸步难行,这两个函数是我们学习Excel的本分


如下图所示

B1:D4区域由一行标题行和三行具体的姓名数据组成,每行姓名数据都不是完全连续的,有些单元格由于没有记录数据,所以显示空白,我们想要将每行姓名数据中从左往右的方向,提取姓名第一次出现的位置所对应的首行标题,显示在A列对应的单元格中。



2解题思路


我们刚才说了,解决今天这个问题,我们需要用到Match函数Index函数以及简单的入门的数组思维


MATCH函数是一种查找函数,用来某值在某单元格区域的相对位置。比如,某数字在某单元格范围的第几行。


INDEX函数通常用来查找数据,根据指定的行和列找到某单元格的内容。



下面我们就来看一下具体操作方法。



首先我们在A2单元格输入函数公式

=B2:D2<>""


这是一个逻辑判断公式,逻辑很简单的:我们判断B2:D2区域内的数据是否等于空值。如果B2:D2区域内的某个单元格数据等于空值的话,返回逻辑值假值FALSE;如果B2:D2区域内的某个单元格数据不等于空值的话,返回逻辑值真值TRUE。


返回的结果是以数组的形式呈现的,选中公式后按下F9键可查看数组元素:

={FALSE,TRUE,TRUE}


我们以第一行姓名数据为例。发现数组中返回三个逻辑值,因为B2单元格是空值单元格,逻辑判断“B2<>""”不成立,所以返回FALSE;C2单元格是内容“耿六”,逻辑判断“C2<>""”成立,所以返回TRUE;D2单元格是内容“周九”,逻辑判断“D2<>""”成立,所以同样返回TRUE。



我们用上一步的公式作为MATCH函数的第2参数,继续完善公式为

=MATCH(TRUE,B2:D2<>"",0)


MATCH函数是一种查找函数,用来某值在某单元格区域的相对位置。比如,某数字在某单元格范围的第几行。


函数公式:

=MATCH(搜索键值, 范围, [排列顺序])


搜索键值(必填):你想查找的值 。

范围(必填):可能包含有所要查找数值的连续的单元格区域,仅支持单行或单列,不支持多行/多列。

排列顺序(选填):1 为默认类型,此时假设范围已按升序排序,返回小于等于搜索键值的最大值。0 表示完全匹配,在范围未排序的情况下需要使用此方式。-1 是指假设范围是按降序排序时,返回大于等于搜索键值的最小值。


我们以第一行姓名数据为例。MATCH函数查找逻辑值TRUE在B2:D2<>""中的相对位置,也就是说查找逻辑值TRUE在数组{FALSE,TRUE,TRUE}中的相对位置。值得注意的是虽然数组元素中有两个逻辑值TRUE,但是MATCH函数会始终只查找第一个TRUE所在的相对位置,也就是说在B2:D2中的相对位置是2(数组中第2个元素)


选中公式后按下F9键可查看数组返回结果

=2



我们用上一步的公式作为INDEX函数的第2参数,继续完善公式为

=INDEX($B$1:$D$1,MATCH(TRUE,B2:D2<>"",0))


INDEX函数通常用来查找数据,根据指定的行和列找到某单元格的内容。


函数公式:

=INDEX(引用, 行, [列], [区域])


引用(必填):指要查找的区域范围

行(必填):行数

列(选填):列数

区域(选填):选用的第几个引用的区域, 如果只有一个区域可直接输入1。


我们以第一行姓名数据为例。INDEX函数,绝对引用固定查找B1:D1区域(第一行标题)中,在固定第1行与第1个姓名“耿六”出现的相对位置2(列),交叉所对应的数据是“2012”。


由于第2参数“行”始终是第1行,与第1参数B1:D1始终重合,所以省略了。这就是我们发现此例中INDEX函数只包括2个参数的原因了。


控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言