值中的数字求和(Microsoft Excel)
如果您的单元格包含一个值,则可能需要设计一种将值中所有数字加在一起的方法。例如,如果一个单元格包含值554,则可能要确定5 + 5 + 4的总和,即14。
您可以通过几种方法来完成此任务。 (在Excel中不是总是这样吗?)首先是使用依赖于多个函数的公式:
=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))
此常规公式将以简单,简洁的方式将任意整数值(在单元格A1中)的数字相加。但是,这不是唯一可能的公式。以下是相同公式的数组公式(通过按Ctrl + Shift + Enter终止)版本:
=SUM(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))
如果A1中的值为正整数,则这些公式中的任何一个都可以正常工作。如果数字中包含任何非数字字符(例如负号或小数点),则公式将返回#VALUE!错误。
您还可以使用用户定义的函数来返回所需的总和。下面的宏逐步遍历引用的单元格中的每个数字并计算总数。然后将此值返回给用户:
Function AddDigits(Number As Long) As Integer Dim i As Integer Dim Sum As Integer Dim sNumber As String sNumber = CStr(Number) For i = 1 To Len(sNumber) Sum = Sum + Mid(sNumber, i, 1) Next AddDigits = Sum End Function
要使用此功能,只需在单元格中使用= AddDigits(A1)之类的公式即可。以下是更为紧凑的用户定义函数(以相同的方式调用):
Function AddDigits(ByVal N As Long) As Integer Do While N >= 1 AddDigits = AddDigits + N Mod 10 N = Int(N / 10) Loop End Function
与早期的宏不同,此版本不会将单元格内容转换为字符串以进行处理。取而代之的是,它逐步遍历值的每个数字,剥离最后一个数字并将其添加到总计中。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2424)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007和更高版本)找到本技巧的版本:
链接:/ excelribbon-Summing_Digits_in_a_Value [值中的数字求和]。