Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VBA自定义函数:满足多个条件并返回多个值的查找

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

作者头像
fanjy
发布于 2024-04-12 11:49:44
发布于 2024-04-12 11:49:44
1K00
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

标签:VBA,自定义函数

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

图1

在单元格B20中输入公式:

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VBA实用小程序79:统计不同值或唯一值的VBA自定义函数
我们说,这组数据有6个不同值:a,b,c,d,e,f;有3个唯一值:c,d,f,因为它们在列表中只出现了1次。
fanjy
2021/07/12
1.9K0
VBA实用小程序79:统计不同值或唯一值的VBA自定义函数
Excel VBA解读(134): 使用Excel函数提高自定义函数的效率
在上篇文章中,我们展示了自定义函数有效的方式是通过将单元格区域读取到Variant型数组来传递单元格区域数据。本文将介绍在自定义函数中最有效的方式是使用Excel内置函数。
fanjy
2019/07/19
3.3K0
Excel VBA解读(134): 使用Excel函数提高自定义函数的效率
VBA自定义函数:一次查找并获取指定表格中的多个值
这个自定义函数来自于forum.ozgrid.com,可以在指定表中查找多个值,并返回一组结果,而这些结果可以传递给另一个函数。
fanjy
2024/03/25
3720
VBA自定义函数:一次查找并获取指定表格中的多个值
使用VBA实现多个值组合查找
假设工作表中包含三列,即列A中是水果名,列B中是颜色,列C中是产地,现在查找同时包含“apple”、“red”和“Hungary”的行,可以使用下面的代码:
fanjy
2024/03/11
3390
使用VBA实现多个值组合查找
Excel VBA解读(136): 在用户定义函数中的变体、引用、数组、计算表达式、标量
在前面的几篇文章中,我们自定义的函数使用定义为Range的参数来从Excel工作表中获取数据,例如:
fanjy
2019/07/19
2.1K0
用VBA实现Excel函数01:VLOOKUP
很多学习VBA的应该都是在使用了一段时间的Excel之后,想弥补一些Excel本身的不足、或者是实现一些自动化操作。
xyj
2020/07/28
8.1K0
用VBA实现Excel函数01:VLOOKUP
Excel VBA解读(141): 自定义函数性能改进示例
Pedro想知道怎样加速他的自定义函数,该函数需要计算35040个单元格的结果,即单元格与未知长度值列之间的最小差异。
fanjy
2019/07/19
1.5K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。
fanjy
2020/11/09
1.5K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
VBA实战技巧04: 一个用于两个列表区域比较的自定义函数
本文整理自https://fastexcel.wordpress.com/,有兴趣的朋友可以研究一下。
fanjy
2020/04/14
1.3K0
VBA自定义函数:获取指定单元格所在的页码
参数Cell,指定一个单元格,程序将给出这个单元格所在的页码。如果忽略,则为包含公式的单元格。
fanjy
2023/12/21
3160
VBA自定义函数:获取指定单元格所在的页码
使用VBA自定义函数将文字拆分为完整的部分
这是wimgielis.com发表的一个VBA自定义函数,能够完整地提取句子的一部分,而不会截断单词。
fanjy
2024/01/30
2610
使用VBA自定义函数将文字拆分为完整的部分
VBA实用小程序66: 改进的Union函数
本文学习整理自cpearson.com,改进了VBA内置的Union方法存在的小问题。
fanjy
2020/12/08
1.4K0
VBA自定义函数:在单元格区域中创建不重复的随机数
有时候,我们需要创建一组不重复的随机组,例如在指定单元格区域中创建一组不重复的随机数用于模拟数据分析。
fanjy
2024/03/11
4230
VBA自定义函数:在单元格区域中创建不重复的随机数
VBA程序:对加粗的单元格中的值求和
注意,当求和的单元格区域中单元格格式发生更改时,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上的内容更改时,单元格都会重新计算。这意味着,仅对求和单元格区域中的单元格设置加粗格式,使用该自定义函数求和的值不会改变,除非按F9键强制计算,或者在工作表中输入内容导致工作表重新计算。
fanjy
2024/01/02
3830
VBA程序:对加粗的单元格中的值求和
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.3K0
Excel VBA编程
一篇文章精通 VLOOKUP 函数
相信不少人看到标题,立即嗤之以鼻,VLOOKUP 谁不会?是的,大家都会,但用的好的人不多。相信我,这篇文章一定可以算得上通俗易懂,又有深度的一篇文章,熟练掌握本文所讲内容,一定会在日常 Excel 处理时如鱼得水。
StoneWM
2018/08/30
1.4K0
VBA专题06-5:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例2
使用书签,可以方便地替换书签处的文本。例如,在下图9中的模板Bookmarks.dotx相应的文本位置定义了书签。
fanjy
2019/10/09
1.8K0
VBA专题06-5:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例2
使用VBA创建相关联的数据有效性列表
如下图1所示,当选择工作表Sheet2列A中的单元格下拉列表项后,其相邻列B中的单元格下拉列表项会与列A中选择项相关联,也就是说,列A中选择不同的项,列B中也会呈现相应的项。
fanjy
2024/06/18
2280
使用VBA创建相关联的数据有效性列表
VBA代码库09:增强的CELL函数和INFO函数
本文介绍的自定义函数来源于wellsr.com,以Excel的CELL函数和INFO函数为样板,可直接返回工作表或工作簿的名称或工作簿路径,以及与Excel及其操作环境有关的各种信息。本文对其内容进行了整理并分享于此,希望能够有助于VBA代码的学习,同时留存这个自定义函数以备所需。
fanjy
2021/01/20
4.7K0
Excel VBA解读(157): 数据结构—ArrayList(续)
上篇文章,我们初步认识了ArrayList,下面进一步了解其排序、复制、数组转换等功能。
fanjy
2019/08/16
2.9K0
Excel VBA解读(157): 数据结构—ArrayList(续)
推荐阅读
相关推荐
VBA实用小程序79:统计不同值或唯一值的VBA自定义函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验