XL 2019 Combinaisons et conditions dans une formule

sum01

XLDnaute Occasionnel
Bonjour à tous,
Dans le fichier ci-joint, je fais face à une difficulté pour effectuer un test. Dans la colonne XX, j'ai des familles de données (symbolisées par des couleurs). Pour chaque famille, je recherche à savoir :
i) s'il existe au moins 1 cas "YES" dans le champ XZ et 1 cas "Doc" dans le champ xz1 (sur la même ligne). Si c'est le cas alors, la formule renvoie "OK+" pour tous les éléments de la même famille.
ii) si dans xz j'ai "NO" et dans xz1= vide pour tous les éléments de la même famille alors "NoOK"
iii) si dans xz j'ai "NO" et dans xz1 = Doc dans au moins un des champs de la même alors "NoOK"
iv) si dans xz j'ai "YES" et dans xz1 = Doc dans au moins un des champs (pas sur la même ligne) alors "OK-"
v) si dans xz j'ai "YES" et dans xz1 = vide dans au moins un des champs (pas sur la même ligne) alors "OK-"

Quelles sont les pistes pour combiner toutes ces hypothèses ?
Un grand merci pour votre aide et dores et déjà je vous souhaite un très bon week-end
 

Pièces jointes

  • Combinaisons.xlsx
    12.3 KB · Affichages: 15

Rouge

XLDnaute Impliqué
Bonjour,

Autre solution:
Formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$31=$A2)*($C$2:$C$31="YES")*($D$2:$D$31="Doc");0)>0;"OK+";"");"")&SIERREUR(SI(ET(NB.SI.ENS($A$2:$A$31;$A2;$C$2:$C$31;"YES")>0;EQUIV(1;($A$2:$A$31=$A2)*($C$2:$C$31="NO")*($D$2:$D$31="Doc");0));"OK-";"");"")&SIERREUR(SI(NB.SI.ENS($A$2:$A$31;$A2;$C$2:$C$31;"YES")=0;"NoOK";"");"")

Cdlt
 

Pièces jointes

  • sum01_Combinaisons et conditions dans une formule.xlsx
    13.4 KB · Affichages: 6

sum01

XLDnaute Occasionnel
Bonjour,

Autre solution:
Formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$31=$A2)*($C$2:$C$31="YES")*($D$2:$D$31="Doc");0)>0;"OK+";"");"")&SIERREUR(SI(ET(NB.SI.ENS($A$2:$A$31;$A2;$C$2:$C$31;"YES")>0;EQUIV(1;($A$2:$A$31=$A2)*($C$2:$C$31="NO")*($D$2:$D$31="Doc");0));"OK-";"");"")&SIERREUR(SI(NB.SI.ENS($A$2:$A$31;$A2;$C$2:$C$31;"YES")=0;"NoOK";"");"")

Cdlt
Bonjour JHA, Bonjour Rouge,
Merci pour vos réponses la solution de Rouge correspond à mon besoin et merci beaucoup pour cela. Dans la mesure où je souhaiterais rajouter une nouvelle condition :
vi) si dans xz j'ai un "YES" pour une même famille et dans xz1 = vide dans tous les champs de la même famille alors "OK-", de quelle manière puis-je compléter la formule ?
Un tout grand merci pour votre aide et bon week-end
 

Pièces jointes

  • Combinaisons(2).xlsx
    14.3 KB · Affichages: 3

Rouge

XLDnaute Impliqué
Nouvelle formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$31="YES")*($D$2:$D$41="Doc");0)>0;"OK+";"");"")&SI(NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes";$D$2:$D$41;"")>0;"OK-";"")&SIERREUR(SI(NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"YES")=0;"NoOK";"");"")
 

Pièces jointes

  • sum01_Combinaisons et conditions dans une formule_2.xlsx
    13.8 KB · Affichages: 6

sum01

XLDnaute Occasionnel
Nouvelle formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$31="YES")*($D$2:$D$41="Doc");0)>0;"OK+";"");"")&SI(NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes";$D$2:$D$41;"")>0;"OK-";"")&SIERREUR(SI(NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"YES")=0;"NoOK";"");"")
ReBonjour Rouge,
Rien à redire, ça marche à la perfection ! C'est une belle et complexe formule et un tout grand merci pour votre support/aide !!
Très bon week-end
 

Rouge

XLDnaute Impliqué
Bonjour,

Essayez cette formule plus courte et plus simple.
Nouvelle formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="Yes")*($D$2:$D$41="Doc");0);"OK+";"");SI(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes")>0);"OK-";"NoOK"))

Cdlt
 

Pièces jointes

  • sum01_Combinaisons et conditions dans une formule_3.xlsx
    13.8 KB · Affichages: 5

sum01

XLDnaute Occasionnel
Bonjour,

Essayez cette formule plus courte et plus simple.
Nouvelle formule en E2 à valider avec CTRL + SHIFT + ENTREE, puis à tirer vers le bas:
VB:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="Yes")*($D$2:$D$41="Doc");0);"OK+";"");SI(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes")>0);"OK-";"NoOK"))

Cdlt
Bonjour Rouge, cette formule également à merveille et est plus simple effectivement à comprendre. Les deux approches amènent au même résultat. Merci beaucoup pour votre aide et investissement. Je vous souhaite une bonne journée et un bon début de semaine.
 

sum01

XLDnaute Occasionnel
ReBonjour Rouge, pour comprendre la formule, j'ai essayé de modifier une des conditions (nouveau) pour obtenir OK- qui correspondrait à :
vi) si dans xz j'ai un "NO" pour une même famille et dans xz1 = Doc dans un des champs de la même famille alors "OK-", si suis presque parvenu en modifiant votre formule de cette manière
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($D$2:$D$41="Doc");0);"OK+";"");SI(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes")>0);"OK-";"NoOK")). Mais le résultat de cette formule n'est pas tout à fait correct. A quel moment dans la formule, le calcul doit se faire ?
Encore merci pour votre aide
 

Pièces jointes

  • Combinaisons(4.1)_FormuleSimplifiee.xlsx
    14.4 KB · Affichages: 3

Rouge

XLDnaute Impliqué
Bonjour,

Nouvelle formule avec ajout de la nouvelle condition, toujours à valider avec CTRL + SHIFT + ENTREE:
Code:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="Yes")*($D$2:$D$41="Doc");0);"OK+";"");SI(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes")>0);"OK-";SI(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A2;$A2;$D$2:$D2;"Doc")>0);"OK-";"NoOK")))

ou celle-ci qui fait un "OU" logique entre 2 conditions renvoyant le même résultat:
Code:
=SIERREUR(SI(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="Yes")*($D$2:$D$41="Doc");0);"OK+";"");SI(OU(ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A$41;$A2;$C$2:$C$41;"Yes")>0);ET(EQUIV(1;($A$2:$A$41=$A2)*($C$2:$C$41="NO");0);NB.SI.ENS($A$2:$A2;$A2;$D$2:$D2;"Doc")>0));"OK-";"NoOK"))

Le fichier avec les 2 formules

Cdlt
 

Pièces jointes

  • sum01_Combinaisons et conditions dans une formule_4.xlsx
    15.9 KB · Affichages: 6
Dernière édition:

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87