如何在excel中添加两个非常大的数字?
我想在excel中存储两个非常大的数字,然后添加它们。我的数字如下: 32493031363031103515620330632053510851055146511 当我在单元格中键入此数字时,仅显示15位数字。当然我知道我可以将格式单元格更改为文本,但是当我将其更改为文本时,它是不可计算的如何在excel中添加两个非常大的数字?,excel,Excel,我想在excel中存储两个非常大的数字,然后添加它们。我的数字如下: 32493031363031103515620330632053510851055146511 当我在单元格中键入此数字时,仅显示15位数字。当然我知道我可以将格式单元格更改为文本,但是当我将其更改为文本时,它是不可计算的 非常感谢这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。udf返回字符串格式以保留所有数字: Public Function superadd(s1 As String, s2 As St
非常感谢这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。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一起使用,尽管由于其编码方式的原因,访问函数的帮助文件有点困难。