在百度知道上,看到了这样一个问题,EXCEL不固定字符串中不固定的多个数字如何求和?例A1单元格是:铝3油5煤31,A2如何得出39。下面分享具体求和操作:
首先对这个问题进行分析:A1单元格是:铝3油5煤31,结果39,也就是要把混合的字符串中铝的数值3、油的数值5、煤的数值31,相加得到39,即把连续的数值提取出来成为一个独立的值。
=EVALUATE(SUBSTITUTE(TEXTJOIN(,TRUE,IFERROR(IFS(--CODE(MID(A1,ROW($1:$100),1))>30000,"+",(--CODE(MID(A1,ROW($1:$100),1))>47)*(--CODE(MID(A1,ROW($1:$100),1))<58),MID(A1,ROW($1:$100),1),--CODE(MID(A1,ROW($1:$100),1))=46,MID(A1,ROW($1:$100),1)),"")),"+","",1))。

2.分析公式中各函数的具体功能。
IFS(--CODE(MID(A1,ROW($1:$100),1))>30000,"+",(--CODE(MID(A1,ROW($1:$100),1))>47)*(--CODE(MID(A1,ROW($1:$100),1))<58),MID(A1,ROW($1:$100),1),--CODE(MID(A1,ROW($1:$100),1))=46,MID(A1,ROW($1:$100),1))。
一MID(A1,ROW($1:$100),1)的作用。

二CODE(MID(A1,ROW($1:$100),1))的作用。

三通过IFS函数来对字符集区间进行判断。
--CODE(MID(A1,ROW($1:$100),1))>30000,"+"
(--CODE(MID(A1,ROW($1:$100),1))>47)*(--CODE(MID(A1,ROW($1:$100),1))<58),MID(A1,ROW($1:$100),1),

IFERROR(IFS(--CODE(MID(A1,ROW($1:$100),1))>30000,"+",(--CODE(MID(A1,ROW($1:$100),1))>47)*(--CODE(MID(A1,ROW($1:$100),1))<58),MID(A1,ROW($1:$100),1),--CODE(MID(A1,ROW($1:$100),1))=46,MID(A1,ROW($1:$100),1)),""),


SUBSTITUTE函数的作用。

EVALUATE函数的作用。它是对单元格文本数字算式进行求和。具体操作结果如下:


