Excel 通过从单个多行单元格中提取数字来求和值
Excel Sum values by extracting numbers from single multi-line cell
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”,我需要帮助,搜索了所有论坛,找不到完全匹配,如果有人能给我一些提示,这将节省我大量时间关于如何导出同一单元格字符串中的总和
据我所知,您只能通过 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
=SUMPRODUCT(ARRAYFORMULA(REGEXEXTRACT(SPLIT(C2,CHAR(10))," \d+")))
在Excel中公式稍微复杂一点,数组公式:
=SUM(IFERROR(--MID(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD: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:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99)))+3,99),0))
作为数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 而非 Enter 进行确认。
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”,我需要帮助,搜索了所有论坛,找不到完全匹配,如果有人能给我一些提示,这将节省我大量时间关于如何导出同一单元格字符串中的总和
据我所知,您只能通过 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
=SUMPRODUCT(ARRAYFORMULA(REGEXEXTRACT(SPLIT(C2,CHAR(10))," \d+")))
在Excel中公式稍微复杂一点,数组公式:
=SUM(IFERROR(--MID(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD: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:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99)))+3,99),0))
作为数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 而非 Enter 进行确认。