如果需要在Excel中求出一個正整數(shù)的各位數(shù)值之和,如123456,其各位數(shù)值之和1+2+3+4+5+6=21,可以用下面的公式,假如數(shù)值在A1單元格中:
1.用SUMPRODUCT函數(shù):
=SUMPRODUCT(–MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))
說明:假設(shè)A1單元格中為數(shù)值123456,該公式先用LEN函數(shù)返回數(shù)值的長度6,并用INDIRECT函數(shù)返回“1:6”的引用“$1:$6”,然后用ROW("1:6")獲得數(shù)組{1;2;3;4;5;6},這里由于SUMPRODUCT函數(shù)的參數(shù)為數(shù)組,所以可以返回數(shù)組,最后用MID函數(shù)獲取各數(shù)位的數(shù)值{"1";"2";"3";"4";"5";"6"},并用雙重否定符“–”將各數(shù)轉(zhuǎn)化為數(shù)值并求和。
2.用SUM函數(shù)的數(shù)組公式:
=SUM(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))
公式輸入完畢后按Ctrl+Shift+Enter結(jié)束。
3.用自定義函數(shù):
在VBA編輯器中插入“模塊”,并輸入下面的VBA代碼:
Function SumDigits(ByVal N As Long) As Integer
Do While N >= 1
SumDigits = SumDigits + N Mod 10
N = Int(N / 10)
Loop
End Function
然后在單元格中輸入
=SumDigits(A1)
由于該代碼中定義的變量為Long數(shù)據(jù)類型,即4 字節(jié)的整型值,故其可以計算的最大數(shù)值為2147483647。