Problème formule excel nbval avec une condition????
Résolu
Gilles974
-
Vaucluse Messages postés 27336 Statut Contributeur -
Vaucluse Messages postés 27336 Statut Contributeur -
Bonjour,
J'ai une feuille excel avec l'emploi du temps de 18 personnes, chacune ayant 4 lignes
Le nom des personnes est en colonne A et l'emploi du temps entre les colonnes C et N
J'aimerais compter le nombres de cases non vides par personne pour me donner le nombre d'heures effectuées mais je n'y arrive pas????????????
J'ai essayé avec nbval qui me renvoie une erreur...
J'aimerais pouvoir faire une formule du type:
=SI(A3;A50="DUPONT";nbval C3;N50)
MERCI beaucoup pour votre aide
Gilles
J'ai une feuille excel avec l'emploi du temps de 18 personnes, chacune ayant 4 lignes
Le nom des personnes est en colonne A et l'emploi du temps entre les colonnes C et N
J'aimerais compter le nombres de cases non vides par personne pour me donner le nombre d'heures effectuées mais je n'y arrive pas????????????
J'ai essayé avec nbval qui me renvoie une erreur...
J'aimerais pouvoir faire une formule du type:
=SI(A3;A50="DUPONT";nbval C3;N50)
MERCI beaucoup pour votre aide
Gilles
Configuration: Android / Chrome 96.0.4664.45
A voir également:
- Nbval avec condition
- Nbval en anglais - Guide
- Excel cellule couleur si condition texte - Guide
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
- Excel condition ou - Guide
- Excel soustraction avec condition ✓ - Forum Excel
2 réponses
Bonjour
pour la formule ci dessous, bien utiliser les limites avec N° de ligne (pas de A:A par exemple
pour le nombre de cellule affectées
=SOMMEPROD(($A$3:$A$50="DUPONT")*($C$3:$N$50<>""))
pour le cumul si les cellules contiennent que des valeurs numériques
=SOMMEPROD(($A$3:$A$50="DUPONT")*($C$3:$N$50))
crdlmnt
pour la formule ci dessous, bien utiliser les limites avec N° de ligne (pas de A:A par exemple
pour le nombre de cellule affectées
=SOMMEPROD(($A$3:$A$50="DUPONT")*($C$3:$N$50<>""))
pour le cumul si les cellules contiennent que des valeurs numériques
=SOMMEPROD(($A$3:$A$50="DUPONT")*($C$3:$N$50))
crdlmnt
Bonjour à toi,
il y a plusieurs façons de résoudre le problème, mais elles seront différentes suivant la structure du fichier... Est ce que tu veux connaître ce nombre pour chacune des personnes ? Parce que si oui, on ne doit pas mettre le nom de la personne en critère, sinon il faut 18 formules différentes - Une pour Dupont, une pour Durand etc... je trouve ça inefficace.
Si tu peux rajouter des valeurs dans la colonne en O par exemple, je ferais juste un simple NBVAL(C3:N6), en recopiant la formule une ligne sur 4 (Ou une simple SOMME si tu veux additionner des heures)... Et sinon, effectivement le SOMMEPROD, mais j'apporterais deux améliorations, si je peux me permettre :
1 - Mettre tes données sous forme de tableau, et faire référence au nom de la colonne de tableau
2 - Créer une liste des noms de personnes et faire référence à la cellule contenant le nom.
Ça donnerait :
=SOMMEPROD((Planning[NomPersonne]=A1)*(Planning[[Horaire1]:[Horaire12]]<>""))
Dans cet exemple, le tableau s'appelle Planning, les colonnes C à N sont nommées Horaire1 à Horaire12, et j'ai mis la liste des personnes dans une autre feuille, de A1 à A18.
L'avantage de procéder comme ça est que la formule est plus lisible, et continuera à fonctionner sans modifications même si tu rajoutes ou retires des personnes ou des horaires...
il y a plusieurs façons de résoudre le problème, mais elles seront différentes suivant la structure du fichier... Est ce que tu veux connaître ce nombre pour chacune des personnes ? Parce que si oui, on ne doit pas mettre le nom de la personne en critère, sinon il faut 18 formules différentes - Une pour Dupont, une pour Durand etc... je trouve ça inefficace.
Si tu peux rajouter des valeurs dans la colonne en O par exemple, je ferais juste un simple NBVAL(C3:N6), en recopiant la formule une ligne sur 4 (Ou une simple SOMME si tu veux additionner des heures)... Et sinon, effectivement le SOMMEPROD, mais j'apporterais deux améliorations, si je peux me permettre :
1 - Mettre tes données sous forme de tableau, et faire référence au nom de la colonne de tableau
2 - Créer une liste des noms de personnes et faire référence à la cellule contenant le nom.
Ça donnerait :
=SOMMEPROD((Planning[NomPersonne]=A1)*(Planning[[Horaire1]:[Horaire12]]<>""))
Dans cet exemple, le tableau s'appelle Planning, les colonnes C à N sont nommées Horaire1 à Horaire12, et j'ai mis la liste des personnes dans une autre feuille, de A1 à A18.
L'avantage de procéder comme ça est que la formule est plus lisible, et continuera à fonctionner sans modifications même si tu rajoutes ou retires des personnes ou des horaires...
Mais pourquoi un sommeprod et pas nbval stp?
Encore merci tu me sauve!....
je ne crois pas (mais je ne suis sur de rien) que NBVAL puisse accepter une condition, même en matricielle
je passe le sujet en résolu
Bonne route
crdlmnt