首页 > 解决方案 > 如何在excel中添加两个非常大的数字?

问题描述

我想在excel中存储两个非常大的数字,然后添加它们。我的号码是这样的:

324930313630311035156280330632053510851055146511

当我在单元格中输入这个数字时,它只显示 15 位数字。当然我知道我可以将格式单元格更改为 text,但是当我将其更改为 text 时,它是不可计算的。

非常感谢

标签: excel

解决方案


这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。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

像这样使用:

在此处输入图像描述


推荐阅读