前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA自定义函数:满足多个条件并返回多个值的查找

VBA自定义函数:满足多个条件并返回多个值的查找

作者头像
fanjy
发布2024-04-12 19:49:44
1210
发布2024-04-12 19:49:44
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA,自定义函数

如下图1所示,查找列A中值为“figs”的行,并返回该行中内容为“X”的单元格对应的该列中首行单元格的内容,即图1中红框所示的内容。

图1

在单元格B20中输入公式:

=lookupFruitColours(A20,"X",A2:J17,A1:J1)

这个公式使用了自定义函数lookupFruitColours。这个自定义函数的代码如下:

代码语言:javascript
复制
Option Compare Text
Function lookupFruitColours(ByVal lookup_value As String, _
     ByVal intersect_value As String, _
     ByVal lookup_vector As Range, _
     ByVal result_vector As Range) As String
 
 Application.Volatile
 
 Dim varLookupVector As Variant
 Dim varResultVector As Variant
 Dim lngIndexRows As Long
 Dim intIndexColumns As Integer
 Dim result_set As String
 
 varLookupVector = lookup_vector
 varResultVector = result_vector
 
 For lngIndexRows = LBound(varLookupVector, 1) To UBound(varLookupVector, 1)
   If Trim(varLookupVector(lngIndexRows, 1)) = Trim(lookup_value) Then
     For intIndexColumns = LBound(varResultVector, 2) To UBound(varResultVector, 2)
       If varLookupVector(lngIndexRows, intIndexColumns) = Trim(intersect_value) Then
         result_set = varResultVector(1, intIndexColumns) & "," & result_set
       End If
     Next intIndexColumns
   End If
 Next lngIndexRows
 
 lookupFruitColours = Left(result_set, Len(result_set) - 1)
End Function

其中,参数lookup_value代表要在指定区域第一列中查找的值,参数intersect_value代表行列交叉处的值,参数lookup_vector代表指定的查找区域,参数result_vector代表返回值所在的区域。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档