2017-08-08 68 views
1

我在Excel,A和B中有两列。 我需要查找B中包含整个列的所有行(即将它们放在另一列中)在列A中例如任何细胞,假设A包含:查找列中包含其他列的文本行的公式

apple 
banana 

而B包含:

I like apples 
I like pears 
I like bananas 

然后我会看到,在C列中,以下行:

I like apples 
I like bananas 

我想要一种方法来使用Excel公式来做到这一点。提前致谢!

注意:如果包含有类似“豌豆”和B包含“留兰香”,那么那句“我喜欢留兰香”将出现在C列 - 上面只是一个例子

+0

另外,我选择保留我的问题一般为别人谁可能使用这个问题,其答案的缘故,但我可以添加细节,将使其更容易回答,如果需要的话。 – Koloktos

+1

不,我们认为这是不可能的。我将编辑我的问题,指定 – Koloktos

+1

https://stackoverflow.com/questions/13229507/check-cell-for-a-specific-letter-or-set-of-letters可能是有趣的。 – pnuts

回答

4

有关的复杂性的意见所需公式是正确的,因为它需要一些2D数组的中间计算。但在这里它是FWIW ...

C1输入以下公式,按 Ctrl键输入然后复制/粘贴到向下填充柱C(看看的示例图了解更多详情):

C1: 
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($1:$99)/ 
    (ISNUMBER(SEARCH(TRANSPOSE("*"& $A$1:$A$4 & "*"), $B$1:$B$99))),ROW(1:1))), "") 

按Ctrl输入

enter image description here

+0

非常好 - 我有一些想法很难,但我不认为这会很复杂。它适用于我,但我试图理解它背后的逻辑 - 对于“A $ A4”部分,是因为本例中A列的长度是4? – Koloktos

+1

@Koloktos这是正确的;如果关键字的范围(列A)包含空单元格,公式将不起作用。另一方面,列B上的限制'99'只是为了减少计算时间。公式所做的是计算A中关键字和B中句子之间匹配的“矩阵”,然后对矩阵中匹配条目的行进行索引(这就是'Row(1:1)'的目标,这将增加在每一行找到下一场比赛)。 –

相关问题