EXCEL如何快速分段?

如何由A列数据得到B列数据(这只是部分数据,现在A列数据最大长度是10,可能长度由12,14之类的),规则就是4-2-2-2-2-2-2这样分下去。

B1单元格输入公式=IF(LEN(A1)=4,A1,IF(LEN(A1)=6,TEXT(A1,"0!.00"),IF(LEN(A1)=8,TEXT(A1,"0!.00!.00"),IF(LEN(A1)=10,TEXT(A1,"0!.00!.00!.00"),IF(LEN(A1)=12,TEXT(A1,"0!.00!.00!.00!.00"),IF(LEN(A1)=14,TEXT(A1,"0!.00!.00!.00!.00!.00")))))))

下拉公式。 如图:

示例

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-15

=TEXTJOIN(".",,MID(A1,{1,5,7,9,11,13,15},{4,2,2,2,2,2,2}))

祝顺心

第2个回答  2021-09-15

试试这个数组公式:

=IF(LEN(A1)<5,A1,LEFT(A1,4)&"."&TEXTJOIN(".",TRUE,MID(A1,3+ROW($1:$10)*2,2)))

同时按下Ctrl+Shift+Enter结束输入。

第3个回答  2021-10-23

在B1中输入或复制粘贴如下公式

=TEXT(A1,0&REPT("!.00",(LEN(A1)-4)/2))

下拉填充

第4个回答  2021-09-15
Excel自带的函数是不支持递归的,所以要简洁的实现只能通过VBA,也有一个比较死板的但是比较好理解的办法,不过有一定限制就是了
比如这样:(假设数据在A1)
=MID(A1,1,4)&IF(MID(A1,5,2)<>"","."&MID(A1,5,2),"")&IF(MID(A1,7,2)<>"","."&MID(A1,7,2),"")&IF(MID(A1,9,2)<>"","."&MID(A1,9,2),"")&IF(MID(A1,11,2)<>"","."&MID(A1,11,2),"")&IF(MID(A1,13,2)<>"","."&MID(A1,13,2),"")
这个公式分成两段,第一段是取了A列内容的前四个字符(也可以用LEFT(A1,4))
第二段分成多个MID函数,每一个MID取了后面两位字符,并用IF判断它是不是空,如果是空就不显示,如果不是空就在之前的内容追加一个小数点,再把取到的两位字符接上去
如果A列数据很长,这个公式就要继续往后写,可以直接复制粘贴,只是把MID函数的第二个参数增2就可以了