我需要对格式有点松散的字符串中出现的数字求和。字符串可以包含可以用space、,
或字母分隔的数字(2 位或 3 位数字长,整数)。
示例数据:
天 | 名字 | 和 |
---|---|---|
1 | 亚当100 | 100 |
2 | Michał200 Monika300 | 500 |
3 | 丹尼尔 200,拉法尔 100 | 300 |
4 | 安娜 200,马立克 300,J. 诺瓦克 100 | 600 |
5 | 0 | |
和 | 1500 |
为了自由办公室我想出了这个解决方案:
=SUM(VALUE(IFNA(REGEX(B1;"[0-9]+";;ROW(A1:A24));0)))
以及Google 电子表格:
=SUM(SPLIT(IF(A2="";"0"; A2);" "))
但我无法弄清楚 Excel 是如何运作的。
答案1
一种选择:
=IF(A2="","",SUM(0+TEXTSPLIT(A2,TEXTSPLIT(A2,SEQUENCE(10,,0),,1),,1)))
答案2
如果你使用的是更高版本的 Excel,例如 XL-2021 或 2022 或 Office 365,那么你可以尝试这个,
=SUM(FILTERXML("<root><data>"&SUBSTITUTE(A1," ","</data><data>")&"</data></root>","//data[number(.) = number(.)]"))
:编辑:
此公式考虑了所有可能的分隔符,例如我使用过的,,,检查屏幕截图。
=SUM(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(M1,";",","),".",",")," ","</s><s>"),",","</s><s>")&"</s></t>","//s[number(.)=.]"))
- 根据需要调整单元格引用。