我的Excel有问题。
我有一个在A列中有值的表,这些值对应于B列中的多个值。例如A包含合并单元格中的汽车公司A1:A6和B在属于该单元格的单个单元格中包含6个汽车名称公司
现在我必须使用Car Company执行VLookup作为LookUp值,然后返回属于该公司的所有车名。
问题在于,当我执行VLookUp时,将返回第一个单元格中的车名而不是所有6辆车。
很抱歉,我无法在此处添加任何excel图片,因为我在stackoverflow上的声誉不够。
答案 0 :(得分:0)
将它放在工作簿中的普通代码模块中:
Function GetModelNames(make As String, columnRange As Range, columnOffset As Integer)
Dim r As Long
Dim mergeRange As Range
Dim cl As Range
Dim ret
'Gets the first ROW within specified columnRange
r = Application.Match(make, columnRange, False)
'iterate over the mergeArea
For Each cl In columnRange(r).MergeArea
'Concatenate a string of each cell in the offset column:
ret = ret & IIf(ret = "", "", ", ") & cl.Offset(, columnOffset).Value
Next
'return the value to the function
GetModelNames = ret
End Function
然后称之为:
=GetModelNames("Ford", A:A, 1)
论点:
make
:应该是汽车制造商columnRange
:应为byRef范围地址,例如“A1:A500”或“A:A”等。columnOffset
:距离columnRange多少列?