通过从单个多行单元格中提取数字来实现Excel Sum值

时间:2019-03-07 22:40:23

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

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”,我需要帮助,在所有论坛中进行搜索,无法完全匹配,如果有人可以给我一些提示,它将为我节省大量时间得出同一单元格字符串中的总和

3 个答案:

答案 0 :(得分:3)

据我所知,您只能通过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

img1

答案 1 :(得分:2)

=SUMPRODUCT(ARRAYFORMULA(REGEXEXTRACT(SPLIT(C2,CHAR(10))," \d+")))

答案 2 :(得分:1)

在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进行确认。

enter image description here