excel - 对 Excel 单元格中的数字求和(长字符串和短字符串)

标签 excel excel-formula

我正在从事与频率相关的研究。

我想对每个单元格中的所有数字求和,并将它们减少为单个数字。

有些单元格有 2 个数字,有些单元格有 13 个数字。像这些..

24.0542653897891
25.4846064424057
27
28.6055035477009

我尝试了几个公式来做到这一点。最好的有我 2 位数的数字,我无法再次将其相加以获得单个结果。

像这些公式:
=SUMPRODUCT(MID(SUBSTITUTE(B5,".",""),ROW(INDIRECT("1:"&LEN(B5)-1)),1)+0)
=SUMPRODUCT(1*MID(C5,ROW(INDIRECT("1:"&LEN(C5))),1))

有什么建议吗?
先感谢您。

最佳答案

编辑

根据您的解释您的评论,您想要的是所谓的数字根的所有数字(不包括小数点)。换句话说,重复对数字求和,直到得到一个 数字 .

这可以通过比将数字相加更简单的公式来计算。

=1+(SUBSTITUTE(B5,".","")-1)-(INT((SUBSTITUTE(B5,".","")-1)/9)*9)

对于长数字,我们可以将数字分成两半并处理每一半。例如:
=1+MOD(1+MOD(LEFT(SUBSTITUTE(B5,".",""),INT(LEN(SUBSTITUTE(B5,".",""))/2))-1,9)+1+MOD(RIGHT(SUBSTITUTE(B5,".",""),LEN(SUBSTITUTE(B5,".",""))-INT(LEN(SUBSTITUTE(B5,".",""))/2))-1,9)-1,9)

但是,数字应存储为 TEXT。 当数字存储为数字时,我们看到的可能不一定是那里存储的内容,以及公式(以及 UDF)将处理的内容。

长公式版本将更正工作表上的所有错误,B104 除外。 B104 似乎具有值 5226.9332653096000但 Excel 确实存储了值 5226.9333265309688 .由于 Excel 的精度限制,这将被处理为 5226.93332653097 .因此会有分歧。

另一种应该有效的方法将 B 列中的所有结果四舍五入到 15 位(例如:。结合使用长公式版本应该会导致您显示的所有值一致。

解释
  • 如果一个数能被 9 整除,则其数字根为 9,否则数字根为 n MOD 9
  • 一般公式为:=1+Mod(n-1,9)
  • 在您的情况下,因为我们处理的数字大于可以使用 MOD 计算的数字。函数,我们既需要删除点,也需要使用 mod 的等价物 n-(int(n/9)*9)
  • 笔记:
  • 这最适合存储为文本的数字。由于 Excel 可能会以不同于预期的方式显示和/或转换大数字或具有许多小数位的数字,因此使用数字文本字符串是最稳定的方法。
  • 此方法不适用于大于 15 位的数字。

  • 如果您的数字 > 15 位,那么我建议使用 VBA 用户定义函数:
    Option Explicit
    Function digitalRoot(num As String) As Long
        Dim S As String, Sum As Long, I As Long
    S = num
    Do While Len(S) > 1
        Sum = 0
        For I = 1 To Len(S)
            Sum = Sum + Val(Mid(S, I, 1))
        Next I
        S = Trim(Str(Sum))
    Loop
    
    digitalRoot = CLng(S)
    
    End Function
    

    enter image description here

    关于excel - 对 Excel 单元格中的数字求和(长字符串和短字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61725296/

    相关文章:

    excel - 如何将以下数据转换为以下格式的列

    excel - 我需要一个与 Excel 中的 NETWORKDAYS 相反或相反的函数

    c# - 以编程方式在 Excel 2007 中添加条件格式

    c# - 通过 Open XML 将数据导出到支持宏的 Excel

    excel - 如何过滤列单元格值不属于其他行的值模式的行?

    excel-formula - 在 Excel 中设置科学计数法格式

    Excel 转换和删除空格

    html - VBA Web Scraping 使用 getElementsByClassName 获取名称和地址

    excel - 无需VBA根据单元格的值提取所有行

    Excel - 卡住顶行显示重复的顶行