You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel公式需求:统计文本中独立部件编号的数量

解决Excel中格式各异单元格内独立部件统计问题

方法一:VBA自定义函数(适配全Excel版本)

针对你提供的部件特征(字母开头、由数字/横杠/字母组成的独立标识),可以用正则表达式精准匹配统计:

  1. 按Alt+F11打开VBA编辑器,插入新模块
  2. 粘贴以下代码:
Function CountParts(cell As Range) As Integer
    Dim regEx As Object, matches As Object
    Set regEx = CreateObject("VBScript.RegExp")
    With regEx
        .Global = True
        .Pattern = "\b[A-Z0-9-]+\b" '匹配大写字母/数字/横杠组成的独立标识
    End With
    Set matches = regEx.Execute(cell.Value)
    
    Dim count As Integer, m As Object
    count = 0
    For Each m In matches
        '排除纯数字开头的非部件内容(比如示例中的"5")
        If Not IsNumeric(Left(m.Value, 1)) Then count = count + 1
    Next m
    CountParts = count
End Function
  1. 返回Excel,在目标单元格输入=CountParts(A1)即可统计对应单元格的部件数量。

测试结果完全匹配你的示例:

  • A1返回1(HS669)
  • A2返回3(ESW617、ESW618、ESW648)
  • A3返回9(TX开头的9个部件)
  • A4返回16(FW开头的16个部件)

方法二:Excel 365/2021动态数组公式

如果使用新版Excel,无需VBA,直接用动态数组结合正则函数实现:

=COUNTA(FILTER(TEXTSPLIT(REGEXREPLACE(A1,"[^A-Z0-9- ]","")," "),NOT(ISNUMBER(--LEFT(TEXTSPLIT(REGEXREPLACE(A1,"[^A-Z0-9- ]","")," "),1)))))

逻辑说明:

  1. REGEXREPLACE移除所有非字母/数字/横杠/空格的字符
  2. TEXTSPLIT按空格拆分内容为数组
  3. FILTER筛选出非数字开头的项
  4. COUNTA统计有效部件数量

方法三:辅助列分步处理(适合旧版无正则的Excel)

  1. 替换逗号为空格:=SUBSTITUTE(A1,","," ")
  2. 替换冒号为空格:=SUBSTITUTE(B1,":"," ")
  3. 清理多空格:=TRIM(CLEAN(SUBSTITUTE(C1," "," ")))(重复执行直到无多空格)
  4. 按空格分列拆分清理后的内容到多列
  5. 用COUNTIF(拆分区域,"*[A-Z]*")统计含字母的单元格数量(排除纯数字)

内容的提问来源于stack exchange,提问作者Chris Elwell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:24:55