在另一个单元格中查找包含特定文本的所有单元格,然后将这些单元格返回到与指定单元格相同行的另一列中

我需要在Excel中find一个方法来做下面的事情:

+------+-------+-----------------+ | COL1 | COL2 | Col3 | +------+-------+-----------------+ | A | A_1 | A_1, A_2, A_3 | | C | A_2 | | | B | D_1_A | B_1, B_2, B_2_A | | E | B_1 | | | F | B_2 | | | D | B_2_A | D_1_A | | G | A_3 | | +------+-------+-----------------+ 
  1. 指定COL1每个单元格中的值
  2. COL2 ,查找包含COL1的值的所有单元格
  3. COL3 ,在与COL1的行索引匹配的单个单元格中,返回COL2中所有包含COL1中单元格值的单元格值

这个问题的措辞很混乱,但我希望桌子更有意义。 我尝试了大量的IF,SEARCH,INDEX和VLOOKUP函数,但没有正确地做到这一点。 请注意,列表没有任何特定的顺序(我无法按字母顺序列出,因为单元格中的下划线会混淆工作簿中的其他公式)。 任何帮助,将不胜感激!

如果VBA是一个选项,那么你可以编写自己的UDF,它可以实现,你会做什么。

复制到一个模块:

 Function ConStr(a As Range, b As Range) As String Dim r As Range For Each r In a If r.Value <> "" And Left(r.Value, 1) = b.Value Then If ConStr = "" Then ConStr = r.Value Else ConStr = ConStr & " " & r.Value End If End If Next r End Function 

那么你会使用这样的function:在Col3把这个公式

 =ConStr(B$1:B$7,A1) 

并尽可能拖下去。

如果VBA不是一个选项,那么Scott已经指出了正确的方向。