从列表Excel中拉出

时间:2017-08-01 17:29:45

标签: excel excel-formula

我有一个经常更改的设置列表。示例如下所示:

A1 AEZS
A2 AEMD
A3 EARS
A4 BCT
A5 BSTG
A6 CHFS
A7 BPMX
A8 ABCD
A9 ZERNA
A10 APPL

我想从这个列表中提取拉出以字母" A"开头的单词,并将其放入另一个列表中。从我的研究中,我意识到使用以下功能。

以下是我想要做的最终结果(C列是任意的):

C1 AEZS
C2 AEMD
C3 ABCD
C4 APPL

我该怎么做? 我知道使用公式=IF(LEFT("A",1)....etc可能是一个好的开始。但我是Excel的新手,我不太熟悉它。另外,我希望能够将细胞保持在每一行(就像在一个细胞中一样)

3 个答案:

答案 0 :(得分:1)

您可以使用数组公式(使用 CTRL + SHIFT + ENTER 输入)。

如果您的信息(AEZSAEMD等)位于A列,从第1行开始,您可以将其放入B1并向下拖动:

=INDEX($A$1:$A$10,SMALL(IF(LEFT($A$1:$A$10,1)="A",ROW($A$1:$A$10)-ROW(A$1)+1),ROWS(A$1:A1)))

然后,要隐藏错误,只需在其周围包裹IFERROR([above formula],"")

enter image description here

答案 1 :(得分:0)

您可以使用AGGREGATE函数避免使用数组公式。将“起始字母”放在单元格中以便可以更改也可能很方便。例如,您的数据位于A列的myRange和第一行的起始字母

B2:  =IFERROR(INDEX(myRange,AGGREGATE(15,6,1/1/(LEFT(myRange)= B$1)*ROW(myRange),ROWS($1:1))),"")

选择B2并根据需要填写(例如Bn)

然后选择B2:Bn并根据需要填写。

enter image description here

要了解这是如何工作的,我建议您使用Excel的内置帮助功能,以及公式评估工具。

当然,如果这不需要是动态的,您可以始终使用简单或高级过滤器。同样,这些在HELP中得到了很好的解释。

答案 2 :(得分:0)

高级过滤器提供了一些功能,但不是动态的:

向ColumnA添加标签,在A2中添加标准:

="=A*"

然后DATA>排序&过滤,高级并选择复制到其他位置,为列表范围:选择ColumnA,为标准范围选择A1:A2复制到:,只要适合。

高级过滤器会记住这些设置(奇怪的是,复制到另一个位置除外),因此如果ColumnA的内容发生变化,只需点击几下即可再次调用高级过滤器,选择复制...... 确定