开启左侧

11、一个简单功能阐明deepseek处理成绩的运用

[复制链接]
    deepseek年夜模子能够辅佐咱们轻快处置许多庞大的成就,正在EXCEL中一点儿瞅似很简朴的功用,正在誊写公式或者VBA,M函数等的时候会比力庞大,以至于一点儿逻辑干系皆很易理浑,这时候咱们能够借帮强大的deepseek,只要输出相干提醒词汇,AI即可辅佐咱们轻快完毕所需的功用。正在此以一个简朴的功用举例,正在A列中寄存了一系列的数据,数据用英文逗号离隔,请求将数据序列截至收缩(持续的数据用开端数减破合号减完毕数暗示,零丁的数据则零丁显现,数据之间用逗号离隔,好比:1,2,4,5,6,8,9收缩成: 1-3,5-7,9-11),正在理论事情中咱们可以更多的是脚动截至增加,如许操纵是能够完毕,但是服从高,并且也简单堕落,正在此咱们借帮deepseek年夜模子去完毕该功用。起首准备表格(以下图),将表格动作附件上传到deepseek,而后输出提醒词汇:“附件表格A列有一串递加的数字序列字符串,为了便利察看纪律,现需要将此中的 持续部门截至收缩,成果如B列所示。请按照请求成立模子完毕该收缩功用。”,部分如截图。留神挑选深度思考(R1)


十一、一个简朴功用分析deepseek处置成就的使用w2.jpg
阐发完毕后deepseek给出了python完毕方法,以下图:这类方法没有是咱们念要的,交着追问:excel可否有函数能够完毕该功用?
十一、一个简朴功用分析deepseek处置成就的使用w3.jpg
深度思考后deepseek给出了三种办法,以下截图:
十一、一个简朴功用分析deepseek处置成就的使用w4.jpg

十一、一个简朴功用分析deepseek处置成就的使用w5.jpg

十一、一个简朴功用分析deepseek处置成就的使用w6.jpg
交下即是将各办法复造,到excel表格中截至尝试,办法一尝试后前去毛病值#CALC!,持续追问,提醒词汇:办法一前去毛病值“#CALC!”。deepseek给出改正后的公式:
=IF(A2="", "",

    TEXTJOIN(",", TRUE,

        LET(

            nums, FILTERXML("<a><b>"&SUBSTITUTE(A2,",","</b><b>")&"</b></a>","//b"),

            count, ROWS(nums),

            seq, SEQUENCE(count),

            vals, --nums,

            diffs, IF(seq=1,1, vals-INDEX(vals,seq-1)),

            starts, FILTER(seq, (seq=1) + (diffs>1)),

            ends, IF(ROWS(starts)=1, count,

                VSTACK(DROP(starts,1)-1, count)),

            MAP(starts, ends, LAMBDA(s,e,

                IF(s=e, INDEX(vals,s),

                    INDEX(vals,s)&"-"&INDEX(vals,e)))

        )

    )

)

十一、一个简朴功用分析deepseek处置成就的使用w7.jpg
将公式复造到excel 单位格C2中,背下拖拽复造,获得了念要的成果,以下图:
十一、一个简朴功用分析deepseek处置成就的使用w8.jpg
共时deepseek也给出了兼容的VBA自界说函数,以下图
十一、一个简朴功用分析deepseek处置成就的使用w9.jpg
残破代码为:
Function CompressNumbers(inputStr As String) As String

    Dim nums() As String

    Dim numList() As Long

    Dim i As Long, startVal As Long, endVal As Long

    Dim result As String, count As Long

    '联系 输出字符串

    nums = Split(inputStr, ",")

    count = UBound(nums)

    If count < 0 Then Exit Function

    ' 变换为数字数组

    ReDim numList(count)

    For i = 0 To count

        numList(i) = Val(Trim(nums(i)))

    Next i

    ' 收缩序列

    i = 0

    Do While i <= count

        startVal = numList(i)

        endVal = startVal

        ' 查找持续序列

        Do While i < count

            If numList(i + 1) = numList(i) + 1 Then

                endVal = numList(i + 1)

                i = i + 1

            Else

                Exit Do

            End If

        Loop

        ' 增加到成果

        If result <> "" Then result = result & ","

        If startVal = endVal Then

            result = result & startVal

        Else

            result = result & startVal & "-" & endVal

        End If

        i = i + 1

    Loop

    CompressNumbers = result

End Function

按alt+F11键,翻开VBA编纂器,面打菜单栏“拔出 ”-“模块”,这时候会主动创立一个模块,将deepseek天生的VBA自界说函数代码复造粘揭到模块,以下图:

十一、一个简朴功用分析deepseek处置成就的使用w10.jpg

封闭VBA编纂器,回到excel界里,正在D2单位格输出自界说的函数CompressSequence(输出前三个字母就能够进去,只要挑选便可),挑选数据系列地点单位格,公式立刻前去成果,以下图:超等表中使用公式时参数用的是[@列名]也即是指背列名列,一般表中的参数为具体的单位格,公式需背下复造。超等表中公式会主动添补,无需拖动复造,共时增加新数据时公式也会主动添补。

十一、一个简朴功用分析deepseek处置成就的使用w11.jpg

交下来考证powerquery中的方法,按下图步调将表格导进powerquery。

十一、一个简朴功用分析deepseek处置成就的使用w12.jpg

加入后将数据系列的范例改成文原

十一、一个简朴功用分析deepseek处置成就的使用w13.jpg

面打初级编纂器,加入M代码编纂界里,将deepseek天生的代码复造粘揭笼盖本有代码,以下图

十一、一个简朴功用分析deepseek处置成就的使用w14.jpg

此时,M函数报错“Expression.SyntaxError: 应为令牌”,将此毛病动作提醒词汇,持续追问,以下图

十一、一个简朴功用分析deepseek处置成就的使用w15.jpg

思考后deepseek给出新的语句;

let

    // 步调1:获得数据

    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],  // 保证那里的表名取理论表名不合

    // 步调2:增加自界说列处置收缩逻辑

    增加自界说列 = Table.AddColumn(源, "收缩成果", each

        let

            //联系 字符串并变换为数字列表

            数字列表 = List.Transform(

                List.RemoveItems(Text.Split([数字序列], ","), {""}),

                each Number.From(Text.Trim(_))

            ),

            // 保证列表有序(固然输出该当是递加的)

            有序列表 = List.Sort(数字列表),

            // 使用List.Accumulate截至分组处置

            分组成果 = List.Accumulate(

                // 从第两个元艳开端处置

                List.RemoveFirstN(有序列表, 1),

                // 初初形状:{目前肇端值,以后 完毕值,后果 列表}

                {有序列表{0}, 有序列表{0}, {}},

                (state, current) =>

                    let

                        上一个完毕值 = state{1},

                        目前肇端值 = state{0},

                        成果列表 = state{2},

                        //反省 可否持续

                        可否持续 = current = 上一个完毕值 + 1

                    in

                        if 可否持续 then

                            // 持续:革新完毕值

                            {目前肇端值, current,后果 列表}

                        else

                            // 没有持续:增加目前组,开端新组

                            let

                                新组 = if以后 肇端值 = 上一个完毕值 then

                                    Text.From(目前肇端值)

                                else

                                    Text.From(目前肇端值) & "-" & Text.From(上一个完毕值),

                                革新后的成果列表 =后果 列表 & {新组}

                            in

                                {current, current, 革新后的成果列表}

            ),

            // 增加最初一组

            最初一组 = if 分组成果{0} = 分组成果{1} then

                Text.From(分组成果{0})

            else

                Text.From(分组成果{0}) & "-" & Text.From(分组成果{1}),

            统统组 = 分组成果{2} & {最初一组},

            // 拉拢终极成果

            终极成果 = Text.Combine(统统组, ",")

        in

            终极成果

    ),

    // 步调3:简略本初列(可选)

    简略本初列 = Table.RemoveColumns(增加自界说列, {"数字序列"})

in

    简略本初列

将新的语句复造粘揭笼盖本来的M语句,此时语句已报错,以下图

十一、一个简朴功用分析deepseek处置成就的使用w16.jpg

面打完毕,此时powerquery中前去函数施行的成果,以下图:成果也是咱们念要的,

十一、一个简朴功用分析deepseek处置成就的使用w17.jpg

面打封闭并上载,导进数据对于话框当选择表-现有事情表,面打肯定,以下图:

十一、一个简朴功用分析deepseek处置成就的使用w18.jpg

天生的成果就前去到了咱们指定的职位,以下图:

十一、一个简朴功用分析deepseek处置成就的使用w19.jpg

    交下来,将上述多少种办法获得的成果搁正在共同截至比对于,以下图

    十一、一个简朴功用分析deepseek处置成就的使用w20.jpg

    从图中能够瞅出A5单位的数据序列没有是按降序排序的,IF函数前去成果明显是没有准确的,分析该函数对于数据序列的挨次有严峻请求,必需降序排序,别的2种办法的皆是不成就的。

    交下来咱们截至深度思考,上边的数据系列皆是正在一个单位格中,假设是搁正在一列差别的止中呢?此时用VBA自界说函数的第一种方法,即使使用textjoin函数将各个数据跟尾也不克不及前去准确值,因为它的参数是一个单位格,兼容版的VBA函数能够前去获得的成果(参数为数组字符串),但是当数据没有是降序排序时,前去的成果也没有是咱们念要的,以下图;


C13单位格中的公式:

=CompressNumbers(TEXTJOIN(",",,SORT(A13:A22,,1))),将数据用sort函数截至降序排序,而后再截至跟尾,最初使用自界说函数截至收缩,成果明显是咱们念要的。

    来日诰日咱们用一个小小真例分析了deepseek年夜模子正在一样平常成就处置时的使用,从使用的历程能够瞅出,因为各圆里启事(好比硬件版原等)deepseek天生的代码纷歧定能前去咱们念要的成果,当呈现成就时,能够将成就动作提醒词汇持续截至追问,追问后天生的代码再截至尝试,曲到前去念要的成果。所有成就的处置皆是一个循序渐进的历程,正在处置成就的过程当中需要咱们不竭的截至尝试,纠偏偏。那个小小的例子期望对于各人使用deepseek时有所辅佐。  欢送各人正在批评区截至会商。
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )