ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 491|回复: 0

[分享] 自定义一个文本顺序不一样但文本内容一样的数据计算函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-17 10:53 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
VB-自定义函数

实现满足要求的字符计数
条件1是IPHONE 12 BLACK,条件2是64GB,范围里IPHONE 12 64GB BLACK是满足的要计数,范围里IPHONE 12 MINI 64GB BLACK是不满足的,不用计数。

函数过程:
Function COUNT_MATCHES(rng As Range, cond1 As String, cond2 As String) As Long
    Dim arr1() As String, arr2() As String
    Dim i As Long, j As Long, count As Long
   
    '将条件1和条件2拆分为数列
    arr1 = Split(cond1, " ")
    arr2 = Split(cond2, " ")
   
    '循环遍历范围值
    For i = 1 To rng.Cells.Count
        Dim tempArr() As String
        tempArr = Split(rng.Cells(i).Value, " ")
        Dim cond1Found As Boolean
        cond1Found = False
        Dim cond2Found As Boolean
        cond2Found = False
        '检查范围值是否包含所有条件1和条件2的值
        For j = 0 To UBound(arr1)
            If InStr(1, rng.Cells(i).Value, arr1(j), vbTextCompare) > 0 Then
                cond1Found = True
            Else
                cond1Found = False
                Exit For
            End If
        Next j
        For j = 0 To UBound(arr2)
            If InStr(1, rng.Cells(i).Value, arr2(j), vbTextCompare) > 0 Then
                cond2Found = True
            Else
                cond2Found = False
                Exit For
            End If
        Next j
        '如果范围值包含所有条件1和条件2的值,并且不包含额外的值,则计数
        If cond1Found And cond2Found And UBound(tempArr) = UBound(arr1) + UBound(arr2) + 1 Then
            count = count + 1
        End If
    Next i
   
    COUNT_MATCHES = count
   
End Function


求定义文本差异函数(附模拟结果).rar

8.57 KB, 下载次数: 5

求定义文本差异函数(附模拟结果).rar

8.57 KB, 下载次数: 3

自定义计数函数.zip

14.59 KB, 下载次数: 3

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 09:25 , Processed in 0.041899 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表