Addition de chiffres dans une valeur (Microsoft Excel)
Si vous avez une cellule qui contient une valeur, vous souhaiterez peut-être concevoir un moyen d’additionner tous les chiffres de la valeur. Par exemple, si une cellule contient la valeur 554, vous voudrez peut-être déterminer la somme de 5 + 5 + 4, soit 14.
Vous pouvez aborder cette tâche de plusieurs manières. (Cela ne semble-t-il pas toujours le cas dans Excel?) La première consiste à utiliser une formule qui repose sur plusieurs fonctions:
=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))
Cette formule régulière additionnera les chiffres de n’importe quelle valeur entière (dans la cellule A1) d’une manière simple et élégante. Ce n’est cependant pas la seule formule possible. Ce qui suit est une version de formule matricielle (terminée en appuyant sur Ctrl + Maj + Entrée) de la même formule:
=SUM(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))
L’une ou l’autre de ces formules fonctionne correctement si la valeur de A1 est un nombre entier positif. S’il y a des caractères non numériques dans le nombre (comme un signe négatif ou une virgule décimale), alors les formules renvoient un #VALUE! Erreur.
Ce ne sont pas les seules formules possibles pour ce type de calcul.
Vous pouvez trouver d’autres exemples de formules dans la base de connaissances Microsoft:
http://support.microsoft.com/?kbid=214053
Vous pouvez également utiliser une fonction définie par l’utilisateur pour renvoyer la somme souhaitée. La macro suivante parcourt chaque chiffre de la cellule référencée et calcule un total. Cette valeur est ensuite renvoyée à l’utilisateur:
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
Pour utiliser cette fonction, utilisez simplement une formule telle que = AddDigits (A1) dans une cellule. Une fonction définie par l’utilisateur encore plus compacte (appelée de la même manière) est la suivante:
Function AddDigits(ByVal N As Long) As Integer Do While N >= 1 AddDigits = AddDigits + N Mod 10 N = Int(N / 10) Loop End Function
Contrairement à la macro précédente, cette version ne convertit pas le contenu de la cellule en une chaîne pour la traiter. Au lieu de cela, il parcourt chaque chiffre de la valeur, en supprimant le dernier chiffre et en l’ajoutant au total.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (12002) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.
Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici: link: / excel-Summing_Digits_in_a_Value [Summing Digits in a Value]
.