1职场实例
小伙伴们大家好,今天我们来解决一个来自Excel答疑群里的一位粉丝的问题:如何查找出数据区域中小于等于69的最大数值?问题直接表达有些抽象,我们来用几组简单的数据模拟具体的工作场景。
如下图所示:
A2:C4单元格区域为数据区域,我们发现数据区域中既有文本数据又有数值数据,我们想要在E2单元格统计并显示出A2:C4单元格区域中小于等于69的最大数值是多少。

2解题思路
这个问题的解决方法有很多种,今天我们着重讲解掌握使用函数来重新构造数组的方法,用数组公式的思维解决这个问题。
下面我们来介绍一下具体的解决方案。

在数组公式中经常需要使用“自然数序列”作为函数的参数,如LARGE或SMALL函数等的第2个参数。手工输入常量数组比较麻烦且容易出错,所以我们经常使用ROW函数或COLUMU等函数生成序列。
首先我们在E2单元格输入函数公式:
=ROW(1:9)
因为A2:C4单元格区域是一个3行3列的包含9个元素的二维数组区域,所以我们首先使用ROW函数产生1~9的自然数序列。
我们选中公式部分,然后按下键盘上的F9键可以查看数组的所有元素:
={1;2;3;4;5;6;7;8;9}

我们继续完善E2单元格的公式为:
=SMALL(A2:C4,ROW(1:9))
SMALL函数可以返回列表区域中的第K个最小值。即用SMALL函数依次返回A2:C4区域中的第1到第9个最小值。
利用SMALL函数对二维数组进行排序,转换成了一维数组。我们选中公式部分,然后按下键盘上的F9键可以查看一维数组的所有元素:
={9.263;68.1;68.3;68.5;70;100;115;#NUM!;#NUM!}

我们继续完善E2单元格的公式为:
=LOOKUP(69,SMALL(A2:C4,ROW(1:9)))
由于LOOKUP函数的参数只支持使用一维数组,所以我们上一步骤已经把LOOKUP的第2参数用SMALL函数将二维数组转换为了一维数组。
由于二维数组中包含文本,因此结果包含错误值#NUM!。用LOOKUP函数在该内存数组中忽略错误值进行查找,即可返回小于等于69的最大数值68.5。
