四时宝库

程序员的知识宝库

用DeepSeek自动生成Excel新函数,什么正则、分类求和、颜色求和

每次讲新函数(WPS和office365版本新增)的用法,对于还在老版本的同学简直是一种折磨,想用却用不上。随着DeepSeek的横空出世,它可以帮你自动生成函数了。不仅如此,还可以生成你需要的连新版本都没有的函数

小编用DeepSeek编写了两个超牛的函数,一个是正则函数(新版本有),一个是按颜色求和函数(所有版本都没有)。

先演示效果,看两个公式。

1、提取数字和金额

=MyReg(B2,"[\d.]+",1)

2、按颜色求和

=SumByColor(E4,C4:C10)

平时我们很难解决,甚至无法解决的表格难题,竟然用很简短的公式搞定了。如果你也想使用这些新函数,就可以让DeepSeek帮你生成想要的任何函数。

以下为详细步骤:

1、打开官网

打开DeepSeek官方(https://www.deepseek.com/) 点击开始对话。

2、提出要求

把你想要的函数告诉它,一定要把要求写清楚。兰色总结的生成自定义函数的提问模板

模板1:

请帮我用VBA编写一个在excel中可以XXX的自定义函数,函数名XXX,参数1....参数2...参数3....。如果某个参数有几个选项,可以用值1XXX,值2XXX.....

模板2:

请帮我用VBA编写一个类似XXXXX函数的Excel自定义函数,

实例

正则函数

按颜色求和函数

3、生成代码

按回车或点蓝色向上箭头,deepSeek就开始把思考过程和代码一行行显示在屏幕上。最后黑色背景的就是正式的VBA代码,点击复制。

自动生成的正则代码:

Function Myreg(StringValue As String, pattern As String, mode As Long) As Variant
    ' 创建正则表达式对象
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    ' 设置正则表达式属性
    regex.Global = True
    regex.IgnoreCase = False
    
    ' 根据模式执行不同的操作
    Select Case mode
        Case 1 ' 提取
            Dim matches As Object
            regex.pattern = pattern
            Set matches = regex.Execute(StringValue)
            
            ' 如果没有匹配项,返回空字符串
            If matches.Count = 0 Then
                Myreg = ""
                Exit Function
            End If
            
            ' 将匹配项收集到数组中
            Dim result As Variant
            ReDim result(1 To matches.Count)
            Dim i As Long
            For i = 1 To matches.Count
                result(i) = matches(i - 1).value
            Next i
            Myreg = result
        
        Case 2 ' 替换
            ' 使用正则表达式替换匹配项
            regex.pattern = pattern
            Myreg = regex.Replace(StringValue, "")
        
        Case 3 ' 判断
            ' 检查字符串是否符合正则表达式
            regex.pattern = pattern
            If regex.Test(StringValue) Then
                Myreg = True
            Else
                Myreg = False
            End If
        
        Case Else
            ' 无效模式,返回错误值
            Myreg = CVErr(xlErrValue)
    End Select
    
    ' 清理对象
    Set regex = Nothing
End Function

按条件求和代码

Function SumByColor(refCell As Range, sumRange As Range) As Variant
    ' 返回值类型设为Variant以支持错误值返回
    
    ' 验证参考单元格是否为单个单元格
    If refCell.Cells.Count > 1 Then
        SumByColor = CVErr(xlErrValue)
        Exit Function
    End If
    
    Dim sumColor As Long
    Dim total As Double
    Dim cell As Range
    
    ' 获取参考单元格的背景颜色
    On Error Resume Next ' 防止无填充颜色时出错
    sumColor = refCell.Interior.Color
    On Error GoTo 0
    
    total = 0
    
    ' 遍历求和区域
    For Each cell In sumRange
        If cell.Interior.Color = sumColor Then
            If IsNumeric(cell.Value) Then
                total = total + cell.Value
            End If
        End If
    Next cell
    
    SumByColor = total
End Function

4、复制到Excel

打开要使用自定义函数的excel文件,开发工具 - Visual basic 打开VBE编辑器,插入 - 模块后把代码粘贴到右则的空白处,关闭新打开的VBE窗口。(WPS需要提前安装WPS VBA插件,网上可以搜到

5、使用自定义函数

DeepSeek会贴心的提供参数说明,按说明在表格中就可以使用该函数了。

6、保存自定义函数

把文件另存为启用宏的工作簿,这个函数就永久保存在当前工作簿中了。如果其他工作簿也需要使用,按上面的步骤把代码复制过去也保存为该类型工作簿即可。

Ps:Deepseek的确可以帮我们完成工作中不是太复杂的工作,这对很多excel新手小白,真是个福音。那么....有了它,我们还需要再费力的学excel吗?答案是需要,因为实际工作中很多表格结构很复杂,对于复杂的excel问题还是解决不了。特别是图表,小编试了大部分AI,都无法完成复杂的图表制作。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接