在EXCEL的A1:A5中分别有数据:1、1、2、3、1.在B1:B5中分别有数据:3、4、5、2、3.
现在要在A1:A5中先找到含有数据X的单元格,再找到这些单元格与B列对应的单元格里的数据(对应指:A1与B1,对应A2与B2,对应A3与B3,对应A4与B4对应等等),最...
现在要在A1:A5中先找到含有数据X的单元格,再找到这些单元格与B列对应的单元格里的数据(对应指:A1与B1,对应A2与B2,对应A3与B3,对应A4与B4对应等等),最后将这些数据输出到一个单元格(用逗号隔开).要求做成自定义函数.
展开
展开全部
Public Function iLookUps(iVal As String, rng1 As Range, rng2 As Range)
Application.Volatile
Dim arr1, arr2, i, tmp
If rng1.Rows.Count <> rng2.Rows.Count Then
tmp = "#rng1.Rows <> rng2.Rows"
GoTo 1000
End If
arr1 = rng1.Columns(1)
arr2 = rng2.Columns(1)
tmp = ""
For i = 1 To UBound(arr1)
If CStr(iVal) = CStr(arr1(i, 1)) Then tmp = tmp & CStr(arr2(i, 1)) & ","
Next
If tmp <> "" Then tmp = Left(tmp, Len(tmp) - 1)
1000:
iLookUps = tmp
End Function
-----------
使用公式:
=iLookUps(1,A1:A5,B1:B5)
结果:
3,4,3
Application.Volatile
Dim arr1, arr2, i, tmp
If rng1.Rows.Count <> rng2.Rows.Count Then
tmp = "#rng1.Rows <> rng2.Rows"
GoTo 1000
End If
arr1 = rng1.Columns(1)
arr2 = rng2.Columns(1)
tmp = ""
For i = 1 To UBound(arr1)
If CStr(iVal) = CStr(arr1(i, 1)) Then tmp = tmp & CStr(arr2(i, 1)) & ","
Next
If tmp <> "" Then tmp = Left(tmp, Len(tmp) - 1)
1000:
iLookUps = tmp
End Function
-----------
使用公式:
=iLookUps(1,A1:A5,B1:B5)
结果:
3,4,3
展开全部
=VLOOKUP(数据X的单元格,$A$1:$B$5,2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哇,有点难,先想想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比较高难度....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询