美文网首页
一个条件多个结果,放到不同单元格中 2018-01-27

一个条件多个结果,放到不同单元格中 2018-01-27

作者: 善建成洲 | 来源:发表于2018-01-27 17:26 被阅读0次

【注】
1、数组公式 ctrl+shift+enter

[说明如下]

2018-01-27_180542.png
2018-01-27_180531.png

=INDEX(A:A,SMALL(IF($B$2:$B$20="Sam",ROW($2:$20),4^8),ROW(A1)))&""

  1. 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
  1. INDEX(A:A ..
    INDEX函数从A列中,提取出对应位置的内容。

如果SAMLL的结果是65536,index返回的结果就是A65536单元格的内容,如果A65536单元格本身是空单元格,INDEX会返回一个无意义的0,所以加上&"" ,使结果变成文本,这样就不会出现无意义的0了。
评分

相关文章

网友评论

      本文标题:一个条件多个结果,放到不同单元格中 2018-01-27

      本文链接:https://www.haomeiwen.com/subject/hfznaxtx.html