Formule excel !
Funky
-
wilfried_42 Messages postés 912 Statut Contributeur -
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
J'ai un tableau avec 6 colonnes et 5 lignes. Je souhaite savoir si les PM(1,2,3,...) sont utilisés au moins une fois. C'est à dire, j'aimerais regarder la ligne 1 et savoir si il y au moins une fois un "O", puis la ligne 2 et regarder si il y a au moins une fois un "O" puis les additionner. Donc en résumé pour le cas ici j'aurais le nombre 4 parce que:
PM1 N N N O O J'ai au moins 1 fois un "O" ---> compteur = 1
PM2 N O O O N J'ai au moins 1 fois un "O" ---> compteur = 2
PM3 N N N N O J'ai au moins 1 fois un "O" ---> compteur = 3
PM4 O O N N O J'ai au moins 1 fois un "O" ---> compteur = 4
PM5 N N N N N Je n'ai pas au moins 1 fois un "O" ---> compteur = 4
Donc résultat = 4
Merci d'avance pour votre aide.
Funky
J'ai un tableau avec 6 colonnes et 5 lignes. Je souhaite savoir si les PM(1,2,3,...) sont utilisés au moins une fois. C'est à dire, j'aimerais regarder la ligne 1 et savoir si il y au moins une fois un "O", puis la ligne 2 et regarder si il y a au moins une fois un "O" puis les additionner. Donc en résumé pour le cas ici j'aurais le nombre 4 parce que:
PM1 N N N O O J'ai au moins 1 fois un "O" ---> compteur = 1
PM2 N O O O N J'ai au moins 1 fois un "O" ---> compteur = 2
PM3 N N N N O J'ai au moins 1 fois un "O" ---> compteur = 3
PM4 O O N N O J'ai au moins 1 fois un "O" ---> compteur = 4
PM5 N N N N N Je n'ai pas au moins 1 fois un "O" ---> compteur = 4
Donc résultat = 4
Merci d'avance pour votre aide.
Funky
A voir également:
- Formule excel !
- Formule excel si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
- Formule somme excel ligne - Guide
- Mise en forme conditionnelle excel formule - Guide
7 réponses
bonjour
une petite formule
si ton tableau commence en ligne 1 : 2 formules
en G1 : =Si(nb.si(B1:F1;"O")>0;1;0)
en G2 : =Si(nb.si(B2:F2;"O")>0;1;0) + Somme($G$1:G1)
tirer la 2eme formule vers le bas
si ton tableau commence en ligne 2 (par exemple)
en G1 mettre 0
en G2 : =Si(nb.si(B2:F2;"O")>0;1;0) + Somme($G$1:G1)
tirer la formule vers le bas
une petite formule
si ton tableau commence en ligne 1 : 2 formules
en G1 : =Si(nb.si(B1:F1;"O")>0;1;0)
en G2 : =Si(nb.si(B2:F2;"O")>0;1;0) + Somme($G$1:G1)
tirer la 2eme formule vers le bas
si ton tableau commence en ligne 2 (par exemple)
en G1 mettre 0
en G2 : =Si(nb.si(B2:F2;"O")>0;1;0) + Somme($G$1:G1)
tirer la formule vers le bas
re:
bizarre, meme si la formule n'est pas bonne, les resultats que tu donne ne correspondent pas à la formule
en G1 : mettre 0
en G2 : =SI(NB.SI(B2:F2;"O")>0;1;0) + G1
bizarre, meme si la formule n'est pas bonne, les resultats que tu donne ne correspondent pas à la formule
en G1 : mettre 0
en G2 : =SI(NB.SI(B2:F2;"O")>0;1;0) + G1
Bonjour à vous deux,
Si je peu me permettre un pti grain de sel..
En G2 mettre
=SI(NB.SI(B2:F2;"O")>0;1;0) +G1
et tirer vers le bas.
A+
EDIT:
Désolé Wilfried, je n'ai pas actualiser avant d'envoyer ma réponse.
Si je peu me permettre un pti grain de sel..
En G2 mettre
=SI(NB.SI(B2:F2;"O")>0;1;0) +G1
et tirer vers le bas.
A+
EDIT:
Désolé Wilfried, je n'ai pas actualiser avant d'envoyer ma réponse.
re:
Oui, mais on va taper sur une Formule Matricielle, gourmande en ressource
Formule à valider avec Ctrl + Maj + Entree
si la validation est correcte, des {} encadreront la formule automatiquement
j'y revient car je ne suis pas sur d'avoir répondu correctement
la Cellule B1 est vide
Formule matricielle à mettre en G2
la cellule B1 contient une info
Formule Matricielle à mettre en G2
Oui, mais on va taper sur une Formule Matricielle, gourmande en ressource
Formule à valider avec Ctrl + Maj + Entree
=SOMME(SI(NB.SI(DECALER($B$2;LIGNE($G$2:G2)-2;0;1;5);"O")>0;1;0))
si la validation est correcte, des {} encadreront la formule automatiquement
j'y revient car je ne suis pas sur d'avoir répondu correctement
la Cellule B1 est vide
Formule matricielle à mettre en G2
=SOMME(SI(NB.SI(DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)+1))-2;0;1;5);"O")>0;1;0))
la cellule B1 contient une info
Formule Matricielle à mettre en G2
=SOMME(SI(NB.SI(DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)))-2;0;1;5);"O")>0;1;0))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
c'est assez compliquer, elle fonctionne comme (en VBA) une boucle FOR NEXT
=SOMME(SI(NB.SI(DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)))-2;0;1;5);"O")>0;1;0))
INDIRECT("$G$2:G" & NBVAL(B:B)) : defini une plage selon le nombre de valeurs présentes dans la colonne B
si tu as 5 valeurs dans la colonne B
tu aras une plage definie : G2:G5 soit 4 lignes
LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B))) : comme c'est une formule matricielle selon l'exemple ci-dessus, ligne prendra successivement les valeurs 2,3,4,5
(j'ajoute un -2 à ligne pour démarrer à la valeur 0 et dans l'ordre suivant les valeurs seront successivement 0,1,2,3)
DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)))-2;0;1;5) decaler me permet de definir une 2 eme matrice (horizontale) qui se deplacera en fonction des valeurs 0,1,2,3
Decaler(cellule; ligne; colonne; Nbligne; Nbcolonne)
cellule : $B$2
ligne : les valeurs successives 0,1,2,3 (calculée avec ligne (......)-2)
colonne : 0 pas de decalage colonne
Nbligne : 1 ligne à prendre en compte
Nbcolonne : 5 Colonnes à prendre en compte
le reste ressemble à la premiere
je ne sais pas si je suis tres clair lol
c'est assez compliquer, elle fonctionne comme (en VBA) une boucle FOR NEXT
=SOMME(SI(NB.SI(DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)))-2;0;1;5);"O")>0;1;0))
INDIRECT("$G$2:G" & NBVAL(B:B)) : defini une plage selon le nombre de valeurs présentes dans la colonne B
si tu as 5 valeurs dans la colonne B
tu aras une plage definie : G2:G5 soit 4 lignes
LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B))) : comme c'est une formule matricielle selon l'exemple ci-dessus, ligne prendra successivement les valeurs 2,3,4,5
(j'ajoute un -2 à ligne pour démarrer à la valeur 0 et dans l'ordre suivant les valeurs seront successivement 0,1,2,3)
DECALER($B$2;LIGNE(INDIRECT("$G$2:G" & NBVAL(B:B)))-2;0;1;5) decaler me permet de definir une 2 eme matrice (horizontale) qui se deplacera en fonction des valeurs 0,1,2,3
Decaler(cellule; ligne; colonne; Nbligne; Nbcolonne)
cellule : $B$2
ligne : les valeurs successives 0,1,2,3 (calculée avec ligne (......)-2)
colonne : 0 pas de decalage colonne
Nbligne : 1 ligne à prendre en compte
Nbcolonne : 5 Colonnes à prendre en compte
le reste ressemble à la premiere
je ne sais pas si je suis tres clair lol
re:
INDIRECT transforme un adressage String en Adressage cellule
INDIRECT("G2:G" & nbval(G:G)) Donnera une plage G2Gxxx xxx étant le nombre de valeurs dans G
En creant une matrice evolutive, j'oblige la formule matricielle à boucler sur cette matrice avec ligne(..........) en fonction du nombre de lignes desiré
ce qui implique que je traite xxx fois la plage C2:F2 en evoluant à chaque fois d'une ligne donc
C2:F2 puis C3:F3 puis C4:F4......... jusqu'à xxx
INDIRECT transforme un adressage String en Adressage cellule
INDIRECT("G2:G" & nbval(G:G)) Donnera une plage G2Gxxx xxx étant le nombre de valeurs dans G
En creant une matrice evolutive, j'oblige la formule matricielle à boucler sur cette matrice avec ligne(..........) en fonction du nombre de lignes desiré
ce qui implique que je traite xxx fois la plage C2:F2 en evoluant à chaque fois d'une ligne donc
C2:F2 puis C3:F3 puis C4:F4......... jusqu'à xxx
J'ai essayé votre formule et il me semble qu'il y a un souci !
DM1 N N N O O 1 OK la fonction me donne 1
DM2 N O O O N 2 OK la fonction donne 1 et la somme est de 2
DM3 N N N N O 4 OK la fonction donne 1 mais la somme devrait être de 3
DM4 O O N N O 8 ...
DM5 N N N N N 15 ...
La fonction est juste merci, mais c'est la somme qui pose problème !
Merci
Funky