如下所示的工作表,在单元格区域A1:A7中有一组数据,如何使用公式获取该区域中最长内容的单元格数据?即单元格A2包含的文本“excelperfect”。
先不看答案,自已动手试一试。
公式思路
先求出单元格区域中每个单元格中数据的长度,然后查找最长的长度所在的单元格位置,最后根据该位置获取相应单元格的值。
公式
在单元格C3中的数组公式如下:
=INDEX(A1:A7,MATCH(MAX(LEN(A1:A7)),LEN(A1:A7),0))
结果如所示。
公式解析
首先,公式中的:
LEN(A1:A7)
获取单元格区域A1:A7中各单元格数据的长度,即{7;12;6;4;10;5;6}。
MAX(LEN(A1:A7))
获取长度值中的最大值,即12。
因此,公式中的:
MATCH(MAX(LEN(A1:A7)),LEN(A1:A7),0)
变为:
MATCH(12,{7;12;6;4;10;5;6},0)
其结果为2。
将该值代入INDEX函数,即公式变成:
INDEX(A1:A7,2)
得到单元格A2中的值。
小结
LEN函数可以用于生成一系列代表文本长度数据的数组。
经典的MATCH函数与INDEX函数相配合,获取单元格中的值。
也可以使用下面的数组公式得到同样的结果:
=OFFSET(A1,MATCH(MAX(LEN(A1:A7)),LEN(A1:A7),0)-1,0,1,1)
有兴趣的朋友可以自已思考一下。