从列表Excel拉

我有一个频繁更改的集合列表。 示例如下所示:

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,我不熟悉它的工作,另外,我希望能够保持单元格在他们的每一行(如不是在一个单元格)

您可以使用数组公式(使用CTRL + SHIFT + ENTERinput )。

如果你的信息( AEZSAEMD等等)在列A中,从第一行开始,你可以把它放在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],"")

在这里输入图像说明

您可以通过使用AGGREGATE函数来避免使用数组公式。 把“起始字母”放在一个单元格中,这样也可以方便地更改。 例如,您的数据在myRange列A和第一行的起始字母中,

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

selectB2,并根据需要填写(例如Bn)

然后selectB2:Bn,并根据需要填写。

在这里输入图像说明

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

当然,如果这不需要是dynamic的,你总是可以使用简单或高级的filter。 再次,这些在HELP中得到了很好的解释。

高级filter提供了一些function,虽然不是dynamic的:

在ColumnA中添加一个标签,在A2中添加一个标准:

 ="=A*" 

然后selectDATA> Sort&Filter,Advanced,然后select复制到另一个位置 ,为列表范围selectColumnA A1:A2作为标准范围:复制到:适合的地方。

高级filter会记住这些设置(奇怪的是, 复制到另一个位置除外),因此如果ColumnA的内容发生更改,只需点击几下鼠标即可再次调用高级filter,请select“ 复制…”和“ 确定”