Mandy se demande s’il existe un moyen de additionner une plage de données et d’inclure dans la somme uniquement les cellules qui contiennent une formule. Selon les besoins de Mandy, si une cellule contient une valeur explicite et non une formule, elle ne doit pas être incluse dans la somme.

Il existe de nombreuses façons d’atteindre le résultat souhaité, mais je ne me concentrerai que sur quelques-unes d’entre elles.

Premièrement, si vous n’avez besoin de déterminer la somme qu’une seule fois et de ne pas la faire apparaître dans la feuille de calcul elle-même, vous pouvez suivre les étapes suivantes:

  1. Sélectionnez les cellules que vous souhaitez additionner.

  2. Appuyez sur F5. Excel affiche la boîte de dialogue Atteindre.

  3. Cliquez sur le bouton Spécial. Excel affiche la boîte de dialogue Aller à spécial.

  4. Sélectionnez le bouton radio Formules.

  5. Cliquez sur OK. Excel modifie les cellules sélectionnées afin que seules celles contenant des formules soient sélectionnées.

À ce stade, vous pouvez regarder dans la barre d’état (en bas de la fenêtre Excel) et voir la somme des cellules sélectionnées – celles contenant des formules.

Si vous préférez une approche basée sur des formules, l’un des facteurs clés ici sera la version d’Excel que vous utilisez. Microsoft a introduit la fonction ISFORMULA avec la sortie d’Excel 2013, donc si vous utilisez cette version (ou une version ultérieure), il est assez facile de déterminer la somme souhaitée.

Utilisez simplement cette formule:

=SUMPRODUCT(A1:A5,--ISFORMULA(A1:A5))

Cette formule suppose que la plage de données que vous souhaitez additionner est A1: A5. Le signe « double moins » avant la fonction ISFORMULA est utilisé pour convertir les valeurs TRUE et FALSE (telles que renvoyées par ISFORMULA) en 1 ou 0.

Si vous préférez utiliser une formule matricielle, vous pouvez utiliser la formule suivante:

=SUM(IF(ISFORMULA(A1:A6),A1:A6))

N’oubliez pas d’entrer en utilisant Ctrl + Maj + Entrée et vous obtiendrez le résultat approprié.

Si vous utilisez une version d’Excel antérieure à Excel 2010, ces formules ne fonctionneront pas. Au lieu de cela, vous devrez vous fier à une fonction définie par l’utilisateur pour faire l’affaire:

Function SumFormulas(ByVal r As Range)

Dim c As Range     Dim s As Double

s = 0     For Each c In r.Cells              If c.HasFormula And IsNumeric(c) Then             s = s + c.Value         End If     Next c     SumFormulas = s End Function

Notez que le code vérifie que la cellule contient une formule (à l’aide de la propriété HasFormula) et vérifie qu’elle est numérique (à l’aide de la fonction IsNumeric). Les deux sont nécessaires car il est possible d’avoir une formule textuelle dans une cellule et vous ne voulez pas essayer d’inclure les résultats d’une telle formule dans votre somme.

Pour utiliser la fonction, vous utiliseriez simplement ce qui suit dans une cellule de feuille de calcul, en supposant que vous vouliez additionner la plage A1: C7:

=SumFormulas(A1:C7)

L’approche basée sur les macros fonctionnera également dans les versions d’Excel au-delà d’Excel 2010, si pour une raison quelconque vous ne souhaitez pas vous fier à la fonction ISFORMULA. (Par exemple, si vous devez vous assurer de la compatibilité avec les anciennes versions d’Excel.)

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13595) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.