我已成功使用INDEX和MATCH,但我遇到了问题。
例如,如果数据是:
green apple | walmart | 5
green apple | walmart | 23
red apple | walmart | 5
orange | macy's | 4
我希望在green apple
中销售所有walmart
个,并获得每个{{1}}的数量,例如:5,23,5。
使用INDEX MATCH时,我只能得到它匹配的第一个。如何获取多个值并将它们连接在一个单元格中?
编辑评论中的更多示例(未由OP添加):
答案 0 :(得分:0)
我不确定你要找的是单独的工作表公式。这是一个应该做的简短VBA例程。
Function MatchConcat(LookupValue, LookupRange As Range, ValueRange As Range)
Dim lookArr()
Dim valArr()
Dim i As Long
lookArr = LookupRange
valArr = ValueRange
For i = 1 To UBound(lookArr)
If Len(lookArr(i, 1)) <> 0 Then
If lookArr(i, 1) = LookupValue Then
MatchConcat = MatchConcat & ", " & valArr(i, 1)
End If
End If
Next
MatchConcat = Mid(MatchConcat, 3, Len(MatchConcat) - 1)
End Function
代码是用户定义的函数,可以在工作表中使用。该函数有三个参数:
它返回匹配值的逗号分隔字符串。
可以将代码粘贴到标准模块中(可以通过在功能区的Visual Basic
标签中选择Developer
来插入,然后选择Insert
- &gt; {{1从菜单栏开始。