Optellen Cijfers in een Value

Als je een cel die een waarde bevat, wilt u misschien een manier om samen alle cijfers in de waarde toe te voegen bedenken. Bijvoorbeeld, als een cel bevat de waarde 554, wilt u misschien de som van 5 + 5 + 4, dat is 14 te bepalen.

Er zijn verschillende manieren waarop u kunt deze taak benaderen. (Is dat niet altijd lijken de manier waarop in Excel?) De eerste is om een ​​formule die is gebaseerd op een aantal functies:

= SOMPRODUCT (- MID (A1, RIJ (INDIRECT ("1:" & LEN (A1))), 1))

Deze regelmatige formule zal de cijfers in ieder geheel getal (in cel A1) samenvatten in een eenvoudige, elegante manier. Dit is niet het enig mogelijke formule echter. Het volgende is een matrixformule (beëindigd door op Ctrl + Shift + Enter) versie van dezelfde formule:

= SOM (1 * MID (A1, RIJ (INDIRECT ("1:" & LEN (A1))), 1))

Elk van deze formules werkt prima als de waarde A1 is een positief geheel getal. Als er sprake is van niet-cijferige tekens van het aantal (zoals een negatief teken of een komma), dan is de formules terug een #WAARDE! error.

Dit zijn niet de enige mogelijke formules voor dit type berekening. U kunt een aantal andere voorbeelden van formules in de Microsoft Knowledge Base vinden:

http://support.microsoft.com/kb/214053

U kunt ook een door de gebruiker gedefinieerde functie gebruiken om het gewenste bedrag terug. De volgende macro doorloopt elk cijfer in de cel waarnaar wordt verwezen en berekent een totaal. Deze waarde wordt dan teruggegeven aan de gebruiker:

Functie AddDigits (Aantal As Long) As Integer
Dim i As Integer
Dim Sum As Integer
Dim sNumber als Koord

sNumber = CStr (Aantal)
Voor i = 1 To Len (sNumber)
Som = som + Mid (sNumber, i, 1)
Volgende
AddDigits = Sum
End Function

Om deze functie te gebruiken, gewoon gebruik maken van een formule, zoals = AddDigits (A1) in een cel. Een nog compactere gebruiker gedefinieerde functie (op dezelfde wijze aangeroepen) is de volgende:

Functie AddDigits (ByVal N As Long) As Integer
Doe Terwijl N> = 1
AddDigits = AddDigits + N Mod 10
N = Int (N / 10)
Lus
End Function

In tegenstelling tot de eerdere macro, deze versie niet de celinhoud converteren naar een tekenreeks om te verwerken. In plaats daarvan, het stappen door elk cijfer van de waarde, strippen uit het laatste cijfer en toe te voegen aan het totaal.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (2424) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vinden hier: Summing Cijfers in een Value.