Excel VBA自定义函数 根据条件连接字符串

本文介绍如何使用VBA编写自定义函数,用于在Excel中根据特定条件连接字符串,模仿现有函数如COUNTIFS、SUMIFS等的功能,解决现有功能不足的问题。通过实例展示如何实现合并符合两个条件的值,简化数据处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做excel发现现有的函数功能不够用,就自学了一下VBA写了第一个新函数:根据条件连接字符串
比如count()有countif()和countifs(),sum()有sumif()和sumifs(),但是concatenate()却没有类似concatenateifs()的函数,于是自己写了个替代品
(写的解释比较面向初学者,如果是只需要参考,完全可以跳过直接看代码块)

问题:我需要在选区中找出同时符合两个条件的值,比如

地区 调料
沙滩 咸鱼
海沟 深海鱼 酱油
海沟 深海鱼 芥末
火星 深海鱼 沙子

这其中地区和名称同时相同的视为同一种鱼,那么 海沟深海鱼 既可以用酱油也可以用芥末,在新的表中需要将这一项合并,也就是说处理后的新表如下:

地区 调料
沙滩 咸鱼
海沟 深海鱼 酱油芥末
火星 深海鱼 沙子

实现:
首先排个序会比较清晰,将要统计的地区和鱼录入新表(我自己的做法是直接复制到新表,再去除重复值),然后对调料使用函数自动填充
自定义的函数concatenate_ifs()仿照countifs()来设定参数,countifs()的语法就不说了

使用参数 给它起个名字
需要合并的字符串所在单元格列,即表1的调料列 concatenate_range
范围1,即表1的地区列 range1
条件1,即表2要去匹配的地区单元格 criteria1
范围2,即表1的鱼列 range2
条件2,即表2要去匹配的鱼 criteria2

函数的使用,在表2的调料一格填充:
=concatenate_ifs(表1!调料:调料,表1!地区:地区,表2!地区1,表1!鱼:鱼,表2!鱼1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值