Formule Excel: compter les cellules contenant x ou y -

Formule générique

=SUMPRODUCT(--((ISNUMBER(FIND("abc",rng)) + ISNUMBER(FIND("def",rng)))>0))

Sommaire

Pour compter les cellules qui contiennent x ou y, vous pouvez utiliser une formule basée sur la fonction SOMMEPROD. Dans l'exemple illustré, la formule de la cellule F5 est:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11))+ISNUMBER(FIND("def",B5:B11)))>0))

Il s'agit de la solution de formule à cellule unique, expliquée ci-dessous. Il est également possible d'utiliser une formule plus simple basée sur une colonne d'assistance, également expliquée ci-dessous.

Explication

Lorsque vous comptez les cellules avec "logique OU", vous devez faire attention à ne pas compter deux fois. Par exemple, si vous comptez des cellules contenant «abc» ou «def», vous ne pouvez pas simplement additionner deux fonctions COUNTIF, car vous pouvez compter deux fois les cellules contenant à la fois «abc» et «def».

Solution à cellule unique

Pour une formule unique, vous pouvez utiliser SUMPRODUCT avec ISNUMBER + FIND. La formule en F5 est:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11)) + ISNUMBER(FIND("def",B5:B11)))>0))

Cette formule est basée sur la formule expliquée ici qui localise le texte à l'intérieur d'une cellule:

ISNUMBER(FIND("abc",B5:B11)

Lorsqu'il est donné une plage de cellules, cet extrait renvoie un tableau de valeurs VRAI / FAUX, une valeur pour chaque cellule de la plage. Puisque nous l'utilisons deux fois (une fois pour "abc" et une fois pour "def"), nous obtiendrons deux tableaux.

Ensuite, nous ajoutons ces tableaux ensemble (avec +), ce qui crée un nouveau tableau unique de nombres. Chaque nombre de ce tableau est le résultat de l'ajout des valeurs TRUE et FALSE dans les deux tableaux d'origine ensemble. Dans l'exemple illustré, le tableau résultant ressemble à ceci:

(2;0;2;0;1;0;2)

Nous devons additionner ces chiffres, mais nous ne voulons pas compter deux fois. Nous devons donc nous assurer que toute valeur supérieure à zéro n'est comptée qu'une seule fois. Pour ce faire, on force toutes les valeurs à TRUE ou FALSE avec "> 0", puis on force à 1/0 avec le double négatif (-).

Enfin, SUMPRODUCT renvoie la somme de toutes les valeurs du tableau.

Solution de colonne d'assistance

Avec une colonne d'aide pour vérifier chaque cellule individuellement, le problème est moins complexe. Nous pouvons utiliser COUNTIF avec deux valeurs (fournies comme une "constante de tableau"). La formule en C5 est:

=--(SUM(COUNTIF(B5,("*abc*","*def*")))>0)

COUNTIF renverra un tableau contenant deux éléments: un compte pour "abc" et un compte pour "def". Pour éviter le double comptage, nous ajoutons les éléments puis forçons le résultat à TRUE / FALSE avec "> 0". Enfin, nous convertissons les valeurs TRUE / FALSE en 1 et 0 avec un double négatif (-).

Le résultat final est 1 ou 0 pour chaque cellule. Pour obtenir un total de toutes les cellules de la plage, additionnez simplement la colonne d'assistance.

Articles intéressants...