【问题标题】:Use 64 bit integers in excel在 Excel 中使用 64 位整数
【发布时间】:2018-11-23 07:10:17
【问题描述】:

有没有办法强制 excel 使用整数格式而不是 double ? 例如:

A1: 122124841883276000
A2: 122124842368497000
A3:          485220992  =A2-A1   should be 485221000

谢谢!

【问题讨论】:

  • 我不相信你可以在本地做到这一点。前段时间我确实写了一个函数来将两个 100 位数字相乘……谁知道呢,我还不如做加法和减法,因为它们会更容易,将来可能会尝试除法,但我不想在上面加上时间表stackoverflow.com/questions/32943905/…
  • 不,你不能。 Excel 仅限于 15 位精度,更长的数字将根据 IEEE 二进制浮点算术标准 (IEEE 754) 进行存储。使用 VBA,您可以编写可在 Excel 中使用的例程,以准确处理涉及更高精度的计算。 xNumbers 6.0 就是这样一种例程。
  • @TomSharpe 也许你可以从 xNumbers 开始。我认为它现在是开源的,但我不知道有人在研究它。可能仍然存在一些错误,并且工具栏未显示在 Excel 2016 中,但有许多功能可以使用。我没有足够的知识来做很多事情。
  • 它可能会节省重新发明轮子:-)
  • 需要进行哪些操作?有一些简单的解决方法。

标签: excel excel-formula ms-office long-integer


【解决方案1】:

感谢上帝.. 就这样.. 通过将每个数字转换为单独的字符串来实现我们的学校数学。然后手动减1位。

B5        =IF(C4<0,B2-1,"")

拖到C5

C1       =MID($A1,COLUMN(C1)-2,1)   
C2       =MID($A2,COLUMN(C2)-2,1)   
A3       =A2-A1         
C4       =C2-C1 
C6       =IF(C4<0,10+IF(C5="",C2,C5)-C1,C4) 

选择 C1:C6 并将其拖动到 T6

终于:

A3       =VALUE(CONCATENATE(C6,D6,E6,F6,G6,H6,I6,J6,K6,L6,M6,N6,O6,P6,Q6,R6,S6,T6))

希望能解决.. (:

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2015-09-13
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多