如何使用excel公式返回包含特定值的所有行

时间:2017-07-03 13:44:17

标签: excel excel-formula

我需要一个excel公式来选择包含某个关键字的所有行,然后返回这些行的数据透视表,或者将它们复制到工作簿中的另一个工作表。我不能使用VBA或过滤器,它必须使用excel函数。如果它可以搜索多张表格也会有所帮助。

这是我到目前为止所拥有的

=INDEX($A$2:$B$29,SMALL(IF($B$2:$B$29=$G$2,ROW($B$2:$B$29)),ROW(1:1))-1,1)

但它只返回匹配的行中的单个值,而不是整行,而不是数据透视表。

1 个答案:

答案 0 :(得分:0)

我认为我找到了一个有关两种可能性的解决方案:

鉴于您的数据存放在第1页的A栏中。

  • 其中所包含的值不会被重复,这意味着找不到两个相同的出现位置:

您应该因此创建一个新工作表,然后在案例A1中复制值0,然后将此行复制到同一列的其他行。

=IFERROR(INDIRECT("Sheet1!$A"&MATCH("*a*";INDIRECT("Sheet1!"&ADDRESS(IF(ISNUMBER(A1);A1;MATCH(A1;Sheet1!$A$1:A100;0))+1;1;1;1)):Sheet1!A100;0)+IF(ISNUMBER(A1);A1;MATCH(A1;Sheet1!$A$1:Sheet1!A100;0)));"")
  • 搜索的值包含重复项:

通过A2 -> A100A1

中的0复制此内容
=IFERROR(MATCH("*a*";INDIRECT("Sheet1!"&ADDRESS(A1+1;1)):Sheet1!A100;0)+A1;"")

然后在整个B2 -> B100

中复制此内容
=IFERROR(INDIRECT("Sheet1!"&ADDRESS(A2;1));"")

自动A1A2应分别增加实际行数。还有一种方法可以在一个整个单元格内填充(或连接)所有结果,因为我的EXCEL版本不包括返回数据透视表。