NB.SI.ENS et condition OU

Bonjour à tous,

J'ai un petit problème dont je ne trouve pas la solution. Je sollicite donc vos aides ;)

J'ai une base de données contenant diverses colonnes et des mots/chiffres dans celles-ci. Dans un nouvelle onglet, je veux que la formule calcule pour moi différents caractères que je lui donne, j'ai donc utilisé :

=NB.SI.ENS(Plage 1;"critère 1";Plage 2; "Critère 2"; etc... ) mon problème réside dans le fait que dans certaines plages je ne veux pas additionner les critères comme le veux la condition mais imbriquer une fonction OU au lieu du ET.

Pour exemple cela nous donnerait =NB.SI.ENS(Plage 1;"critère 1";Plage 2; "Critère 2";Plage 3; "Critère 3" ou "Critère 4" ou "Critère 5")

J'espère être assez clair sur l'explication, tous mes essais ont menés à des échecs

Merci à tous

Théo

Bonjour

A ma connaissance on ne peut pas imbriquer de fonction OU dans un nb.si.ens. Par défaut ca donnera 0 en résultat

Le plus simple serait peut-être de créer une nouvelle plage intermédiaire où les critères seraient concatenés dans un critères BIS unitaire ?

Bonjour Evolm, merci de ta réponse.

Effectivement le résultat donne 0 et quand on force à plusieurs critères, il ne retient que le premier même si le second est existant et devrait donc apparaître.

Je ne connais pas (et sûrement ne sais pas) faire la chose que tu me proposes, pourrais tu développer l'idée pour voir si cela est faisable ?

Cordialement

Théo

Bonjour,

Il suffit de mettre les critères OU dans une plage de cellule et d'utiliser une formule du genre :

=SOMME(NB.SI.ENS(Plage 1;"critère 1";Plage 2; "Critère 2";Plage 3; Plage critères multiples))

En cas de plage pour un critère, Excel renvoie une matrice de résultats (une ligne pour chaque critère de la plage), et il suffit d'additionner cette matrice.

A+

Bonjour,

J'ai deux solutions en tête:

créer une plage qui se chargera de renvoyer 1 si l'un des critères 3, 4 ou 5 est respecté, et utiliser ça dans le nb.si.ens

utiliser une fonction SOMMEPROD (je pense que ça existe aussi sur google sheet), avec:

=SOMMEPROD((Plage 1 = "critère 1") * (Plage 2 = "critère 2") * ( ((Plage 3 = "critère 3") + (Plage 4 = "critère 4") + (Plage 5 = "critère 5"))>=1))

On le critère 1, le critère 2, le critère 3, le critère 4, le critère 5, le OU qui est fait avec la somme des critères 3, 4 et 5, qui donnera une valeur allant de 0 à 3 (aucun critère rempli à tous les critères remplis), je fais un test pour vérifier qu'au moins un des critères est rempli avec >=1, et pour combiner toutes les conditions je fais un produit avec *.

Si un critère est rempli, le test logique renvoie 1, sinon 0, on peut donc utiliser des multiplications pour réaliser le ET, et additions avec >=1 pour faire un OU.

si on a par exemple:

SOMMEPROD(1 * 0 * ((1 + 1 + 0)>=1)) = SOMMEPROD(0 * (2 >=1)) = SOMMEPROD(0 * 1) = 0

SOMMEPROD(1 * 1 *((0+ 1 + 0)>=1)) = SOMMEPROD(1 * (1>=1)) = SOMMEPROD(1*1) = 1

Quand on a des multiplications pour demander que toutes les conditions soient remplies, on a directement 0 si l'une d'elle ne l'est pas, quand au OU représenté par des additions, à partir du moment où l'on a un 1 parmi les trois critères, ça renvoie bien un 1.

dans ton exemple Plage 3; "Critère 3" ou "Critère 4" ou "Critère 5"

On va par exemple dire que ta plage 3 correspond à la colonne A

tu te crées une colonne B en écrivant en B2 : =SI(OU(A2="critère1";A2="critère 2";A2="critère 3");"new";A2)

tu te crées ainsi un critère appelé NEW qui regroupe ta condition OU. Si la condition n'est pas respecté, tu conserves le critère existant

Ainsi tu prends en compte ta colone B comme plage pour ton nb.si.ens

A voir si c'est adapté à ton besoin.

Re-bonjour à tous,

Merci beaucoup pour vos réponses, je comprends très bien vos idées mais malheureusement après une heure, je n'ai toujours pas la solution qui fonctionne.

J'ai refais un dossier pour vous permettre de voir ce que je souhaite obtenir, en espérant réussir.

43essai-formule.xlsx (6.91 Ko)

Re bonjour,

quelque chose comme ça?

206essai-formule.xlsx (10.42 Ko)

Bonjour Théo,

Tu peux utiliser cette méthode:

=COUNTA(query(Tableau!A2:J9; "Select E WHERE C='2023' AND J='CLOS' AND (E='JOJO@gmail.com' OR E='COCO@gmail.com')"))

Cordialement,

Fil.

Bonjour à tous,

Merci pour vos nombreuses réponses, mon problème est résolu grâce à vous !

Jamais déçu par ce forum :)

Rechercher des sujets similaires à "ens condition"