如何在excel中长度为1000的每4个数字后添加逗号?

时间:2017-01-01 10:47:01

标签: excel

我想在每4位数之后添加逗号,例如45700153920458799220。我为=LEFT(B1,4)&","&MID(B1,5,4)&","&RIGHT(B1,4)尝试了此39297500424。但是超过12长度呢?

3 个答案:

答案 0 :(得分:1)

试试这个

=LEFT(B1,4)&","&MID(B1,5,4)&","&MID(B1,9,4)&","&MID(B1,13,4)

继续....我不会使用RIGHT,除非你知道你的数字长度是4的倍数,因为它会得到错误的结果。

答案 1 :(得分:1)

如果您的号码长度超过16,那么您需要将其作为文本输入,因为Excel的限制为15位数。

使用A1中的字符串的一种方法是:

A2:  =IF(RIGHT(REPLACE(A1,4*ROWS($1:1)+ROWS($1:1),0,","),1)=",","",REPLACE(A1,4*ROWS($1:1)+ROWS($1:1),0,","))

并填写下来,直到你得到空白,即使你有数千个数字。

然后,在其他一些单元格(下面的截图中的B1)中输入:

=LOOKUP(2,1/LEN($A:$A),$A:$A)

将返回A列中的最后一个非空白条目,这是您的结果。

enter image description here

对于更灵活的东西,建议使用VBA编写的UDF(用户定义函数)。以下UDF有一些可选参数,如果需要,可以指定要插入的不同字符和不同的间距。如果你没有指定除字符串以外的任何内容,它将每隔四周插入一次逗号。

它还演示了如何使用VBA Format函数。

Option Explicit
Function InsertChar(STR As String, Optional sInsertCharacter As String = ",", Optional lSpacing As Long = 4) As String
    Dim sCharString As String
    Dim sFormatString As String
    Dim sTemp As String
    Dim I As Long

For I = 1 To lSpacing
    sCharString = sCharString & "&"
Next I
sCharString = sCharString & sInsertCharacter

For I = 0 To Len(STR) \ lSpacing
    sFormatString = sFormatString & sCharString
Next I

sFormatString = "!" & Left(sFormatString, Len(sFormatString) - 1)

sTemp = Format(STR, sFormatString)
If Right(sTemp, 1) = "," Then sTemp = Left(sTemp, Len(sTemp) - 1)

InsertChar = sTemp

End Function

答案 2 :(得分:1)

以下 U ser D efined F 功能将在每4个字符后插入一个逗号,从左侧开始

Public Function fracture(r As Range) As String
    Dim s As String, s2 As String
    Dim L As Long, i As Long

    s = r(1).Text
    L = Len(s)
    s2 = ""
    For i = 1 To L
        s2 = s2 & Mid(s, i, 1)
        If i Mod 4 = 0 Then s2 = s2 & ","
    Next i
    fracture = s2
End Function

示例:

enter image description here

注意:

  • UDF()将使用数字字符或文本字符
  • 如果字符串长度是4的倍数,UDF()将在字符串的末尾放置一个逗号

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      =断裂(A1)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!