EXCEL 自动加连字符。如: A1="1,2,3,4,5,6,7,8,9,10,12" 则 B1="1-12"

如:A1="1,2,3,4,5,6,7,8,9,10,12"则B1="1-12"如:A1="1,2,3,4,8,9,10,12"则B1="1-4,8-12"要求公式要有普... 如: A1="1,2,3,4,5,6,7,8,9,10,12" 则 B1="1-12"

如: A1="1,2,3,4,8,9,10,12" 则 B1="1-4,8-12"

要求公式要有普遍适用性
大家帮帮忙
自己写了一个,能实现,用SUBSTITUTE函数。如果是1-12个数字就要嵌套(12-1)*(12-2)/2=55次。如果是1-13个数字就要嵌套66次,2007好像只能嵌套64次吧。
1-8个数字举例如下:嵌套21次
A列是数字串,B列是转换结果,C,D两列是查表的、(就这样叫吧)
B1公式:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,$C$1,$D$1),$C$2,$D$2),$C$3,$D$3),$C$4,$D$4),$C$5,$D$5),$C$6,$D$6),$C$7,$D$7),$C$8,$D$8),$C$9,$D$9),$C$10,$D$10),$C$11,$D$11),$C$12,$D$12),$C$13,$D$13),$C$14,$D$14),$C$15,$D$15),$C$16,$D$16),$C$17,$D$17),$C$18,$D$18),$C$19,$D$19),$C$20,$D$20),$C$21,$D$21),$C$22,$D$22),$C$23,$D$23),$C$24,$D$24),$C$25,$D$25),$C$26,$D$26),$C$27,$D$27),$C$28,$D$28),$C$29,$D$29),$C$30,$D$30),$C$31,$D$31),$C$32,$D$32),$C$33,$D$33),$C$34,$D$34),$C$35,$D$35),$C$36,$D$36)
展开
 我来答
四面生风
2013-02-23 · TA获得超过962个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:555万
展开全部

这大概是用于表示1至12月份吧。我的方法是增加辅助列。


第一步,先将A列的字符串拆为C-N列。

C2=IF(OR(A2="1",A2=1,LEFT(A2,2)="1,"),1,)

D2=IF(OR(A2="2",A2=2,LEFT(A2,2)="2,",ISNUMBER(FIND("2",A2))),2,)

E2=IF(ISERR(FIND(E$1,$A2)),,E$1)

将E2公式向右拉到N2


第二步,P-AA列对C-N列进行预处理。

P2=IF(C2,C2&IF(D2,"-",","),"")

Q2=IF(OR(D2=0,AND(C2,E2)),"",Q$1&IF(OR(C2,AND(C2=0,E2=0)),",","-"))

将Q2公式向右拉到Z2

AA2=IF(N2,N2,"")


最后,AB列为结果

AB2=IF(RIGHT(P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2&AA2)=",",LEFT(P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2&AA2,LEN(P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2&AA2)-1),P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2&AA2)

更多追问追答
追问
很好,完美实现,非常感谢你;
刚测试出了一点小问题,若A2="12"则结果为2,12,D列的公式不够健壮
追答
D2公式改为:
=IF(OR(A2="2",A2=2,LEFT(A2,2)="2,",ISNUMBER(FIND(",2",A2))),2,)

FIND的第一个参数加多一个逗号上去。
数码银狐5
2013-02-23 · TA获得超过1505个赞
知道小有建树答主
回答量:1692
采纳率:60%
帮助的人:889万
展开全部
=IF(A1="1,2,3,4,5,6,7,8,9,10,12","1-12",IF(A1="1,2,3,4,8,9,10,12","1-4,8-12",IF(A1="1,2",A1,"")))
追问
不够普遍。也谢谢你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hepep
2013-02-23 · TA获得超过715个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:368万
展开全部
第一个
=LEFT(A1,1)&"-"&MID(A1,IF(MID(A1,LEN(A1)-1,1)=",",LEN(A1),IF(MID(A1,LEN(A1)-2,1)=",",LEN(A1)-1,"")),IF(MID(A1,LEN(A1)-1,1)=",",1,IF(MID(A1,LEN(A1)-2,1)=",",2,"")))
第二个不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fff7c84
2013-02-23 · TA获得超过376个赞
知道小有建树答主
回答量:521
采纳率:0%
帮助的人:162万
展开全部
我可以郑重的跟你说,公式不行。不是不可能,太复制了,不过我估计还是没有的。
因为公式不能进行很多个不规则字符连接。你用VBA吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jjchangyuan
2013-02-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:4278
采纳率:90%
帮助的人:1102万
展开全部
你举例中10-12之间没有11?
追问
漏了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twd2
2013-02-23 · TA获得超过557个赞
知道小有建树答主
回答量:1141
采纳率:0%
帮助的人:535万
展开全部
写程序计算吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式