excel单元格内有多个数据。如何让数据统一加上某个数值?

如图,怎样让A列里面的数据全部加一,变成C列那样子,如果换成乘法又如何操作?

最简单的步骤如下

1、将A列数据以逗号为标识符进行分列

2、分列结果后,再用源数据+1

3、用textjoin函数将单元格连接起来(textjoin是新函数,很实用,经网友提醒该函数只在最新版的msoffice或wps才有)

C1=TEXTJOIN(",",,IFERROR(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),COLUMN(A:J)*99-98,99))+1,""))

然后下拉公式,不需要三键

追问

你这不是抄那个画线工的么,再说了,要三键不然出不来数据

追答

可能我用正版的office365,不用三键

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-22

如果是2019版本或Office 365,可用公式:

C1=TEXTJOIN(",",,IFERROR(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),COLUMN(A:J)*99-98,99))+1,""))

同时按Ctrl+Shift+Enter三键输入数组公式,下拉。

追问

这个公式可行,就是数据少了不行,而且末尾多了些逗号

追答

请像本人的截图,带行号和列标,光标定位到公式所在单元格中,上面的公式编辑栏中显示出公式,一起截图。这样就能看到工作表公式计算的全貌。
如果方法得当,公式编写无误,是不应该出现追问所说的情况的。

追问

追答

用公式:
=TEXTJOIN(",",1,IFERROR(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),COLUMN(A:J)*99-98,99))+1,""))
试试,公式中的1也可用: TRUE
可能是你的Excel版本不同,或者用的是WPS2019(本人没用过,但知道也增加了这个函数)

追问

数据没有逗号了可行。就是当数据原本过长时,需要空很多列,才能完整计算出来,如A3数据,只有空出BCDEF多列时,G3数据才计算完整,不然就只有到21为止。然后如果放在数据的下面来运算,就还是不行了,只算到21为止

追答

数据很多时,一是要加大99、98数字,如199、198,甚至999,998
二是A:J中的J要取更多的列,就是所取的列数甚至少要等于数据个数,或者用:ROW$1:$99)
这样的方式,ROW$1:$99)就是可以有99个数据。

追问

=TEXTJOIN(",",1,IFERROR(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),COLUMN($A:$ZZ)*99-98,99))+1,""))
这样也行,防止下拉变形。谢谢了。

追答

前面的回答用COLUMN,就是方便下拉不要加$,用ROW就要加$

本回答被提问者采纳
第2个回答  2020-01-01

加辅助列轻松解决(这个办法各版本通用,且是常规公式),e1=IF(COLUMN(A1)>LEN($A1)-LEN(SUBSTITUTE($A1,",",""))+1,"",D1&LEFT(MID(","&$A1,FIND("+",SUBSTITUTE(","&$A1,",","+",COLUMN(A1)))+1,5)&",",FIND(",",MID(","&$A1,FIND("+",SUBSTITUTE(","&$A1,",","+",COLUMN(A1)))+1,5)&",")-1)+1&",")右拉至足够用的位置(我拉到L列了),如果要乘2就把公式中的+1&改为*2&即可,然后c1=LEFT(LOOKUP(1,0/(E1:L1<>""),E1:L1),LEN(LOOKUP(1,0/(E1:L1<>""),E1:L1))-1)

第3个回答  2019-11-21
将A列数据以逗号为标识符进行分列,分列后的数字你想怎么计算就怎么计算。计算完成后再用字符串合并公式将单元格数字和逗号合并起来。追问

这个分列我知道,但是不方便

第4个回答  2019-11-22

B1输入

=TEXTJOIN(",",1,IFERROR(MID(A1,ROW($1:$10),1)+1,""))

ctrl+shift+回车(请使用MSoffice 365或2019或WPS办公软件,较低版本没有textjoin函数)

追问

但数据为5,10,12,17,20,结果错的厉害

追答

额,还有两位的。

相似回答