Fomule de calcul excel
Résolupinpon59 Messages postés 324 Statut Membre -
Dans le tableau sous excel 2007, comme si dessous, dans chaque colonne, je dois avoir pour chaque jour de la semaine, 3 cellules qui commence par un "C et 3 cellules qui commencent par un "S". Si je les aient, dans la dernière ligne, j'aimerai que "OK" s'inscrive automatiquement. Par contre s'il manque un "S" ou un "C", j'aimerai que "-1 ou -2 ....etc" s'inscrivent automatiquement. mais je ne sais pas comment faire. merci pour votre aide.
lundi mardi mercredi
pierre c1 s1
paul c2 s1
jacques c3 s2
alain c2 c2
franck s1 s1
emile s3
laurent c3
georges c2
michel s3
OK -2 -4
14 réponses
Problème : dans Excel 2007, colonne dédiée à un jour nécessite trois entrées commençant par C et trois entrées commençant par S; pour que la dernière ligne affiche OK si tout est présent. Des solutions proposées cherchent à compter les manquants pour atteindre trois éléments par catégorie et à présenter un code négatif (par exemple -1, -2) lorsque l'un des deux types manque. Certaines réponses suggèrent d'utiliser NB.SI et des formules MIN pour totaliser les occurrences C et S et déterminer le nombre de manquants à atteindre. En pratique, une approche donne un exemple de formule qui vérifie ces conditions sur une plage et renvoie une valeur négative lorsqu'un C ou S manque, avec une copie horizontale possible.
-
je peux vous envoyer un extrait du tableau par mail si besoin
-
Salut,
ce serait bien plus clair si tu nous mettais ton fichier ici. Pour ce faite passe pas CIJOINT et ensuite colle nous le lien ici.
Merci -
http://www.cijoint.fr/cjlink.php?file=cj200912/cij7w77uIp.xlsx
-
Bonsoir
ce ne sera peut être pas la peine si nous nous sommes compris:
pour l'exemple:
si vous tester la colonne B sur les lignes de 2 à 9:
en B10:
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";"")
par contre que voulez vous afficher si la condition n'est pas remplie, le nombre de S ou le nombre de C?
à tout hasard, voyez avec ceci:
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";"C= "&NB.SI(B2:B9;"*C*")&" / S="&NB.SI(B2:B9;"*S*"))
Qui vous donnera dans la même cellule si la condition n'est pas remplie:
C=.... / S=... avec le nombre de chaque code
Revenez s'il vous faut autre chose.
crdlmnt
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
le chiffre derrière le C ou le S n'est pas important, c la dernière ligne qui m'interresse
-
Alors on revoie la formule:
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";SI(NB.SI(B2:B9;"*C*")>2;3-NB.SI(B2:B9;"*S*");SI(NB.SI(B2:B9;"*S*")>2;3-NB.SI(B2:B9;"*C*");3-NB.SI(B2:B9;"*C*")+3-(NB.SI(B2:B9;"*S*")))))
Celle là vous donnera le total des S et C manquant, si l'autre ne vous convient pas, sans distinguer les C des S.
Ca ça peut aussi se faire mais c'est un peu plus long.
ça donne ça:
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";SI(NB.SI(B2:B9;"*C*")>2;"S "&3-NB.SI(B2:B9;"*S*");SI(NB.SI(B2:B9;"*S*")>2;"C "&3-NB.SI(B2:B9;"*C*");"C "&3-NB.SI(B2:B9;"*C*")&" / "&"S "&3-(NB.SI(B2:B9;"*S*")))))
Crdlmnt
-
En fait la formule de Vaucluse est à peu près correcte :)
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";"C= "&NB.SI(B2:B9;"*C*")&" / S="&NB.SI(B2:B9;"*S*"))
C'est juste le derniere partie que je ne vois pas comment adapter "C= "&NB.SI(B2:B9;"*C*")&" / S="&NB.SI(B2:B9;"*S*"))
tu as 6 au total alors il faudrait faire 6 - la somme des NB.SI trouvé et l'afficher en négatif
Si j'ai bien compris biensur -
Bonjour Ricky
en fait j'ai voulu distinguer les totaux S et C dans la même formule, mais en relisant la demande, c'est le nombre de manquants pour aller à trois qu'il faut identifier (du mois je crois), d'où mon second message qui donne dans une première formule le total des manquants sans distinction et fait la distinction entre C et S dans la deuxième.
Test à l'appui que je peux transmettre, mais étant sur 2003 je n'ai pas accès au fichier du demandeur
Bien amicalement
PS: on ne peut pas faire le calcul 6-somme des NB.SI, car s'il y a 4C et 1S le résultat sera 1 alors que l'attendu est 2 (soit 2 S manquants) -
c vrai que la formule de vaucluse est presque parfaite. je vous ai mis une petite explication dans le fichier pour que vous compreniez mieux.
http://www.cijoint.fr/cjlink.php?file=cj200912/cijYOKW3Ku.xlsx -
Re
je ne peux pas accéder au fichier sous excel 2007. Avez vous tester mes dernières propositions?
Crdlmnt
-
-
Ben voyons Ricky :-)
il suffit dans cette option, d'inverser le sens des items de la fin, ,je pense que ce n'est pas trop difficile?
=SI(ET(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")>2);"OK";SI(NB.SI(B2:B9;"*C*")>2;NB.SI(B2:B9;"*S*")-3;SI(NB.SI(B2:B9;"*S*")>2;NB.SI(B2:B9;"*C*")-3;NB.SI(B2:B9;"*C*")-3+(NB.SI(B2:B9;"*S*")-3))))
Qu'en penses tu?
Crdlmnt
PS: je n'avais pas jugé utile de préciser le moins puisque de toutes façons, la formule n'affiche que les manquants.Le moins existe par défaut!
Par contre, si elle marche et que tu as accès au fichier du demandeur, peux tu l'aider si besoin à adapter l'une où l'autre des options proposées?Merc i pour lui.
A+
-
-
-
-
-
http://www.cijoint.fr/cjlink.php?file=cj200912/cijT8CxvNR.xlsx
-
ca y ai, il suffisait juste de changer la lettre des colonnes. en copiant la formule a garder la lettre de la premiere colonne. merci beaucoup a tous pour votre aide. c sympa
-
Re,
Fais des tests avec :
=MIN(NB.SI(B2:B10;"c*");3)+MIN(NB.SI(B2:B10;"s*");3)+MIN(NB.SI(B2:B10;"vlc*");2)-6
à recopier vers la droite.
Avec cette formule un 3ème vlc ne sera pas pris en compte.
C'est bien ce qu'il fallait ?
eric
edit: j'avais oublié, mettre en format de cellule personnalisé: 0;-0;"OK"
(sélectionner les cellules, clic-droit dessus, 'format de cellule', catégorie: 'Personnalisée', type: 0;-0;"OK" )
edit2: j'avais inversé les signes dans le format donc correction de la formule et du format personnalisé -
Facilement tu peux ne compter que les c et s suivis d'un seul caractère :
=MIN(NB.SI(C2:C10;"c?");2)+MIN(NB.SI(C2:C10;"s?");2)+MIN(NB.SI(C2:C10;"vlc");2)-6
Dis-moi si ça te suffit (les chaines non désirées doivent faire 3 car. et plus), sinon ça va compliquer singulièrement la formule.
eric