这是一个Excel VBA自定义函数,用于根据条件匹配并合并单元格内容。优化后的AdvancedMerge函数增加了多种匹配模式、去重、数量限制等高级功能。
功能全面的增强版函数,支持多种匹配模式和选项。
AdvancedMerge(sourceRange, matchValue, mergeRange, delimiter, matchMode, ignoreCase, returnMode, distinctOnly, maxItems)
| sourceRange | |||
| matchValue | |||
| mergeRange | |||
| delimiter | |||
| matchMode | |||
| ignoreCase | |||
| returnMode | |||
| distinctOnly | |||
| maxItems |
0: 精确匹配 - 完全匹配目标字符串
1: 包含匹配 - 包含目标字符串
2: 开头匹配 - 以目标字符串开头
3: 结尾匹配 - 以目标字符串结尾
4: 通配符匹配 - 支持*和?通配符
0: 返回合并字符串 - 默认模式,返回用分隔符连接的字符串
1: 返回匹配数量 - 返回匹配到的项目数量
以下示例使用以下数据(假设在Excel的A2:B11范围):
=AdvancedMerge(A2:A11, "苹果", B2:B11)结果:红富士、青苹果、红富士注意:包含重复值"红富士"
=AdvancedMerge(A2:A11, "苹果", B2:B11, "、", 1)结果:红富士、青苹果、红富士、1L装、特级匹配了"苹果"、"苹果汁"、"青苹果"
=AdvancedMerge(A2:A11, "苹果", B2:B11, "、", 0, 1, 0, 1)结果:红富士、青苹果去除了重复的"红富士"
=AdvancedMerge(A2:A11, "苹果", B2:B11, "、", 0, 1, 1)
结果:3
returnMode=1时返回匹配数量而不是合并字符串
=AdvancedMerge(A2:A11, "苹*", B2:B1, "、", 4)结果:红富士、青苹果、红富士、1L装
匹配了"苹果"和"苹果汁"
=AdvancedMerge($A$2:$A$11, "苹果", $B$2:$B$11, ", ") | 红富士, 青苹果, 红富士 | |
=AdvancedMerge($A$2:$A$11, "苹果", $B$2:$B$11, "、", 0, 1, 1) | 3 | |
=AdvancedMerge($A$2:$A$11, "苹果", $C$2:$C$11, " + ", 0, 1, 0, 1) | ¥8.5 + ¥7.2 |

获取示例文件方式:
关注本公众号 ,后台回复关键字【合并函数】即可获取
长按上面红色的文本,复制到后台发送即可。