文本形式录入的数字,可以自定义显示格式为每四位加一个“-”吗

如下图,谢谢
山东省
浏览 544
收藏
7
分享
7 +1
25
+1
全部评论 25
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

楼下的大佬们,注意审题呀~~~ 楼主要“自定义显示格式”,就是不能破坏源数据的值,因此应该这是单元格格式来解决,而不能用函数,会改变原有值。
· 辽宁省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

但是,我不会做耶~~~~哈哈哈哈
· 辽宁省
回复
 
dhzgfchx
如果要处理的数字位数一样,应该用ctrl+e智能填充就行
· 广东省
回复
 
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

新版本正则函数第一参数支持数组,可以这样写REGEXP(A1:A5,"(\d{4})(?=\d)",2,"\1-")
· 广东省
1
回复
LZN
谢谢!小问题引来各位大佬的解答,虽然不能都看明白,但我会努力学习的
· 山东省
回复
 
Boyuan
=REGEXP(A1,"(\d{4})(?=\d)",2,"\1-")
· 河南省
1
回复
LZN
谢谢!小问题引来各位大佬的解答,虽然不能都看明白,但我会努力学习的
· 山东省
回复
 
LZN
追加一个小要求,这样设置,我需要在登记表里增加一个辅助列,有办法象设置单元格格式一样,让我录入进去的数据,自动按照每四位加分隔符显示吗?
· 山东省
回复
wils
wils

创作者俱乐部成员

因为长数字丢失精度,所以单元格格式需要设置为文本,所以大概可能不能用单元格格式来实现,不过宏事件也可以 function Workbook_SheetChange(Sh, rg) { if (rg.Column === 1) { Application.EnableEvents = false try { rg.Value2 = rg.Value2.replace(/(\d{4})(?=\d)/g, "$1-") } catch {} Application.EnableEvents = true } }
· 海南省
回复
 
星辰
=TEXTJOIN("-",,REGEXP(D2,"\d{4}")) 补一个
· 江西省
1
回复
LZN
公式越来越精减,学习了,厉害厉害!
· 山东省
回复
 
LZN
已经完美实现,感谢!!!
· 山东省
回复
 
懒得批爆
懒得批爆

创作者俱乐部成员

超过15个数字,无论是任何格式的数值型数字,15位以后的都会变成0 要文本型数字,不如就用组合来? =TEXTJOIN("-",TRUE,MID(D2,SEQUENCE(,LEN(D2)/4,0,4)+1,4))
· 四川省
1
回复
LZN
完美实现,感谢感谢!!!
· 山东省
回复