Compter des cellules situées avant un terme

Fermé
Sylvain_troyes - 11 janv. 2008 à 11:47
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 12 janv. 2008 à 12:58
Bonjour,

J'aurais aimé compter le nombre de cellules présentes avant un terme choisi

exemple: (il y a dans l'exemple 8 colonnes)

personne1 x x x x x x x x
personne2 x x (cellule vide) x d (cellule vide) (cellule vide) (cellule vide)

à la fin du tableau je voudrais calculer automatiquement le pourcentage des fois ou la personne est venue (le pourcentage ne me pose aucun pb)

personne1 100% (car venu 8 fois sur 8)
personne2 75% (car venu 3 fois sur 4 (nb de cellules présentes avant d)) et non 37,5% (3 fois sur 8)

mon pb est juste de compter le nombre de cellules (vides et non vides) situées avant mon critère qui est d
il me faudrait un truc du genre "si dans la ligne il y a d ne compter que les cellules situées avant ce d" (sachant que cette condition sera intégrée à la fin de toutes mes lignes)

Voilà j'espère avoir été assez clair

Merci par avance pour vos réponses
A voir également:

7 réponses

nogaret Messages postés 34 Date d'inscription lundi 11 décembre 2006 Statut Membre Dernière intervention 2 août 2008 23
11 janv. 2008 à 16:37
bonjour
tu disposes de plusieurs fonctions suivant ce que tu veux compter
NB.SI(Plage;Critéres) pour compter dans une plage donnée le nombre de fois ou le critère est présent
NB.VIDE(plage) pour compter le nombre de cellules vides dans une plage donnée

A+
0
Sylvain_troyes
11 janv. 2008 à 18:26
bonjour,

ça je sais faire y a pas de pb.
j'ai une solution de secours qui est de copier d sur tout le restant de ma ligne comme ça pas de pb avec cette formule :
NB.SI(plage;"x")/(NB.VIDE(plage)+NB.SI(plage;"X"))

mais j'aurais aimé éviter de copier d sur toute ma ligne.
sinon si vous connaissez comment faire pour copier d automatiquement sur le restant de la ligne merci de me l'indiquer.

@+
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
11 janv. 2008 à 19:30
Bonjour,

=EQUIV("D";B2:L2;0) te retournera la position de D dans la plage B2:L2
Ex si F2 = D => =EQUIV("D";B2:L2;0) retourne 5

eric
0
Sylvain_troyes
12 janv. 2008 à 00:33
Bonsoir,

Merci eriiic ça marche impec seulement j'ai un autre problème.

Je voudrais que si dans ma ligne C2:K2 j'ai D, je retourne un chiffre qui est la position de D-1 (ce qui correspond à mon nombre de cellule avant D), sinon j'additionne mes cellules vides et celles contenant X.
J'ai tapé:
=SI(C2:K2="D";(EQUIV("D";C2:K2;0)-1);(NB.VIDE(C2:K2)+NB.SI(C2:K2;"X")))

Toutes mes fonctions utilisées séparement fonctionnent mais le pb est que la fonction SI n'a pas l'air de fonctionner avec une ligne.
Là j'ai plus d'idée, bon il est tard c'est vrai ;-) mais j'aurais besoin d'un coup de pouce.

Merci et bonne nuit
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
12 janv. 2008 à 08:29
Bonjour,

Ton test devrait être =SI(NB.SI(C2:K2;"D")>0;...;...)

Et dans ...NB.SI(C2:K2;" ;X") il y a un pb sur les " " ou le ; non ? A moins que tu ne veuilles vraiment compter les " ;X"

eric
0
Sylvain_troyes
12 janv. 2008 à 10:35
Bonjour,

Parfait eriic, merci bcp.
effectivement en faisant mon copier/coller et en tapant mon texte après, je me suis trompé dans ma formule, c'est..... NB.SI(C2:K2;X")..., elle était bonne dans excel.

Voilà une affaire fort bien menée

Encore merci

Sylvain
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
12 janv. 2008 à 12:58
De rien
Bonne continuation sylvain
0