在另一个单元格中查找包含特定文本的所有单元格,然后将这些单元格返回到与指定单元格相同行的另一列中
我需要在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 | | +------+-------+-----------------+
- 指定
COL1
每个单元格中的值 - 在
COL2
,查找包含COL1
的值的所有单元格 - 在
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已经指出了正确的方向。