我需要在Excel中找到一种方法来执行以下操作:
+------+-------+-----------------+
| 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
<中单元格值的所有单元格值/ LI>
醇>
这个问题的措辞令人困惑,但我希望这个表更有意义。我尝试了很多IF,SEARCH,INDEX和VLOOKUP函数,但未能正确执行此操作。请注意,列表不是以任何特定顺序排列的(我不能按字母顺序列出它,因为单元格值中的下划线会弄乱工作簿中的其他公式)。任何帮助将不胜感激!
答案 0 :(得分:1)
如果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
然后你会使用这样的函数: 在Col3中放了这个公式
=ConStr(B$1:B$7,A1)
并根据需要向下拖动。
如果VBA不是一个选项,那么斯科特已经指出了正确的方向。