从列表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 )。
如果你的信息( AEZS
, AEMD
等等)在列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“ 复制…”和“ 确定” 。