Excel在其他列中读取整个列 - 提取结果

时间:2016-04-14 04:01:36

标签: excel excel-formula

我需要一个excel公式来帮助我做以下事情。我想在一列(B)中读取“字母”,然后“提取”它旁边的列中的值(A)。下面的示例:在下面示例的“Result”列中,我的公式读取B列的所有“g”,然后写入所有相应的值。我无法使用VLOOKUP,因为总是给我第一个找到的“g”的值。有没有办法在这里使用VLOOKUP。我目前的解决方案是以下公式

{=INDEX($A:$B,SMALL(IF($B:$B=J$5,ROW($B:$B)),ROW(1:1)),1)} 

(5美元,只是我有字母“g”的单元格,B列中要查找的项目)。虽然这个公式有效,但有两个缺点:1)一旦找不到“g”,返回的是“#NUM!”,我不喜欢,如果它没有找到更多,我只得到一个空单元格2)这个公式有点慢,不是什么大不了的事,但我以前从未在计算机上这么做过。非常感谢您的意见。

    Column A    Column B  Result (letter g(J$5))
    23             f        27
    27             g        87
    34             h        54
    56             h        88
    87             g        4
    35             f        
    8              f        
    54             g        
    468            h        
    88             g        
    90             f        
    4              g        

2 个答案:

答案 0 :(得分:3)

数组公式在大型数据集上总是很慢。考虑使用高级过滤器而不是数组公式。设置如下:

enter image description here

您可以在此处找到高级过滤器的简介:Excel Advanced Filter Introduction

答案 1 :(得分:0)

数组公式版本FYI(为简单起见,您可能希望将范围命名为$ C $ 3:$ C $ 18):

(单击图像的公式)

=IFERROR(INDIRECT(ADDRESS(SMALL(IF($C$3:$C$18=$F$2,ROW($C$3:$C$18),""),ROW()-ROW($F$2)),COLUMN($B$2))),"")