【问题标题】:Excel Sum values by extracting numbers from single multi-line cell通过从单个多行单元格中提取数字来求和值
【发布时间】:2019-03-07 22:40:22
【问题描述】:
AL-CHE-P1-1518   ---     270  

AL-CHE-P2-1318    ---    280  

AL-MAT-P1-1218     ---   280  

AL-MAT-P4-0918      --- 40  

所有这些数据都在同一个单元格C2内,我的目标是推导出一个公式来求和

 270+280+280+40

在 D2 单元格中

试过regextract(c2,"\d(.*)\n"),但只提取了第一个“270”,我需要帮助,搜索了所有论坛,找不到完全匹配,如果有人能给我一些关于如何推导的提示,它将为我节省大量时间同一单元格字符串内的总和

【问题讨论】:

  • 你想在谷歌表格中使用它吗?

标签: regex google-sheets excel-formula google-sheets-formula


【解决方案1】:

据我所知,您只能通过 UDF 完成此操作:

Function ReturnSum(rng As Range) As Long

    Dim arr As Variant

    arr = Split(rng.Value, Chr(10) & Chr(10))

    For i = 0 To UBound(arr)
        ReturnSum = ReturnSum + Trim(Split(arr(i), " --- ")(1))
    Next i

End Function

【讨论】:

  • 想打赌唯一的方法是 Excel 中的 UDF?
【解决方案2】:
=SUMPRODUCT(ARRAYFORMULA(REGEXEXTRACT(SPLIT(C2,CHAR(10))," \d+")))

【讨论】:

    【解决方案3】:

    在 Excel 中,公式有点复杂,是一个数组公式:

    =SUM(IFERROR(--MID(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99)),FIND("---",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99)))+3,99),0))
    

    作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 确认,而不是 Enter。

    【讨论】:

    • 再一次,黑魔法......我想周围很少有人能写出一个公式来实现这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多