如何在Excel中的两个独立列中匹配与返回相关的单元格字段?
我试图创建一个公式,显示所有匹配的字段,但另外还包括链接的单元格。类似这样的事情- Brad中的用户类型和结果框应显示Brad、Adam、Charlie、David,因为Brad链接到Adam,Adam链接到Charlie和David如何在Excel中的两个独立列中匹配与返回相关的单元格字段?,excel,Excel,我试图创建一个公式,显示所有匹配的字段,但另外还包括链接的单元格。类似这样的事情- Brad中的用户类型和结果框应显示Brad、Adam、Charlie、David,因为Brad链接到Adam,Adam链接到Charlie和David A B Adam|Brad Adam|Charlie Adam|David Evan|Fred 公式: {IFERROR(IFERROR(INDEX(Column B,SMALL(IF(Column A=InputCriteria,ROW(Column
A B
Adam|Brad
Adam|Charlie
Adam|David
Evan|Fred
公式:
{IFERROR(IFERROR(INDEX(Column B,SMALL(IF(Column A=InputCriteria,ROW(Column A)-1),ROW(1:1))),INDEX(Column A,SMALL(IF(Column B=InputCriteria,ROW(Column B)-1),ROW(1:1)))),"")}
我的名字是布拉德,所以我忍不住,我不得不给一个解决方案一个尝试- 将以下代码添加到VBA编辑器中的新模块
Public Function GetAssociatedNames(ByVal strName As String, ByVal rngCells As Range) As String
Dim lngRow As Long, lngCol As Long, lngBlanks As Long, objNames As Scripting.Dictionary
Dim strName1 As String, strName2 As String, i As Long, strNameToAdd As String, x As Long
Dim lngStart As Long, lngCount As Long, lngForCount As Long
strName = Trim(strName)
Set objNames = New Scripting.Dictionary
objNames.Add strName, strName
With rngCells
lngStart = 0
Do While True
lngForCount = objNames.Count - 1
If lngStart > lngForCount Then Exit Do
For x = lngStart To lngForCount
strName = objNames.Keys(x)
lngCount = objNames.Count
For lngRow = 1 To .Rows.Count
strName1 = .Cells(lngRow, 1)
strName2 = .Cells(lngRow, 2)
If strName1 & strName2 = "" Then
lngBlanks = lngBlanks + 1
Else
lngBlanks = 0
If strName1 = strName Then strNameToAdd = strName2
If strName2 = strName Then strNameToAdd = strName1
If Not objNames.Exists(strNameToAdd) And strNameToAdd <> "" Then objNames.Add strNameToAdd, strNameToAdd
End If
If lngBlanks = 10 Then Exit For
Next
lngStart = lngStart + 1
Next
Loop
End With
For i = 0 To objNames.Count - 1
GetAssociatedNames = Trim(GetAssociatedNames & "," & objNames.Keys(i))
Next
GetAssociatedNames = Replace(Mid(GetAssociatedNames, 2), ",", ", ")
End Function
。。。然后添加对Microsoft脚本运行时的引用
然后你可以在单元格中使用这个公式,就像这样
它对我有效,希望对您有效。用户是否可以从a列输入值?在这种情况下,亚当,然后你还要匹配B栏中所有的布拉德、查理和戴维斯?我很感激,布拉德先生!我正在寻找更多使用数组的excel公式答案,但这也很有效。再次感谢!我刚刚意识到,只有当搜索从左栏中的字段开始时,它才起作用。如果搜索条件以右列上的字段开头,则不会获取所有匹配项。如果有人能帮忙,那就太好了。如果没有,我将尝试解决并报告。thanks@DavidG让我调查一下。我会再打给你的。@DavidG事实上,我能确认你使用的箱子和清单上的一样吗?也就是说,约翰和约翰是不同的。从我的手机上看,它是区分大小写的。那么你真的得到结果了吗?布拉德,亚当,查理,大卫,弗雷德,埃文?我有布拉德,亚当,埃文