【注】
1、数组公式 ctrl+shift+enter
[说明如下]
![](https://img.haomeiwen.com/i262210/af7a146422b36771.png)
![](https://img.haomeiwen.com/i262210/91d337f9e324f281.png)
=INDEX(A:A,SMALL(IF($B$2:$B$20="Sam",ROW($2:$20),4^8),ROW(A1)))&""
- IF($B$2:$B$20="Sam",ROW($2:$20),4 ^ 8)这部分
如果$B$2:$B$20的内容等于指定的"Sam",就返回对应的行号,否则返回一个4^8,也就是4的8次方,即65536,这是Excel 2003版本中最大行号,一般来说 到这个位置 就不会有内容了。
返回由符合条件的行号及65536组成的内存数组(数组中的值如下图)。
-
SMALL(IF($B$2:$B$20="Sam",ROW($2:$20),4^8),ROW(A1))
然后使用SMALL函数 从返回内存数组中(数组中的值如下图),从小到大依次取值,提取结果作为INDEX的索引值。
其中ROW(A1),返回单元格的行号,随着填充柄向下填充自动变为row(a2) row(a3),返回的值也变为2 、3,依次对应第2小、第3小的数值。
2018-01-27_182214.png
- INDEX(A:A ..
INDEX函数从A列中,提取出对应位置的内容。
如果SAMLL的结果是65536,index返回的结果就是A65536单元格的内容,如果A65536单元格本身是空单元格,INDEX会返回一个无意义的0,所以加上&"" ,使结果变成文本,这样就不会出现无意义的0了。
评分
网友评论