Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在excel中添加两个非常大的数字?_Excel - Fatal编程技术网

如何在excel中添加两个非常大的数字?

如何在excel中添加两个非常大的数字?,excel,Excel,我想在excel中存储两个非常大的数字,然后添加它们。我的数字如下: 32493031363031103515620330632053510851055146511 当我在单元格中键入此数字时,仅显示15位数字。当然我知道我可以将格式单元格更改为文本,但是当我将其更改为文本时,它是不可计算的 非常感谢这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。udf返回字符串格式以保留所有数字: Public Function superadd(s1 As String, s2 As St

我想在excel中存储两个非常大的数字,然后添加它们。我的数字如下:

32493031363031103515620330632053510851055146511

当我在单元格中键入此数字时,仅显示15位数字。当然我知道我可以将格式单元格更改为文本,但是当我将其更改为文本时,它是不可计算的


非常感谢

这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。udf返回字符串格式以保留所有数字:

Public Function superadd(s1 As String, s2 As String) As String
    Dim L1 As Long, L2 As Long, L3 As Long, Carry As Long
    Dim v1 As Long, v2 As Long, zum As Long
    L1 = Len(s1)
    L2 = Len(s2)
    L3 = Application.Max(L1, L2)
    If L1 > L2 Then
        For i = 1 To L1 - L2
            s2 = "0" & s2
        Next i
    Else
        For i = 1 To L2 - L1
            s1 = "0" & s1
        Next i
    End If
    
    Carry = 0
    For i = L3 To 1 Step -1
        v1 = CLng(Mid(s1, i, 1))
        v2 = CLng(Mid(s2, i, 1))
        zum = v1 + v2 + Carry
        If i = 1 Then
            superadd = CStr(zum) & superadd
            Exit For
        Else
            If zum > 9 Then
                superadd = Right(CStr(zum), 1) & superadd
                Carry = CLng(Left(CStr(zum), 1))
            Else
                superadd = CStr(zum) & superadd
                Carry = 0
            End If
        End If
    Next i
End Function
用法如下:


@Mech:当我这样做时,加法转换为2.43091E+46。如何将这个科学数字转换成原始数字?对不起,我是excel的初学者。很多感谢如果你需要对这种大小的数字进行数学运算,你需要编写一个VBA数学例程来处理它。一个仍然有效(尽管有一些小故障)的旧版本被称为。它已经存在了很长一段时间,但没有得到支持。但是,它将与较新版本的excel一起使用,尽管由于其编码方式的原因,访问函数的帮助文件有点困难。